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

Djedjo92 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Fifousalinas Messages postés 360 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

2 réponses

Fifousalinas Messages postés 360 Date d'inscription   Statut Membre Dernière intervention   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
Djedjo92 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Oui c'est cela
0
Fifousalinas Messages postés 360 Date d'inscription   Statut Membre Dernière intervention   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