Bonjour à Tous,

Je me prends la tête depuis plusieurs semaines pour réussir à copier automatiquement la dernière ligne non vide d'un fichier sur la première ligne vide
d'un autre fichier qui se situe sur un autre classeur. Mon problème : je laisse la possibilité à l'utilisateur de supprimer les données de son fichier (nommé saisie enregistrée) mais dès qu'il supprime les données cela supprime aussi le fichier de destination nommé lui aussi saisie enregistrée sur un autre classeur nommé destination.
Ci dessous ma macro et en pièces jointes les 2 fichiers en question

[S]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub tranfert_saisie()
Sheets("Saisie enregistrée").Select
    ActiveSheet.Unprotect
    ActiveSheet.Unprotect
    Sheets("Saisie enregistrée").Select
Dim tablo As Variant, derlig As Long
'array representant le nom des cellule de la fiche de saisie dans l'ordre dans le quel elles seront transposées
plage = Array("A3", "b3", "c3", "d3", "f3", "g3", "a6", "b6", "c6", "d6", "a11", "b11", "c11", "e11", "f11", "g11", "g11")
ReDim tablo(1, UBound(plage)) ' redimentionnement d'une varaible de type tableau avec le nombre d'element dans l'array
For i = 0 To UBound(plage)
'inscription des données des cellules dans chaque items da la variable tableau
tablo(0, i) = Sheets("Fiche de saisie").Range(plage(i))
Next
'recupération de la premiere ligne vide et libre de la feuille de destination
derlig = Sheets("Saisie enregistrée").Range("A" & Rows.Count).End(xlUp).Row + 1
'resize de la cellule A et derlig a la dimention du tableau et pose de du tablo
Range("A" & derlig).Resize(1, UBound(plage)) = tablo
Sheets("Saisie enregistrée").Select
Dim wkDest As Workbook ' Classeur destinataire
Set wkDest = Application.Workbooks.Open("M:\MANAGEMENT\Suivi des réclamations Laurent\Destination.xlsx")
ThisWorkbook.Sheets("saisie enregistrée").Cells.Copy wkDest.Sheets("saisie enregistrée").Range("A1")
derlig = Sheets("Saisie enregistrée").Range("A" & Rows.Count).End(xlUp).Row + 1
wkDest.Close True 'Ferme en sauvant.
 
 
End Sub
Si vous avez des idées je serai aux anges......
Merci dès maintenant pour votre aide précieuse