Matinfo
Messages postés3Date d'inscriptionvendredi 3 septembre 2010StatutMembreDernière intervention 7 septembre 2010
-
3 sept. 2010 à 18:54
Matinfo
Messages postés3Date d'inscriptionvendredi 3 septembre 2010StatutMembreDerniè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
Matinfo
Messages postés3Date d'inscriptionvendredi 3 septembre 2010StatutMembreDernière intervention 7 septembre 2010 7 sept. 2010 à 10:12
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