Do while loop incompréhension

  • Initiateur de la discussion Initiateur de la discussion Goufra
  • 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 !

Goufra

XLDnaute Occasionnel
Bonjour à vous par ces temps de froidure,

Ma boucle ne fonctionne pas la copie est frénétique ... Bref ne sachant à quel Saint me vouer je m'adresse à vous.

Je patine c'est de saison !
Le fichier est joint.
Sub test()

Dim x As Integer, y As Integer
y = 20
For x = 2 To 12


Do While Cells(x, 1) <> ""

Rows(x).Copy
Cells(y, 1).Select
ActiveSheet.Paste
y = y + 1
Loop




Next X
End Sub


Je souhaite comprendre afin de maîtriser les boucles pour me faciliter la vie. Merci de m'aider à rectifier cette erreur.
Un rayon de soleil pour m'éviter de cauchemarder !!!
Cordiales salutations xldiennes
 

Pièces jointes

Re : Do while loop incompréhension

Bonsoir,
Tu as juste oublié de préciser le résultat attendu !
Donc avec ce que j'ai essayé de deviner
1- pourquoi imbriquer 2 boucles ?
2- est-ce utile de copier la ligne ?
Code:
Sub test()
Dim x As Integer, y As Integer
y = 20
For x = 2 To 12
    If Cells(x, 1) <> "" Then
        Rows(x).Copy Cells(y, 1)
        y = y + 1
    End If
Next x
End Sub
A+
kjin
 
Re : Do while loop incompréhension

Merci à vous,

Ce n'est pas la réponse que j'attendais, je vous avais précisé que je posais cette question pour comprendre cette boucle. J'étais parti de la solution avec if pour utiliser do while.

Pourquoi cela ne fonctionne-t-il pas avec do while ...... ?


J'ai lu dans tous les tutos que le code compris entre do while et loop est exécuté tant que la proposition est vérifiée !

Donc tant que les cellules de la colonne 1 passées en revue à compter de la 2ème ligne ne sont pas vide, la macro devrait s'éxécuter .....




Merci à vous de prendre le temps de m'aider à comprendre.
Bien cordialement
 
Re : Do while loop incompréhension

bonsoir,
1 - tu ne lis pas les réponses
2 - tu ne réponds pas aux questions
Dans ta boucle Do/Loop, tu incrémentes la variable y et non x...de là à passer en revue les cellules...
A bon entendeur...
kjin
 
Re : Do while loop incompréhension

Merci à toi Kjin,

Je suis navré de t'avoir donné l'impression de ne pas lire les réponses.

Mon propos était de comprendre et je revendique mon incompétence ...

J'ai eu le déclic avec ta deuxième réponse.

Effectivement quand on regarde le résultat avec do while j'incrémente y et non X. Cela signifie donc que la boucle s'effectue entre do while et loop sans remonter au début de la macro, for X=2 to 10

Que pour copier une succession de lignes vers ... tant que la cellule explorée en col 1 n'est pas vide il faut utiliser IF et non une deuxième boucle.

Merci pour ta patience et merci d'avoir pris soin de compléter ton explication que je n'avais comprise.
 
Re : Do while loop incompréhension

Bonsoir à tous
Quelques variantes ayant le même effet.
Code:
[COLOR="DarkSlateGray"][B]Sub test_1()
Dim x As Integer, y As Integer
   x = 2
   y = 20
   Do While Cells(x, 1) <> ""
      Rows(x).Copy Destination:=Cells(y, 1)
      x = x + 1
      y = y + 1
   Loop
End Sub

Sub test_2()
Dim x As Integer
   x = 2
   Do While Cells(x, 1) <> ""
      Rows(x).Copy Destination:=Cells(x + 18, 1)
      x = x + 1
   Loop
End Sub

Sub test_3()
Dim x As Integer, y As Integer
   y = 19
   For x = 2 To 15
      y = y + 1
      If Cells(x, 1) <> "" Then
         Rows(x).Copy Destination:=Cells(y, 1)
      Else
         Exit For
      End If
   Next x
End Sub

Sub test_4()
Dim x As Integer
   For x = 2 To 15
      If Cells(x, 1) = "" Then Exit For
      Rows(x).Copy Destination:=Cells(x + 18, 1)
   Next x
End Sub[/B][/COLOR]
ROGER2327
#2751
 
Re : Do while loop incompréhension

Merci Roger 2327

Je te remercie infiniment pour tes quatre variantes. Elles me permettent au travers de mes incompréhensions de progresser.

Le test 4 est très élégant.

J'ai déjà apprécié ton aide.
Merci à toi et bonne soirée
 
- 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

R
Réponses
13
Affichages
4 K
RomaneK
R
B
Réponses
5
Affichages
845
B
S
Réponses
2
Affichages
982
sylvain
S
Retour