Coller des colonnes de feuilles différentes sur une même feuille

Djedjo92 Messages postés 3 Statut Membre -  
Fifousalinas Messages postés 374 Statut Membre -
Bonjour,

J'aimerai à l'aide d'une macro coller les colonnes A des feuilles 1, 2, 3, ... dans la colonne A de la feuille TOTAL. Les colonnes ont un nombre de ligne différent.
Je n'ai pas envie de faire juste un copier coller car les feuilles sont à mettre à jour fréquemment. Si vous avez un peu de temps pour m'aider merci d'avance

2 réponses

  1. Fifousalinas Messages postés 374 Statut Membre 36
     
    Vous souhaitez coller les colonnes complètes A de 3 onglets, les unes à la suite des autres dans la colonne A d'un 4ème onglet ?
    0
    1. Djedjo92 Messages postés 3 Statut Membre
       
      Oui c'est cela
      0
  2. Fifousalinas Messages postés 374 Statut Membre 36
     
    Un peu sommaire, mais ça fonctionne > A tester sur une copie de votre fichier pour ne pas risquer d'endommager le votre
    Si une cellule vide est intercalée entre 2 cellules non vides, ce qu'il y a après cette cellule vide sera ignoré

    Application.ScreenUpdating = False
    Sheets("TOTAL").Select
    Columns("A:A").Select
    Selection.ClearContents 'Vide le contenu de la colonne A de la feuille de destination
    With Worksheets("feuille 1")
    .Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row).Name = "MyRange" 'Définit la plage de la feuille 1 à copier en prenant la dernière cellule non vide
    End With
    Sheets("feuille 1").Select
    Range("MyRange").Copy ' Copie la plage de la feuille 1
    Sheets("TOTAL").Select
    Range("A" & Range("A65500").End(xlUp).Row + 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False ' Colle la plage dans la première cellule non vide de la feuille de destination
    With Worksheets("feuille 2")
    .Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row).Name = "MyRange" 'Définit la plage de la feuille 2 à copier en prenant la dernière cellule non vide
    End With
    Sheets("feuille 2").Select
    Range("MyRange").Copy ' Copie la plage de la feuille 2
    Sheets("TOTAL").Select
    Range("A" & Range("A65500").End(xlUp).Row + 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False ' Colle la plage dans la première cellule non vide de la feuille de destination
    With Worksheets("feuille 3")
    .Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row).Name = "MyRange" 'Définit la plage de la feuille 3 à copier en prenant la dernière cellule non vide
    End With
    Sheets("feuille 3").Select
    Range("MyRange").Copy ' Copie la plage de la feuille 3
    Sheets("TOTAL").Select
    Range("A" & Range("A65500").End(xlUp).Row + 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False ' Colle la plage dans la première cellule non vide de la feuille de destination
    Application.Goto Reference:="R1C1"
    End Sub


    Peut-être qu'un spécialiste passera avec un code plus court pour faire la même chose
    0