Bonjour,
bopouv a écrit :
Bonjour,
C'est ma premiere macro
Y'a un début à tout ;)
Je veux creer autant de feuilles que de classes
J'ai inscrit l'intitulé de mes classes dans une colonne
La macro crée les feuilles en descendant d'une cellule à chaque tour
et je voudrais qu'elle s'arrete lorsqu'elle rencontre une cellule vide
mes feuilles se créent (bien) mais j'obtiens un message d'erreur
runtime error basic
exception
type :com.sun.star.unoexception
Message:.
et la ligne
LesFeuilles.insertNewByName(classe,-1)
se met en rouge
La condition après le While est elle bonne ?
sub creefeuille
rem Créer des feuilles
Dim MonDocument As Object
Dim NouvelleFeuille As Object, LesFeuilles As Object
Dim rang as integer
Dim classe as string
Dim macellule as object
Dim mafeuille as object
MonDocument = ThisComponent
LesFeuilles = MonDocument.Sheets
mafeuille = lesfeuilles.getbyname("Commandes")
rang = 1
macellule = mafeuille.getCellByPosition(7,rang)
classe = macellule.string
While classe<>""
macellule = mafeuille.getcellbyposition(7,rang)
classe = macellule.string
LesFeuilles.insertNewByName(classe,-1)
rang = rang + 1
Wend
MsgBox "BRAVO"
end sub
merci
Attention ! Dans la boucle la valeur de classe est connue après coup
après le premier tour.
En effet à partir du 2ème tour,
- tu lis la valeur macellule.string
- puis tu incrémente le rang
Pour palier cela
- récupère la valeur après l'incrémentation
exemple :
While classe<>""
LesFeuilles.insertNewByName(classe,-1)
rang = rang + 1
macellule = mafeuille.getcellbyposition(7,rang)
classe = macellule.string
Wend
NB : pour le premier tour, la valeur de classe est récupérée avant
l'entrée de boucle.
François GATTO
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]