Copy / Paste entre feuille de calculs

Bonjour tout le monde 👋

Aujourd'hui je décide de réaliser une macro VBA dans le cadre de mon stage pour copier les colonnes "G" de mes feuilles à partir de la cellule "G2" dans une feuille de calcul qui s'appelle : "MAIL".

Le souci :

- J'aimerai que la fonction colle les données copié dans la colonne "A", a la suite des autres.

Amateur en VBA, j'aimerai savoir ce qu'il ne vas pas dans mon code….

Sub copiecolle()

Dim WS_Count As Integer
Dim I As Integer
' Set WS_Count equal to the number of worksheets in the active
'Woorkbook.WS_Count = ActiveWorkbook.Worksheets.Count
'Begin the loop
For I = 3 To WS_Count
    Sheets("3 & i").Select
    Range("G2").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Copy
    Sheets("MAIL").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Next I

End Sub

Merci beaucoup pour vos retours, j'espère que vous comprenez ce que j'essaie de faire.

Cordialement,

N.

Bonjour noe.crz, le forum,

A tester....

Sub copiecolle()
 Dim WS_Count As Integer
 Dim I As Integer
' Set WS_Count equal to the number of worksheets in the active
'Woorkbook.WS_Count = ActiveWorkbook.Worksheets.Count
'Begin the loop
Application.ScreenUpdating = False

WS_Count = ThisWorkbook.Worksheets.Count
 For I = 3 To WS_Count
    Sheets(I).Range("G2:G" & Sheets(I).Range("G" & Rows.Count).End(xlUp).Row).Copy
    Sheets("MAIL").Range("A" & Sheets("MAIL").Range("A" & Rows.Count).End(xlUp).Row + 1) _
     .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 Next I

Application.CutCopyMode = False
End Sub

Cordialement,

Bonjour tout le monde,

Une autre proposition assez proche :

Sub copiecolle()
    Dim nl1 As Long, nl2 As Long
    Dim WS_Count As Integer
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim I As Integer

    WS_Count = Sheets.Count
    Set ws1 = Sheets("Mail")

    For I = 1 To WS_Count
        If Sheets(I).Name <> "Mail" Then
            Set ws2 = Sheets(I)
            nl1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row
            If I > 1 Then nl1 = nl1 + 1
            nl2 = ws2.Cells(Rows.Count, 7).End(xlUp).Row
            ws2.Range("G2:G" & nl2).Copy Destination:=ws1.Range("A" & nl1)
        End If
    Next I
End Sub

Ce qui ne va pas dans ton code, c'est surtout ça :

Sheets("3 & i")

Ici, i est une constante texte au lieu d'être une variable numérique. Ton code va chercher les feuilles qui s'appellent "3 & i".

Sheets("3" & trim(str(i))) c'était déjà mieux. 

Merci beaucoup pour votre explication, je commence à comprendre les erreurs de mon code...

Elle marche à la perfection !
Une grande aide pour le travail que j'ai à faire.

Je clôture ce post. Merci encore.

Cdt,

Noé

Le principal est d'avoir compris ton erreur, car c'est la seule façon de progresser.
Bon vent.

Rechercher des sujets similaires à "copy paste entre feuille calculs"