Tester existence tableau/variable VBA

marieasd Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
marieasd Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour !
J'ai un programme contenant une boucle Do while,
celle-ci :


Do While phrase(i) <> ""
If i = 0 Then
Call Majuscule_premiere_phrase(phrase(i))
MsgBox (phrase(i))
Else
Call Majuscule_phrase(phrase(i))
MsgBox (phrase(i))
End If
concatenation = concatenation & phrase(i) & "."
MsgBox (concatenation)
'contenu() = Application.WorksheetFunction.Proper(concatenation)
i = i + 1
Loop



Il sert à capter des phrases se trouvant dans une cellule (phrases splittées), et il met des majuscules après chaque points.
phrase(i) étant un tableau à i cases.
Cependant, l'éxecuteur ne ressort pas de cette boucle et donc ne peut pas passer à l'affichage dans les cellules. En effet, une fois arrivée à la dernière phrase de la cellule, la suivante n'existant pas, vba ne peut pas savoir si elle est vide ou non.

C'est pour cela que j'aurai besoin de votre aide, je souhaiterai "traduire" en vba : "Tant que phrase(i) existe ...". Si cela est possible bien évidemment (ce que j'espère!).

J'ai regardé sur des forums mais je ne trouve pas d'informations...

Merci beaucoup, bonne journée !
A voir également:

1 réponse

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
1
marieasd Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Re !
Cependant j'ai utilisé une autre façon d'y procéder.
Je viens de créer une fonction bolléenne : False si la phrase contient 0 caractère et True sinon, et j'ai changé la condition de la boucle par " Do While Phrase_existe(phrase(i)) = True " or, le même problème revient : la boucle essaie de recommencer même lorsqu'il n'y a plus de phrase ! "Erreur d'exécution '9': L'indice n'appartient pas à la séletion." .... La ligne s'affichant en jaune étant celle du Do While. Quelle galère !
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780 > marieasd Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Tu devrais utiliser
For i=LBound(phrase) to UBound(phrase)
0
marieasd Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
J'essaie cela, je vous tiens au courant, merci !
0
marieasd Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Ca marche super bien, encore merci
0