Explication macro

aline -  
algauthi Messages postés 6 Statut Membre -
Bonjour à tous,

J'ai créé ce petit bout de code le mois dernier mais je suis incapable de retrouver ce que j'ai écrit pour le modifier.
Pouvez-vous m'aider à la décomposer pas à pas ?
J'aimerai y ajouter le copier/coller du contenu de mes colonnes quand la macro créer les lignes.

Sub ..()

Dim lig&, lig1&, col%
Application.ScreenUpdating = True

For lig = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
  lig1 = lig + 1
  col = 26
  While Cells(lig, col) <> ""
    Rows(lig1).Insert
    Cells(lig1, 1) = Cells(lig, 1)
    Cells(lig1, 26) = Cells(lig, col)
    lig1 = lig1 + 1
    col = col + 1
  Wend
Next
[AA:AA].Resize(, Columns.Count - 26).ClearContents

End Sub

Merci d'avance !

1 réponse

  1. silver
     
    Bonjour,

    Est-ce cela que tu souhaite faire ?


    Sub test()

    Dim lig, lig1, col As Integer
    Application.ScreenUpdating = False ' Desactive l'affichage des opérations pour gagner du tps d'éxécution

    For lig = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 'de la derniere ligne à la premiere ligne
    lig1 = lig + 1 ' Selection de la derniere ligne (vide)
    col = 26 ' Colonne Z
    Rows(lig1).Insert ' Insere une ligne X à la fin
    Rows(lig1 - 1).Copy ' Copie la ligne précédente
    Range("A" & lig1).Select
    ActiveSheet.Paste ' Colle les valeurs sur la ligne créée
    Next

    [AA:AA].Resize(, Columns.Count - 26).ClearContents ' Efface toutes les colonnes à partir de AA

    Application.ScreenUpdating = True ' Réactive l'affichage des opérations

    End Sub
    0
    1. algauthi Messages postés 6 Statut Membre
       
      Bonjour Silver,

      Merci beaucoup, je m'y retrouve dans mon code !
      La ligne Rows(lig1-1).Select, tu indiques que ça copie la ligne précédente, hors une fois la macro réalisée je n'ai que la colonne A qui est copiée/collée.
      Aurais-tu une idée du changement à effectuer ?

      Merci,
      Aline
      0