[Catégorie modifiée .Net --> VBA] Problème macro importation fichier texte sous [Résolu]

Messages postés
3
Date d'inscription
vendredi 3 septembre 2010
Statut
Membre
Dernière intervention
7 septembre 2010
- - Dernière réponse : Matinfo
Messages postés
3
Date d'inscription
vendredi 3 septembre 2010
Statut
Membre
Dernière intervention
7 septembre 2010
- 7 sept. 2010 à 11:26
Bonjour,

J'ai un problème avec la macro suivante. Elle a été créée afin qu'en ouvrant un fichier excel vierge, je puisse aller chercher un fichier texte avec getopenfilename, et que les données de ce fichier texte soient insérées dans mon fichier excel.
Les deux parties fonctionnent, si je fais deux macros indépendantes, mais le lien entre les deux ne semble pas se faire. J'obtiens toujours le message d'erreur :"Erreur d'execution 1004"

Si quelqu'un avait ne serait-ce qu'un début de solution, ce serait formidable!

Merci d'avance!

Voici le code:

Sub importtxt()
'
' importtxt Macro

'Aller chercher le chemin du fichier .txt à importer
MsgBox "Ouvrez le fichier.txt à importer sous Excel"

fileToOpen = Application.GetOpenFilename()
If fileToOpen <> False Then
   MsgBox "Fichier sélectionné!"
End If

Range("B1").Select
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;fileToOpen" _
        , Destination:=Range("B1"))
        .Name = "07SA22_10mW_amb_16scans"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = xlMacintosh
        .TextFileStartRow = 1
        .TextFileParseType = xlFixedWidth
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1)
        .TextFileFixedColumnWidths = Array(12, 19)
        .Refresh BackgroundQuery:=False
        .UseListObject = False
    End With
   

End Sub
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
3
Date d'inscription
vendredi 3 septembre 2010
Statut
Membre
Dernière intervention
7 septembre 2010
3
Merci
Ca y est, j'ai trouvé ce qui ne va pas.
Il faut remplacer:
With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;fileToOpen" _
        , Destination:=Range("B1"))

par:
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & fileToOpen, Destination:=Range("B1"))

J'espère que ça pourra servir à quelqu'un d'autre!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 6032 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Matinfo
Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013
0
Merci
Salut
Si tes deux procédures marchent séparément, dans ce cas sépare les et appelle la deuxième proc à la fin de la première
Commenter la réponse de houtas
Messages postés
3
Date d'inscription
vendredi 3 septembre 2010
Statut
Membre
Dernière intervention
7 septembre 2010
0
Merci
Merci beaucoup houtas pour ta réponse. J'ai essayé d'appeler d'appeler les deux macros séparément, mais la jonction ne se fait pas.
Je m'explique : avec GetOpenfilename, je réussis à sélectionner le chemin ainsi que le nom du fichier désiré (vérifié avec des MsgBox). En revanche, lorsque je fais QueryTable, j'ai l'impression que je n'ai pas correctement fait appel au chemin obtenu précédemment. J'ai d'ailleurs fait une correction, car je ne faisais pas appel au bon nom de fichier, mais le même message d'erreur 1004 s'affiche. Ci-dessous, la dernière version du code. Une autre petite idée pour me déboguer?
Merci d'avance!

Sub importtxt()
'
' importtxt Macro
' Macro enregistrée le 3/09/2010 par pierre metzger

'Aller chercher le chemin du fichier .txt à importer
MsgBox "Ouvrez le fichier.txt à importer sous Excel"

fileToOpen = Application.GetOpenFilename()
If fileToOpen <> False Then
   nomfichier = Dir(fileToOpen)
   nomfichiersansextension = Left(nomfichier, Len(nomfichier) - 4)
   MsgBox "Fichier sélectionné : " & nomfichiersansextension
End If

Range("B1").Select
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;fileToOpen" _
        , Destination:=Range("B1"))
        .Name = "nomfichiersansextension"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = xlMacintosh
        .TextFileStartRow = 1
        .TextFileParseType = xlFixedWidth
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1)
        .TextFileFixedColumnWidths = Array(12, 19)
        .Refresh BackgroundQuery:=False
        .UseListObject = False
    End With
    
End Sub
Commenter la réponse de Matinfo