while / wend: macro ne répète pas l'opération: pb fonctionnement boucle

  • Initiateur de la discussion Initiateur de la discussion tweedi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

tweedi

XLDnaute Nouveau
Bonjour à tous,

Voilà je suis actuellement en train de lire un livre sur VBA, et j'ai un problème avec la méthode while / wend.

Avec ce code: seul le premier bloc de lignes ayant le même nom fusionne:

Sub fusion_final()

Dim num_row As Integer
Dim row_fin As Integer
num_row = 2
Application.DisplayAlerts = False
While Cells(num_row) <> ""
row_fin = num_row
While Cells(row_fin, 1) = Cells(row_fin + 1, 1)
row_fin = row_fin + 1
Wend

With Range(Cells(num_row, 1), Cells(row_fin, 1))
.Merge
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
num_row = row_fin + 1
Wend
Application.DisplayAlerts = True

End Sub

Savez-vous ce qui ne va pas ? d'autre part utilisez-vous parfois cette méthode ou vous concentrez-vous davantage sur les do / while ?

Merci beaucoup !

Tweedi.
 

Pièces jointes

Re : while / wend: macro ne répète pas l'opération: pb fonctionnement boucle

Bonjour.
Information sur le jargon: While et Wend sont des instructions et non des méthodes.
Une méthode est une procédure propre à un certain type d'objet.
P.S. Le mot "objet" doit aussi seulement être employé à bon escient: c'est un type de donnée muni d'au moins une de ces caractéristiques: les méthodes, les propriétés et la faculté de décréter des évènements.
Cordialement.
 
Dernière édition:
Re : while / wend: macro ne répète pas l'opération: pb fonctionnement boucle

Re tweedi, Bonjour Dranreb. @ tweedi, Ta solution fonctionne en remplaçant
VB:
While Cells(num_row)  ""
par
VB:
While Cells(num_row, 1)  ""
Tu as oublié le numéro de colonne... Cordialement
 
Re : while / wend: macro ne répète pas l'opération: pb fonctionnement boucle

Bonjour tweedi, Bonjour Efgé 🙂, Bonjour Dranreb 🙂,

d'autre part utilisez-vous parfois cette méthode ou vous concentrez-vous davantage sur les do / while ?

Les boucles Do....Loop permettent tout ce que font les While....Wend et plus, personnellement j'ai oublié le While...Wend au profit du Do....Loop

Le Do....Loop peut s'écrire de multiples manières,

condition en début de boucle (pas sûr de rentrer dedans) :

Code:
Do While [Condition]
...
Loop

While = Tant que

ou bien

Code:
Do Until [Condition]
...
Loop

Until = Jusqu'à ce que

Condition en fin de boucle (au moins un passage dans la boucle) :

Code:
Do
...
Loop While [Condition]

ou bien

Code:
Do
...
Loop Until [Condition]

ou bien même

Code:
Do
...
If [Condition] then Exit Do
...
Loop
 
Re : while / wend: macro ne répète pas l'opération: pb fonctionnement boucle

Re tweedi, Bonjour Dranreb. @ tweedi, Ta solution fonctionne en remplaçant
VB:
While Cells(num_row)  ""
par
VB:
While Cells(num_row, 1)  ""
Tu as oublié le numéro de colonne... Cordialement


Merci à tous pour vos messages et explications très intéressantes.

Cependant la correction de ma version avec l'ajout de la colonne n'améliore pas le résultat car la macro s'arrête à la fusion des lignes du premier client. quelqu'un sait pourquoi ?

La deuxième méthode proposée avec for / if fonctionne parfaitement.

Merci encore.

Tweedi
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
340
Réponses
5
Affichages
624
Réponses
12
Affichages
1 K
Réponses
8
Affichages
937
Retour