Correction code VBA

Bonjour
je suis débutante sur vba et je n’arrive pas à faire une boucle qui me permet de copier des cellules d’une feuille à une autre, au cas ou il y a une case vide la boucle va passer à la case suivante. sachant que je veux copier les cellules par ligne par exemple on commence par A2 ensuite B2 jusqu’à F2 et la boucle se répète automatiquement (A3-B3…F3).
j’ai vraiment besoin de votre aide :pray::pray:
Par avance merci de vos réponses et désolé si mon code est trop amateur.
Voici mon code actuel:

Sub affecattion()
derniere_ligne = Sheets(“cat”).Range(“A1”).End(xlDown).Row
ligne = Sheets(“affe”).Range(“A1”).End(xlDown).Row + 1

For i = 2 To derniere_ligne - 2
If IsEmpty(Worksheets(“cat”).Cells(i, “A”)) Then
ActiveCell.Offset(0, 1).Select
Else
Worksheets(“affe”).Cells(ligne, “A”).Value = Worksheets(“cat”).Cells(i, “A”).Value
End If
Next

End Sub

voilà le fichiertest.xlsm (16,7 Ko)

Bonjour,

Déjà, je trouve que pour une débutante tu as recherché et c’est bien.
je te propose le code suivant :

Sub toto()
L = ActiveSheet.UsedRange.Rows.Count 'nombre de lignes de l'onglet "Cat"
L_affe = 2 'numéro de la ligne de l'onglet affe
For I = 2 To L
    For C = 1 To 6 'colonnes de 1 à 6 onglet cat
        If Cells(I, C).Value <> "" Then
          Sheets("affe").Cells(L_affe, 1) = Cells(I, C).Value
          L_affe = L_affe + 1
        End If
    Next
Next

End Sub

1 « J'aime »

Merci beaucoup ouisansdoute pour ton aide
j’ai essaiyé ce code et il marche trés bien`

             Sub Affectation()
           Dim derniere_colonne As Long
           Dim colonne_en_cours As Long
           Dim ligne As Long, derl As Long
           Dim i As Long

               derniere_colonne = Sheets("cat").Cells(2, Columns.Count).End(xlToLeft).Column
              derl = ActiveSheet.Cells(Rows.Count, "F").End(xlUp).Row

For i = 2 To derl
    For colonne_en_cours = 1 To derniere_colonne
          ligne = Sheets("affe").Range("A2000").End(xlUp).Row + 1
          If Not IsEmpty(Cells(i, colonne_en_cours)) Then
              Sheets("affe").Cells(ligne, "A").Value = Sheets("cat").Cells(i, colonne_en_cours).Value
          End If
    Next colonne_en_cours
Next i

      End Sub

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.