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

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 ;)
 

job75

XLDnaute Barbatruc
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:

Robert

XLDnaute Barbatruc
Repose en paix
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

  • Holeshotman_v01.xls
    54.5 KB · Affichages: 104
  • Holeshotman_v01.xls
    54.5 KB · Affichages: 120
  • Holeshotman_v01.xls
    54.5 KB · Affichages: 133

job75

XLDnaute Barbatruc
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:

job75

XLDnaute Barbatruc
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+
 

Robert

XLDnaute Barbatruc
Repose en paix
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...
 

Holeshotman

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

Ahaha ! :p
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.
 

Robert

XLDnaute Barbatruc
Repose en paix
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...
 

Discussions similaires

Statistiques des forums

Discussions
312 464
Messages
2 088 645
Membres
103 902
dernier inscrit
ZENDA