Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

UserForm pour ouvrir un classeur Xslm et récupéer des données

lmc71

XLDnaute Occasionnel
Bonjour à toutes, à tous le forum
J'utilise actuellement la macro 1 pour récupérer les données des fichiers 1 Tri, 2 Tri etc..... pour les recopiées dans un autre classeur. Elle fonctionne très bien.
Voilà pour une autre fonction, je dois choisir un seul fichier parmi ceux là entre autre.

J'ai incorporé dans cette macro (macro 2) la ligne NomFichiers = InputBox("Entrez le nom du fichier") pour que je puisse choisir par l'intermédiaire d'une boite de dialogue dans quel fichier aller chercher les données à sélectionner et copier.

Mon souci dans la macro 2 est le suivant : la boite de dialogue s'ouvre, j'inscris le nom du fichier à choisir 1Tri (écriture respectée), la macro se bloque à la ligne Workbooks.Open Filename:=Fichier.

Je suis nul en VBA, et je demande de l'aide.
Merci d'avance
Amicalement à tous


Macro 1
Sub recup_Trimestre()

Const MesFichiers = "1 Tri,2 Tri,3 Tri,4 Tri"
Dim Chemin As String, Fichier As String, S

Range("c10").Select 'sélectionner la cellule de début
Chemin = "D:\cELINE serge HONORAIRES\Honoraires\Bellegarde\HO Tri\"

For Each S In Split(MesFichiers, ",")
Fichier = Chemin & S & ".xlsm"
Workbooks.Open Filename:=Fichier
Range("Trimestre").Copy
ThisWorkbook.Activate
Selection.PasteSpecial Paste:=xlPasteValues
Windows(S & ".xlsm").Activate
ActiveWorkbook.Close savechanges:=False
ThisWorkbook.Activate
Range("c65536").End(xlUp).Offset(1, 0).Select
Next S
End Sub


Macro 2

Sub Transfert()
NomFichiers = InputBox("Entrez le nom du fichier")

Const MesFichiers = "NomFichiers"
Dim Chemin As String, Fichier As String, S

Range("c10").Select 'sélectionner la cellule de début
Chemin = "D:\cELINE serge HONORAIRES\Honoraires\Bellegarde\HO Tri\"

For Each S In Split(MesFichiers, ",")
Fichier = Chemin & S & ".xlsm"
Workbooks.Open Filename:=Fichier
Range("Trimestre").Copy
ThisWorkbook.Activate
Selection.PasteSpecial Paste:=xlPasteValues
Windows(S & ".xlsm").Activate
ActiveWorkbook.Close savechanges:=False
ThisWorkbook.Activate
Range("c65536").End(xlUp).Offset(1, 0).Select
Next S
End Sub
 
Dernière édition:

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
666
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…