Boucle while avec 2 conditions

Bonjour,

J'ai dû créer récemment une boucle while avec 2 conditions pour les besoins d'une macro. Je vous donne en PJ l'excel avec en feuil1 le fichier d'arrivée et en feuil2 le résultat que je veux avoir après le passage de la macro

Voici le code que j'ai fait:

Sub macrott()

Dim compt As Integer
compt = 2
'compteur du nombre de ligne de la feuil2

Dim i As Integer
i = 2
'numéro de la ligne

Dim j As Integer
j = 2
'numéro de la colonne'

Do While Cells(i, j) <> "" And Cells(i + 1, 1) <> ""
    If Cells(i, j) <> "" Then
        Sheets("Feuil1").Cells(i, 1).Copy Sheets("Feuil2").Cells(compt, 1)
        Sheets("Feuil1").Cells(i, j).Copy Sheets("Feuil2").Cells(compt, 2)
        compt = compt + 1
        j = j + 1
    Else
        i = i + 1
        j = 2
    End If
Loop

End Sub

Le but est de parcourir chaque ligne et à chaque fois que la case est non vide reporter le contenu de la case (le Nom) + l'ID correspondant de la ligne sur une nouvelle ligne dans la feuill2

Le code doit se terminer quand on rencontre une case vide avec une ligne vide en dessous.

Cependant mon code s'arrête à la ligne 1 et ne passe jamais à la 2e. Avez-vous une explication ?

Merci !

52macro-tt.xlsm (49.89 Ko)

Bonjour,

proposition de correction (ajout du nom de la feuille et surtout transformation du AND en OR dans la condition)

Sub macrott()

Dim compt As Integer
compt = 2

Dim i As Integer
i = 2
'numéro de la ligne

Dim j As Integer
j = 2
'numéro de la colonne'

Do While Sheets("feuil1").Cells(i, j) <> "" Or Sheets("feuil1").Cells(i + 1, 1) <> ""
    If Sheets("feuil1").Cells(i, j) <> "" Then
        Sheets("Feuil1").Cells(i, 1).Copy Sheets("Feuil2").Cells(compt, 1)
        Sheets("Feuil1").Cells(i, j).Copy Sheets("Feuil2").Cells(compt, 2)
        compt = compt + 1
        j = j + 1
    Else
        i = i + 1
        j = 2
    End If
Loop

End Sub

L'erreur était bien le And à la place du Or

Merci! Maintenant je sais utiliser une boucle while

Rechercher des sujets similaires à "boucle while conditions"