Copier la dernière ligne (non vide) d'un fichier sur la pre

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

]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

Bonjour et bienvenu(e)

natalolo a écrit :

Ci dessous ma macro et en pièces jointes les 2 fichiers en question

OUI pour la macro NON pour les fichiers

A tester

Option Explicit

Sub tranfert_saisie()
Dim Chemin As String, Fichier As String
Dim Tablo As Variant, Derlig As Long
Dim Plage
Dim I As Integer

  Application.ScreenUpdating = False
  Plage = Array("A3", "B3", "C3", "D3", "F3", "G3", "A6", "B6", "C6", "D6", "A11", "B11", "C11", "E11", "F11", "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
  With Sheets("Saisie enregistrée")
    .Unprotect
    'recupération de la premiere ligne vide et libre de la feuille de destination
    Derlig = .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) + 1) = Tablo
    .Protect
  End With

  Chemin = "M:\MANAGEMENT\Suivi des réclamations Laurent\"
  Fichier = "Destination.xlsx"
  If Dir(Chemin & Fichier) = "" Then
    MsgBox "Fichier introuvable" & vbCr & Fichier
    Exit Sub
  End If
  With Workbooks.Open(Chemin & Fichier)
    With .Sheets("Saisie enregistrée")
      'recupération de la premiere ligne vide et libre de la feuille de destination
      Derlig = .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) + 1) = Tablo
    End With
    .Close savechanges:=True
  End With

End Sub

Bonjour et merci énormément pour ce retour,

Mais j'ai un problème lorsque je lance la macro : il ne trouve pas le fichier destination....? j'ai modifié l'emplacement car le fichier destination se situe maintenant sur "C:\Users\lolo\Desktop" j 'ai bien vu la ligne sur la macro qui correspond à la recherche du classeur...

Je ne sais pas pourquoi j'ai ce message ???

Auriez vous une idée ,

Merci pour vos retours

Bonjour

Tu n'oublies pas le dernier "\" dans la variable Chemin ?

Ton fichier s'appelle bien "Destination.xlsx" - Vérifie l'extension - ?

Si pas ça, il faudrait ton fichier

Oui effectivement j'ai oublié cet aspect : tout fonctionne parfaitement un grand merci

Rechercher des sujets similaires à "copier derniere ligne vide fichier pre"