2 messages in org.openoffice.fr.progRe: [prog] Problème conversion macro ...
FromSent OnAttachments
Stéphane PURNELLEJul 6, 2009 4:52 am 
Thibault VataireJul 7, 2009 5:33 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] Problème conversion macro excel vers OOo BasicActions...
From:Thibault Vataire (tvat@starxpert.fr)
Date:Jul 7, 2009 5:33:07 am
List:org.openoffice.fr.prog

Bonjour,

Cette erreur signifie que l'index de colonne ou de ligne spécifié est hors des
valeurs acceptables pour votre plage de cellule. Combien y a t'il de colonnes et lignes dans votre plage nommée? Pour rappel, en macro sous OpenOffice, les lignes et de colonnes sont numérotés
à partir de 0. Les index maximums sont donc (nb lignes - 1) pour les lignes et
(nb colonnes - 1) pour les colonnes.

Par exemple lorsque vous appelez la méthode
<plage_cellule>.getCellByPosition(.getCellByPosition(1, wi_lig - 1) et si wi_lig
vaut 2, cela signifie que vous souhaitez accéder a la cellule [deuxième colonne
| deuxième ligne]. Si vous n'avez qu'une colonne, une erreur de type "IndexOutOfBoundException" est
alors déclanchée.

Par ailleurs, si vous souhaitez tester si le contenu de la cellule est différent
de "", il faut que vous fassiez appel à sa propriété string :

maFeuille1.getCellRangeByName("TdB").getCellByPosition(1,wi_lig - 1).string <>
""

Cordialement,

T. Vataire

----- Mail Original ----- De: "Stéphane PURNELLE" <step@corman.be> À: pr@fr.openoffice.org Envoyé: Lundi 6 Juillet 2009 13h53:10 GMT +02:00 Harare / Pretoria Objet: [prog] Problème conversion macro excel vers OOo Basic

Bonjour,

J'essaie de convertir une macro en VBA vers OOo Basic. Je coince déja avec cette ligne :

Do While Range(Application.Workbooks(1).Names.Item("TdB")).Offset(wi_lig - 1) <> ""

Selon une doc trouvée sur internet nommée : "Examples or Porting Visual Basic for Applications to StarBasic" Je peux convertir cela en :

Do While maFeuille1.getCellRangeByName("TdB").getCellByPosition(1,wi_lig - 1) <> ""

Mais dès que je le lance, j'ai une erreur IndexOutOfBoundException. wi_lig vaut 2 Comme dans la doc, je n'ai pas d'indication a propos de Offset avec 1 paramètre, j'ai mis 1 comme valeur pour X (ce qui correspond à la colone B)

Pourriez-vous m'aider ?

Merci

Stéphane

----------------------------------- Stéphane PURNELLE Admin. Systèmes et Réseaux Service Informatique Corman S.A. Tel : 00 32 (0)87/342467