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 SubSi 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 SubBonjour 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