Erreur 438 sur un copier coller

Bonjour,

Je suis débutant en VBA et je ne comprends pas pourquoi ma macro m'affiche l'erreur 438 sur ma première ligne de collage alors que j'ai repris un codé précédent qui fonctionnait en ne modifiant que les " Range "

voici mon code :

Sub Macro_copie()
Dim sauvegarde As Variant
sauvegarde = 1

For n = 2 To Worksheets(Sheets(1).Name).UsedRange.Rows.Count Step 1
If Worksheets(Sheets(1).Name).Range("R" & n) Like "PROD" Then

Worksheets(Sheets(1).Name).Range("A" & n).Copy
Worksheets(Sheets(2).Name).Range("B" & sauvegarde).Paste

Worksheets(Sheets(1).Name).Range("B" & n).Copy
Worksheets(Sheets(2).Name).Range("C" & sauvegarde).Paste

Worksheets(Sheets(1).Name).Range("H" & n).Copy
Worksheets(Sheets(2).Name).Range("D" & sauvegarde).Paste

Worksheets(Sheets(1).Name).Range("P" & n).Copy
Worksheets(Sheets(2).Name).Range("E" & sauvegarde).Paste

Worksheets(Sheets(1).Name).Range("F" & n).Copy
Worksheets(Sheets(2).Name).Range("F" & sauvegarde).Paste

Worksheets(Sheets(1).Name).Range("M" & n).Copy
Worksheets(Sheets(2).Name).Range("G" & sauvegarde).Paste

sauvegarde = sauvegarde + 1

End If

Next n
End Sub

Erreur, faute de doigt. Je voulais te proposer ce code de remplacement. A tester.

Sub Macro_copie()
    Dim sauvegarde As Long, n As Long
    Dim ws1 As Worksheet, ws2 As Worksheet

    Set ws1 = Worksheets(1)
    Set ws2 = Worksheets(2)
    sauvegarde = 1

    For n = 2 To ws1.UsedRange.Rows.Count Step 1
        If ws1.Range("R" & n) Like "PROD" Then
            ws1.Range("A" & n).Copy Destination:=ws2.Range("B" & sauvegarde)
            ws1.Range("B" & n).Copy Destination:=ws2.Range("C" & sauvegarde)
            ws1.Range("H" & n).Copy Destination:=ws2.Range("D" & sauvegarde)
            ws1.Range("P" & n).Copy Destination:=ws2.Range("E" & sauvegarde)
            ws1.Range("F" & n).Copy Destination:=ws2.Range("F" & sauvegarde)
            ws1.Range("M" & n).Copy Destination:=ws2.Range("G" & sauvegarde)
            sauvegarde = sauvegarde + 1
        End If
    Next n
End Sub

Merci beaucoup cela fonctionne parfaitement je ne connaissais pas cette formulation ! bon lundi !

J'ai oublié un détail : ce Step 1 est inutile puisque une incrémentation "For...to" est au pas de +1 par défaut. Bon lundi à toi aussi.

Rechercher des sujets similaires à "erreur 438 copier coller"