La logique d'Excel/vba qui fonctionne à coup de :

Selection.CurrentRegion.Select
ActiveCell.Offset(n, p)

et autres facilités présentes dans MS Office n'a pas d'équivalent, instruction 
pour instruction. Il faut se rendre à cette évidence.

Si vous voulez absolument la logique d'Excel, il vous faut reprogrammer les 
fameuses facilités offertes par vba et les conserver précieusement.

Si cet effort vous semble hors de propos, il faut sans doute changer la 
structure même du programme pour l'adapter à ce que OOBasic et les API UNO 
savent faire. C'est plus long mais certainement plus efficace. J'irai même 
plus loin en disant qu'il se peut que vous ayez à changer la présentation des 
données présentes dans les feuilles, voire y introduire d'autres calculs.

Non la traduction vba/OOBasic n'est pas facile. Elle l'est d'autant moins que 
l'on a cédé à la tentation d'utiliser les instructions les plus spécifiques 
d'Excel. 

Une piste est d'étudier comment borner l'étendue de la sélection à partir 
d'une cellule de départ. Par exemple chercher les premières colonne et ligne 
vides.

Courage
Jean-Marc

Le mardi 13 Octobre 2009 21:12, prog_amat...@hotmail.fr a écrit :
> bonsoir,
>
>
>
> Désolée d'insister mais la solution proposée sélectionne toutes les
> cellules contenant des données or le ctrl+* sélectionne les cellules
> contenant des données contigues à une cellule de référence et ne
> sélectionne pas les autres cellules remplies si elles ne sont pas contigues
> à la cellule de référence
>
>
>
> J'ai essayé plein d'exemples trouvés sur le net mais rien ne reproduit le
> comportement du ctrl+*.
>
>
>
> Quant à l'enregistreur, j'avoue que je ne comprends même pas comment
> modifier les paramètres pour lui passer la cellule de référence
>
>
>
> Je suis en train de ré-écrire sous OO des macros d'excel et donc si
> quelqu'un connait le vba, je voudrais programmer sous oo l'instruction
> suivante :
>
>
>
>     Selection.CurrentRegion.Select
>
>
> Merci
>
>
>
> Claude
>
> > Date: Fri, 9 Oct 2009 08:11:08 +0000
> > From: tvata...@starxpert.fr
> > To: prog@fr.openoffice.org
> > Subject: Re: [prog] Sélectionner plage
> >
> > Bonjour,
> >
> > Ceci :
> >
> > thisComponent.sheets.getByName("Feuille1").queryContentCells(com.sun.star
> >.sheet.CellFlags.VALUE + _ com.sun.star.sheet.CellFlags.DATETIME + _
> > com.sun.star.sheet.CellFlags.STRING + _
> > com.sun.star.sheet.CellFlags.FORMULA)
> >
> > permet d'obtenir pour la feuille nommée "Feuille1", une collection de
> > plages de cellules contenant des données de type date, valeur, chaine ou
> > formule.
> >
> > Chaque plage peut ensuite être obtenu en utilisant la méthode
> > getByIndex()
> >
> > Le nombre de colonnes et de lignes d'une plage peux ensuite être obtenu
> > en utilisant rows.count et columns.count
> >
> > Cordialement,
> > T. Vataire
> >
> >
> > ----- Mail Original -----
> > De: "c c" <prog_amat...@hotmail.fr>
> > À: "liste prog" <prog@fr.openoffice.org>
> > Envoyé: Jeudi 8 Octobre 2009 14:41:41
> > Objet: RE: [prog] Sélectionner plage
> >
> >
> >
> > Bonjour,
> >
> >
> >
> > Effectivement, j'ai mal formulé ma question.
> >
> >
> >
> > Je voudrais dans une macro, sélectionner l'ensembles données (ce qui
> > correspond au ctrl+*) de façon à récupérer dans un objet les coordonnées
> > de cet ensemble et pouvoir ainsi déterminer le nombre de lignes et
> > colonnes saisies et ensuite pouvoir travailler sur les cellules.
> >
> >
> >
> > En espérant avoir été plus claire, merci
> >
> >
> >
> > Claude
> >
> > > Date: Thu, 8 Oct 2009 09:18:56 +0000
> > > From: tvata...@starxpert.fr
> > > To: prog@fr.openoffice.org
> > > Subject: Re: [prog] Sélectionner plage
> > >
> > > Bonjour,
> > >
> > > Tout dépend de ce que vous souhaitez faire exactement car ctrl+* =
> > > selectionner l'ensemble des données et non selectionner l'ensemble
> > > d'une feuille.
> > >
> > > Pour ctrl+* , le plus simple je pense est d'enregistrer une macro
> > > (outils > macros > enregistrer une macro)
> > >
> > > Pour selectionner l'ensemble d'une feuille, le raccourci est ctrl+A.
> > > Vous pouvez enregistrer une macro ou bien utiliser ceci :
> > >
> > > thisComponent.currentController.select(thisComponent.sheets.getByName("
> > ><non_de_la_feuille>"))
> > >
> > > Cordialement,
> > > T. Vataire
> > >
> > > ----- Mail d'origine -----
> > > De: c c <prog_amat...@hotmail.fr>
> > > À: liste prog <prog@fr.openoffice.org>
> > > Envoyé: Thu, 08 Oct 2009 08:37:14 -0000 (GMT)
> > > Objet: [prog] Sélectionner plage
> > >
> > >
> > > Bonjour,
> > >
> > >
> > >
> > > Comment puis-je dans une macro sélectionner l'ensemble d'une feuille
> > > (l'équivalent du ctrl+*) ?
> > >
> > >
> > >
> > > Merci
> > >
> > > _________________________________________________________________
> > > Messenger débarque dans Hotmail ! Essayez-le !
> > > http://www.windowslive.fr/hotmail/web-messenger/
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
> > > For additional commands, e-mail: prog-h...@fr.openoffice.org
> >
> > _________________________________________________________________
> > Un avatar à votre image ? Créez votre mini-moi !
> > http://www.ilovemessenger.fr/minimize-me
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
> > For additional commands, e-mail: prog-h...@fr.openoffice.org
>
> _________________________________________________________________
> Un avatar à votre image ? Créez votre mini-moi !
> http://www.ilovemessenger.fr/minimize-me

---------------------------------------------------------------------
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

Répondre à