Problème copie de données

Bonjour,

J'ai un léger problème avec mon code ci-dessous, je veux copier une plage de valeurs de ma feuille 1 à ma feuille 2 en copiant sur une ligne vide à la suite de mes autres données sur la feuille 2.

Quand je le fais tourner, les valeurs ne s'enregistrent pas à la suite des autres et vont toujours se copier sur la ligne 73.

Sub Enregistrer_valeurs ()
If MsgBox("Les valeurs du " & OS.Range("C3") & " seront enregistrées. Confirmez-vous l'enregistrement ?", vbYesNo, "Confirmation d'enregistrement") = vbYes Then
    Feuil1.Unprotect
    Feuil2.Unprotect
   Set val1 = Feuil2.Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1)
    If Not val1 Is Nothing Then
        FO = val1.Row
        Feuil1.Range("A4:AC4").Copy
        Feuil2.Cells(val1.Row, "A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End If

    Feuil1.Select
    MsgBox ("Les valeurs " & Range("C3") & " ont été enregistrées.")
    Feuil1.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveWorkbook.Save

End If
1
End Sub

Merci pour votre aide, bonne journée !

Bonjour Ma, bonjour le forum,

OS n'est ni déclarée si définie dans la première ligne de ton code ?!... À partir du moment où tu as déclaré et défini Val1 (variable de type Range) tu n'a pas besoin d'autre chose pour coller la plage copiée. Ton code modifié (à compléter) :

Sub Enregistrer_valeurs()
Dim OS As Worksheet
Dim Val1 As Range

Set OS = Worksheets("Le_nom_de_l_onglet") '?!...
If MsgBox("Les valeurs du " & OS.Range("C3") & " seront enregistrées. Confirmez-vous l'enregistrement ?", vbYesNo, "Confirmation d'enregistrement") = vbYes Then
    Feuil1.Unprotect
    Feuil2.Unprotect
    Set Val1 = Feuil2.Cells(Application.Rows.Count,"A").End(xlUp).Offset(1,0)
    If Not Val1 Is Nothing Then
        Feuil1.Range("A4:AC4").Copy
        Val1.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End If
    Feuil1.Select 'pas sûr que ce soit obligatoire...
    MsgBox ("Les valeurs " & Range("C3") & " ont été enregistrées.")
    Feuil1.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveWorkbook.Save
End If
End Sub

Encore une fois merci ThauThème,

Mes valeurs n'étaient pas déclarées parce que j'ai mis qu'une partie de mon code c'est pour ça que ça apparait un peu brouillon

Merci encore pour ton aide, bonne journée !

Rechercher des sujets similaires à "probleme copie donnees"