Comment changer l'adresse d'un fichier dans une macro ?

  • Initiateur de la discussion Initiateur de la discussion Pac41
  • Date de début Date de début

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 !

Pac41

XLDnaute Nouveau
Bonjour,

j'utilise une macro (réalisée grâce à l'assistant...) pour récupérer un fichier et le coller dans une cellule excel. Le fichier que je vais chercher se trouve dans un dossier qui va changer tous les trimestres.
Je voudrai avoir une boîte qui demande quel trimestre utiliser afin qu'il puisse aller chercher automatiquement ce-dit fichier et ne pas avoir à modifier le chemin dans la macro.

Voici la macro:
Sub recup_messages()
'
' recup_messages Macro
' Macro enregistrée le 22/10/2012 par Boulin Pascal
'

'
ActiveWindow.SmallScroll Down:=18
Range("A100:C358").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-243
Range("A100").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;I:\CAPI\EEC12D\MESSAGES\MESSAGES.ENQ", Destination:=Range("A100"))
.Name = "MESSAGES_2"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.Refresh BackgroundQuery:=False
End With
End Sub


Tous les trimestres le fichier Message.enq va être dans un dossier différent. Ici, c'est le dossier EEC12D qui change régulièrement.
Quelqu'un pourrait-il me donner la solution ?

Merci à vous !!
 
Re : Comment changer l'adresse d'un fichier dans une macro ?

Bonjour,

Au début de ton code, tu mets :
Code:
Var = "Chemin"
ou
Code:
Var = InputBox("Entrez le chemin")
If Var = "" Then Exit Sub

Et tu modifies ta ligne comme ceci :
Code:
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;I:\CAPI\" & Var & "\MESSAGES\MESSAGES.ENQ", Destination:=Range("A100"))
 
Dernière édition:
Re : Comment changer l'adresse d'un fichier dans une macro ?

Merci, ça marche !

Pour améliorer encore davantage, pourrai-t-on avoir un menu déroulant qui renvoie une liste de trimestres dans la boîte de dialogue ?

Merci encore de l'aide si rapide et efficace !
 
Re : Comment changer l'adresse d'un fichier dans une macro ?

Bonjour,

Voici un code qui te mermettra d'ouvrir une boite de dialogue dans laquelle l'utilisateur devra choisir le fichier source. Pour cela, dans ta code actuel, remplace la ligne :
Code:
With ActiveSheet.QueryTables.Add(Connection:= "TEXT;I:\CAPI\EEC12D\MESSAGES\MESSAGES.ENQ", Destination:=Range("A100"))
par :
Code:
MonChemin = Application.GetOpenFilename("Tous types de documents(*.*),*.*", , "Choisissez le fichier source", , True)
With ActiveSheet.QueryTables.Add(Connection:= MonChemin, Destination:=Range("A100"))
 
Re : Comment changer l'adresse d'un fichier dans une macro ?

Je vois que dans ton chemin d'accès tu as mis cette partie en couleur : EEC12D
Est ce que ça veut dire que c'est cette partie qui varie chaque trimestre ? Si oui comment ce chemin est il défini ?
 
Re : Comment changer l'adresse d'un fichier dans une macro ?

Salut,

Tu peux créer une liste déroulante dans une cellule donc VAR=A1 par exemple, puis une liste avec la validation des données dans laquelle tu rentres les noms des trimestres

COmme ça, tu choisis le mois dans la liste déroulante, avec un bouton ok..

Dis moi si tu veux un fichier d'exemple
 
Re : Comment changer l'adresse d'un fichier dans une macro ?

Dans le fichier, il y a une feuille paramètre dans laquelle on peux changer tout simplement les liens


Pour mon exemple j'ai crée un dossier dans mes document avec un fichier excel dedans


A adapter si besoin
 

Pièces jointes

Re : Comment changer l'adresse d'un fichier dans une macro ?

GeoTrouvePas: oui, le chemin est défini et seul le nom du dossier EEEC12D change en fonction du trimestre.

Pour la validation, je connais mais le problème est que là, la liste doit s'afficher dans la liste de dialogue et ça je ne sais pas le faire... oui, je veux bien un fichier d’exemple, stp.

Je compte créer dans excel, une liste de trimestre. cette liste s'afficherait dans le menu déroulant de la boite de dialogue. Ensuite excel irait chercher le bon fichier en remplaçant le nom du trimestre choisi dans la liste dans le fichier de la macro...

je ne sais pas si je suis assez clair et pas trop exigeant...

Merci à vous
 
Dernière édition:
Re : Comment changer l'adresse d'un fichier dans une macro ?

Joney, J'ai modifié la macro en fonction de ce que tu m'as indiqué.
Sub ouvrir()



'Définir les viriables
variable1 = Sheets("ENQUETEUR").Range("h45")
variable2 = Sheets("ENQUETEUR").Range("h47")
variable3 = Sheets("ENQUETEUR").Range("h49")


'Mettre une erreur si le nom est introuvable
On Error GoTo er1



ActiveWindow.SmallScroll Down:=18
Range("A100:C358").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-243
Range("A100").Select
With ActiveSheet.QueryTables.Add(Connection:= _
variable1 & variable2 & variable3, Destination:=Range("A100"))


.Name = "MESSAGES_2"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.Refresh BackgroundQuery:=False
End With


er1: Call erreur



End Sub
Sub erreur()
'Procédure de l'erreur


MsgBox "Pas de dossier correspondant au nom recherché, choississez un autre nom dans la liste!"
Exit Sub
End Sub



Par contre, j'ai toujours un message d'erreur...
voici une copie d'écran de ma feuille excel qui s'appelle "enqueteur" im.jpg

Merci encore et désolé de faire le boulet🙁
 

Pièces jointes

  • im.jpg
    im.jpg
    19.9 KB · Affichages: 59
  • im.jpg
    im.jpg
    19.9 KB · Affichages: 53
- 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

  • Question Question
Microsoft 365 CSV en EXCEL
Réponses
1
Affichages
99
Réponses
22
Affichages
3 K
Retour