XL 2019 injecter fichier excel avec nom variable

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 !

Romain.Gib

XLDnaute Nouveau
Bonjour,

Dans le cadre de mon travail, j'aimerai pouvoir injecter un fichier excel dans un autre fichier via une macro de la manière automatique via un chemin d'accès.
Le fichier en question commence systématiquement par "cadencier" suivi d'une date.

Actuellement, j'injecte le fichier manuellement.

Voici le début de mon code :

Sub cadencierbefcodeinterne()
Dim FileToOpen As Variant
Dim OpenBook As Workbook
Application.ScreenUpdating = False
FileToOpen = Application.GetOpenFilename(Title:="Injecter le cadencier BEF", FileFilter:="Excel Files (*.xls*),*xls*,All Files (*.*), *.*")
If FileToOpen <> False Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)
OpenBook.Sheets(1).Range("A1:AC17000").Copy
ThisWorkbook.Worksheets("Cadencier BEFMOUV").Range("A1").PasteSpecial xlPasteValues
OpenBook.Close False
' Application.ScreenUpdating = False
MsgBox "Traitement terminé !", 64
End If


End Sub


J'aimerai de ce fait, qu'en cliquant sur un bouton, injecter le fichier "cadencier" (exemple : cadencier 2023-10-30.xlsx) qui se trouve sous : "G:\Drive partagés\(030) Commun" de manière automatique.

Merci d'avance,
 
Bonjour,

Il n'y aura qu'un seul fichier commençant par "Cadencier" mais la date composant ce nom de fichier change.

Là actuellement je dois aller chercher le fichier "Cadencier" manuellement.
Je souhaiterai que cela se fasse en automatique en cliquant sur un bouton en sachant que le début du nom du ficher restera inchangé.

Cordialement,
 
Bonjour Romain, Job,
Un essai en PJ avec :
VB:
Sub OuvreCadencier()
    ' Chemin = "C:\Users\PC_PAPA\Desktop\"  'pour test
    Chemin = "G:\Drive partagés\(030) Commun"
    Fichier = ChercheCadencier(Chemin)
    If Fichier <> "" Then Workbooks.Open Dossier & Fichier
End Sub
Function ChercheCadencier(Dossier)
Dim Fichier As String, i As Integer
i = 0: ChercheCadencier = ""
Fichier = Dir(Dossier)
Do While Fichier <> ""
    i = i + 1
    If Left(Fichier, 9) = "Cadencier" Then
        ChercheCadencier = Fichier
        Exit Function
    End If
    Fichier = Dir
Loop
End Function
Le Chemin doit être mis à jour si erroné.
 

Pièces jointes

Il n'y aura qu'un seul fichier commençant par "Cadencier" mais la date composant ce nom de fichier change.
Vous pouvez simplement placer cette macro dans ThisWorkbook :
VB:
Private Sub Workbook_Activate()
Dim chemin$, fichier$
chemin = ThisWorkbook.Path & "\" 'pour tester plus facilement
'chemin = "G:\Drive partagés\(030) Commun\"
fichier = Dir(chemin & "Cadencier*.xls*")
If fichier = "" Then MsgBox "Pas de fichier à coper !", 48: Exit Sub
Application.ScreenUpdating = False
Application.EnableEvents = False 'dèsactive les évènements
With Workbooks.Open(chemin & fichier)
    ThisWorkbook.Sheets("Cadencier BEFMOUV").[A1:AC17000] = .Sheets(1).[A1:AC17000].Value
    .Close False
End With
Application.EnableEvents = True 'réactive les évènements
End Sub
Elle se déclenche quand on ouvre ou active le fichier.

Pour tester téléchargez les fichiers joints dans le même dossier (le bureau).

Salut sylvanu.
 

Pièces jointes

- 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

Réponses
3
Affichages
534
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
76
Réponses
3
Affichages
518
Retour