Macro copier/coller d'un fichier Excel à un autre avec noms des fichiers variables

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 !

Holeshotman

XLDnaute Junior
Bonjour à tous,

Je cherche à modifier une de mes macros, qui jusqu'à présent faisait un copier/coller de l'unique feuille nommée "BASE" du fichier "AAA" sur la feuille nommée "ARCHIVE" du fichier "Essai_LectureSeule".
Cela fonctionne comme je veux, seulement les noms du fichiers source et destination vont changer de façon périodique. Ainsi, j'aurais aimé savoir si il y avait un solution pour assurer la même fonction que la fonction actuelle, mais avec les noms de fichiers source et destination qui changent ?

PS : La macro se trouve dans le fichier "Essai_LectureSeule".
J'ai essayé en introduisant une variable pour chaque fichier et en initialisant à une certaine valeur (nom du fichier de départ), mais je dois mal m'y prendre...

Mon code de départ est le suivant :

Code:
Sub CopieAAA()

'Ouvre le fichier nommé AAA
Workbooks.Open Filename:="\\Vems-sfl-sdc02\Bureautique\DATA\Public\Indus_ScesTechniques_STP\STP\PROTOS\COUEGNAS\Test\AAA.xls", local:=True
Windows("AAA.xls").Activate 'Selection du fichier nommé AAA
Cells.Select 'Selection de l'ensemble des cellules
Selection.Copy 'Copie de la selection
Windows("Essai_LectureSeule.xls").Activate 'Selection du fichier nommé Essai_LectureSeule
Sheets("ARCHIVE").Select 'Selection de la feuille "ARCHIVE"
Range("A1").Select 'Selection de la cellule A1
ActiveSheet.Paste 'Collage
Application.CutCopyMode = False 'Pour répondre automatiquement "non" au message presse papier
Windows("AAA.xls").Activate 'Activation de du fichier AAA
ActiveWindow.Close 'Fermeture de ce dernier

End Sub

Merci par avance pour votre aide précieuse 😉
 
Re : Macro copier/coller d'un fichier Excel à un autre avec noms des fichiers variabl

Bonjour Holeshotman,

Sachez qu'en VBA les Select ou autres Activate sont presque toujours inutiles, voire nuisibles.

A priori il suffit de paramétrer le nom du fichier (AAA.xls) :

Code:
Sub CopieAAA()
Dim NomFich As String, chemin As String
NomFich = "AAA.xls" 'à adapter (le nom peut se trouver dans une cellule)
chemin = "\\Vems-sfl-sdc02\Bureautique\DATA\Public\Indus_ScesTechniques_STP\STP\PROTOS\COUEGNAS\Test\"
Application.ScreenUpdating = False 'fige l'écran
Application.DisplayAlerts = False 'si le fichier est déjà ouvert
With Workbooks.Open(chemin & NomFich, Local:=True)
  .Sheets(1).Cells.Copy ThisWorkbook.Sheets("ARCHIVE").[A1] 'copie toutes les cellules
  .Close 'ferme le fichier
End With
End Sub
A+
 
Dernière édition:
Re : Macro copier/coller d'un fichier Excel à un autre avec noms des fichiers variabl

Bonsoir le fil, bonsoir le forum,

Une proposition avec une UserForm qui te permet de définir les classeurs Source/Cible parmi les classeurs ouverts. Mais je me demande si ça n'irait pas aussi vite de le faire le copier/coller à la main... ?
Le fichier :

 

Pièces jointes

Re : Macro copier/coller d'un fichier Excel à un autre avec noms des fichiers variabl

Bonjour Holeshotman, Robert 🙂

On peut aussi rechercher le fichier via la boîte de dialogue Ouvrir :

Code:
Sub CopieAAA()
'ChDir "\\Vems-sfl-sdc02\Bureautique\DATA\Public\Indus_ScesTechniques_STP\STP\PROTOS\COUEGNAS\Test"
ChDir ThisWorkbook.Path 'répertoire pour tester
Application.Dialogs(xlDialogOpen).Show 'boîte de dialogue
With ActiveWorkbook
  If .Name = ThisWorkbook.Name Then Exit Sub
  Application.ScreenUpdating = False 'fige l'écran
  .Sheets(1).Cells.Copy ThisWorkbook.Sheets("ARCHIVE").[A1] 'copie toutes les cellules
  .Close 'ferme le fichier
End With
End Sub
A+
 
Dernière édition:
Re : Macro copier/coller d'un fichier Excel à un autre avec noms des fichiers variabl

Re,

Avec un message avant de copier la feuille :

Code:
Sub CopieAAA()
 'ChDir "\\Vems-sfl-sdc02\Bureautique\DATA\Public\Indus_ScesTechniques_STP\STP\PROTOS\COUEGNAS\Test"
 ChDir ThisWorkbook.Path 'répertoire pour tester
 Application.Dialogs(xlDialogOpen).Show 'boîte de dialogue
 With ActiveWorkbook
   If .Name = ThisWorkbook.Name Then Exit Sub
   If MsgBox("Copier la feuille '" & Sheets(1).Name & "' ?", 4) = 6 Then _
   .Sheets(1).Cells.Copy ThisWorkbook.Sheets("ARCHIVE").[A1] 'copie toutes les cellules
   .Close 'ferme le fichier
 End With
 End Sub
A+
 
Re : Macro copier/coller d'un fichier Excel à un autre avec noms des fichiers variabl

Bonjour le fil, bonjour le forum,

Heu dis-moi Job... Tu y es allé toi, à l'enterrement de Holeshotman ? Ha bon ! Quoi ! Il est pas mort... Oooops désolé j'avais cru...
 
Re : Macro copier/coller d'un fichier Excel à un autre avec noms des fichiers variabl

Ahaha ! 😛
Je ne suis pas encore mort Robert! Je suis en train de tester vos différentes propositions et pour l'instant j'ai de bons résultats. Vous êtes au top 😉
Robert, j'aimerais bien pouvoir me passer d'un UserForm.. si possible
Au top Job la solution avec le ChDir! Thanks a lot!

A bientôt je pense (car je suis vraiment novice^^)
Merci encore.
 
Re : Macro copier/coller d'un fichier Excel à un autre avec noms des fichiers variabl

Bonjour le fil, bonjour le forum,

Dieu Merci ! Holeshotman le Retour...

Oui, je préfère aussi la solution de Job sans UserForm car, comme je t'avais dit, c'est presque plus rapide de le faire manuellement dans ce cas...
 
- 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