Transférer des données d'un fichier à un autre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Roseline

XLDnaute Occasionnel
Bonjour,
J'ai besoin de votre aide. J'ai deux fichiers et j'aimerais qu'en cliquant sur mon bouton "transférer les données" que les informations de mon fichier "test" se transpose dans mon fichier "TEST 2". J'ai fait la vba mais mon problème c'est que mon fichier "test" change de nom à tous les mois et je ne voudrais pas faire le changement manuellement dans la vba à tous les mois. Aussi, je ne comprend pas pourquoi une fois sur deux il prend les données du bon fichier pour les copier dans l'autre et la fois d'après il prend le mauvais fichier pour copier les données.
Merci de votre aide et bonne journée
 

Pièces jointes

bonjour
lorsque tu utilises with il faut des points pour appeler les objets
exemple:
with wb
.Range("A" & Rows.Count).End(xlUp).Select
.x = ActiveCell.Row
.Range("A2:f" & x).Select
.Selection.Copy
ect...
sinon tu utilise le classeur actif
 
bonjour
lorsque tu utilises with il faut des points pour appeler les objets
exemple:
with wb
.Range("A" & Rows.Count).End(xlUp).Select
.x = ActiveCell.Row
.Range("A2:f" & x).Select
.Selection.Copy
ect...
sinon tu utilise le classeur actif
Merci pour la réponse et oui je pense qu'il manque de l'information à ma commande mais c'est ce bout là où je suis un peu mélangé. Pourriez-vous me donner un peu plus de détail svp.
Merci et bonne journée
 
bonsoir
essai ce code,
La fonction nomattendu calcule ou calculera le nom du fichier que tu souhaite traité, à voie en fonction de ton contexte
'calcule la dernière ligne
Function dernièrelg(feuille, col) ' ici on calcul la dernière ligne utilisée, col représente la colonne sur laquelle du recherche la dernière ligne
With feuille
Set k = .Cells(.UsedRange.Columns(col).Rows.Count + 1, 1).End(xlUp)
If k <> "" Then dernièrelg = k.Row + 1 Else dernièrelg = 1
End With
End Function

Sub export()
dldest = dernièrelg(Sheets("Données"), 1)
For Each cl In Workbooks
If cl.Name Like nomattendu() Then Set masource = cl
Next
With masource.Sheets(1)
dlsource = dernièrelg(.Parent.Sheets(1), 1)
Set zonecopy = .Range(.Cells(2, 1), .Cells(dlsource, 6))
zonecopy.Copy (ThisWorkbook.Sheets("Données").Cells(dldest, 1))
End With

End Sub
Function nomattendu()
nomattendu = "test -*"
End Function
 
re
à quelle ligne l'erreur 424?
fichier joint: lancer la macro export.
ici je considère que le second fichier à été déjà ouvert, et que son nom commence par test -
Si tel n'est pas le cas merci de fournir des infos
 

Pièces jointes

Dernière édition:
Rebonjour,
J'ai fait le test avec le fichier que tu as mis en pièce jointe et cela fonctionne....Je vais revoir ma vba je crois que j'ai inversé une commande. Avec ce que tu viens de me fournir je vais être en mesure de l'adapter à mon fichier. Merci encore énormément de ton aide, c'est vraiment apprécié.
Bonne journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour