Résolu - Ouvrir un répertoire en VBA

JonMist

XLDnaute Nouveau
Bonjour à tous sur le forum,

Je me retrouve fasse à une difficulté.:confused::confused: Je cherche à faire un macro qui m'ouvrirait un répertoire pour que l'utilisateur puisse sélectionner et lancer un traitement d'import de donnée à partir d'un fichier variable.

J'ai réussi à enregistré un import avec le code suivant qui marche parfaitement :

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
"OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=chemin\Deskt\Nomfichier.xlsm;Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB: Database Password="""";Jet OLEDB:Engine Type=37;Jet OLEDB: Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB: Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support " _
, "Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False"), Destination _
:=Range("$A$1")).QueryTable
.CommandType = xlCmdTable
.CommandText = Array("'NomOnglet$'")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = _
"chemin\Desktop\NomFichier.xlsm"
.ListObject.DisplayName = "Tableau_Base"
.Refresh BackgroundQuery:=False
End With

Cependant, cet import se réalise (par nature) toujours à partir du même fichier.
Je voudrait donc ouvrir un répertoire pour que l'utilisateur puisse choisir le fichier à partir duquel il fera son import.
Le fichier en question peut changer de nom et de répertoire (d'où mon interrogation), cependant sa structure restera totalement identique.
Espérant avoir été suffisamment clair dans l'explication de mon problème, je vous remercie par d'avance pour le temps que vous pourrez accorder à ma requête.:D:D

Cordialement.
 
Dernière édition:

ERIC S

XLDnaute Barbatruc
Re : Ouvrir un répertoire en VBA

Bonjour

ChDir (ThisWorkbook.Path)
'choix d'un fichier pour récupérer le répertoire
monfichier = Application.GetOpenFilename

doit te permettre d'ouvrir la boite de dialogue
quand le fichier est sélectionné, il n'est pas ouvert mais son nom est dans la variable monfichier
 

jokapic

XLDnaute Junior
Re : Ouvrir un répertoire en VBA

Tiens tu peux toujours t'inspirer de ça.

Code:
Sub Import()

' Import Macro


Application.DisplayAlerts = False
Application.ScreenUpdating = False
 'Sélection du fichier à convertir (C:\)
 ChDrive ("C")
 ChDir "C:\"
 Fichier = Application.GetOpenFilename("(*.txt),")
 If Fichier = False Then
 MsgBox "Aucun fichier n'a été sélectionnné", vbExclamation, "Erreur"
 Exit Sub
 End If
 Workbooks.OpenText Filename:=Fichier, Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 1), Array(4, 4), Array(5, 2), Array(6, 2), Array(7, 2))

End Sub

Cependant il te fait un import vers une autre feuille excel. ( désolé j'ai trouvé ce code car moi aussi j'ai besoin d'un import, mais bon je suis pas très bon en vb, donc peut être que toi tu arriveras à arranger le code ):p
 

JonMist

XLDnaute Nouveau
Re : Ouvrir un répertoire en VBA

Bonjour ERIC S, Bonjour Jokapic,

Merci beaucoup pour vos réponses rapides et pertinentes, j'ai ainsi pu résoudre mon problème.
J'ai eu un petit problème avec la procédure d'import donc je l'ai retiré pour mettre en place une procédure de copier/coller valeur, maintenant que je pouvait identifier et ouvrir mon fichier variant. (sa structure étant totalement fixe).

Merci encore pour votre aide.

Cordialement.
 

Discussions similaires

Réponses
4
Affichages
2 K

Statistiques des forums

Discussions
312 206
Messages
2 086 202
Membres
103 157
dernier inscrit
youma