Import .txt via Macro

Clemius

XLDnaute Nouveau
Bonjour à tous,

Je suis un lecteur assidu du forum qui recèle de nombreuses pépites d’information mais cette fois-ci je n'ai pas trouvé ce que je cherchais je me lance donc dans un premier post ;)

Voila ce que je souhaite faire :

-ouvrir une boite de dialogue d'import de texte
-Sélectionner le fichier texte
-coller dans la cellule B2 avec le format de séparation Virgule

En sachant que le fichier texte a un nom variable et sa localisation aussi (le document excel sera utilisé par plusieurs personnes)

J'ai trouvé ça pour ouvrir la popup window:

Application.Dialogs _
(xlDialogImportTextFile).Show

Le soucis ensuite c'est d'identifier le nom du fichier et son chemin d'accès dans la macro d'import :

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;c:\blablabla", Destination:=Range _

Si quelqu'un peut m'aider je serai très très très reconnaissant!

Merci beaucoup et très bonne journée

Clem
 

gilbert_RGI

XLDnaute Barbatruc
Re : Import .txt via Macro

bonjour

essayez ceci

Code:
Private Sub test()
    'Application.GetOpenFilename ' affiche la boîte de dialogue sans ouvrir
   
Dim DocChoisi
     DocChoisi = Application.GetOpenFilename(("Tous les fichiers TXT (*.txt),*.txt"), 2, "Fichiers à rechercher")
             If DocChoisi = False Then
                 ' Traitement si le bouton Annuler a été choisi
                 MsgBox "Annulé"
             Else
                 ' Vérification éventuelle que le fichier choisi est conforme à ce qui est attendu
                     '
                 ' Ouverture
                 Workbooks.Open DocChoisi
                 MsgBox DocChoisi
             End If
End Sub
 

Clemius

XLDnaute Nouveau
Re : Import .txt via Macro

Bonjour Gilbert et merci de votre réponse :
Voici le petit mix que j'ai fait :

Sub test()
Dim DocChoisi
DocChoisi = Application.GetOpenFilename(("Tous les fichiers TXT (*.txt),*.txt"), 2, "Fichiers à rechercher")
If DocChoisi = False Then
MsgBox "Error"
Else
Sheets("XX").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;docchoisi", Destination:=Range _
("$b$2"))
.Name = ???
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End If
End Sub

la macro cesse de marcher et affiche le message de bug suivant :
"erreur 1004" Impossible de trouver le ficher texte pour l'actualisation blablabla

l'erreur vient du fait que je ne sais pas quoi mettre dans la ligne Name = ???

Merci beaucoup
 

Statistiques des forums

Discussions
312 581
Messages
2 089 910
Membres
104 303
dernier inscrit
Patdec