Importer etxte dans feuille specifique excel

Résolu
jraynald Messages postés 45 Date d'inscription lundi 1 mai 2000 Statut Membre Dernière intervention 25 février 2012 - 19 août 2009 à 21:53
jraynald Messages postés 45 Date d'inscription lundi 1 mai 2000 Statut Membre Dernière intervention 25 février 2012 - 20 août 2009 à 19:58
Bonjour à tous,
à partir d'un classeur excel qui possède plusieurs feuille important le contenu d'un fichier texte dans une feuille spécifique, ce fichier texte comporte des tabulations que je voudrais utiliser comme changement de colonne.
J'ai essayer en enregistrant la macro excel:
Workbooks.OpenText Filename:="M:\arbre a cames\ARBRE_A_CAME_TR5.txt", Origin _
        :=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), TrailingMinusNumbers:=True

ça me créer automatiquement un nouveau classeur et je n'arrive pas à l'adapter.
en copiant le contenu du fichier texte avec notepad puis dans la feuille désirée un coller ça fonctionne, mais je sais pas le faire à partir de VBA.
Merci d'avance pour votre aide.

5 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 août 2009 à 09:30
possible de faire :
Sub test()
    ImporterCSV "C:\a.txt", Worksheets("Feuil2").Range("C5"), vbTab
End Sub

Sub ImporterCSV(ByRef vsFilePath As String, ByRef voTarget As Range, Optional ByRef vsSeparator As String = ";")
    Workbooks.OpenText vsFilePath, DataType:=xlDelimited, Other:=True, OtherChar:=vsSeparator
    voTarget.Worksheet.Range(voTarget, _
                             voTarget.Offset(ActiveSheet.UsedRange.Rows.Count - 1, ActiveSheet.UsedRange.Columns.Count - 1) _
                             ).Value = ActiveSheet.UsedRange.Value
    ActiveWorkbook.Close
End Sub



on ouvre la chose dans un autre classeur, donc, puis on importe les données à l'endroit désiré.





Renfield - Admin CodeS-SourceS - MVP Visual Basic
3
jraynald Messages postés 45 Date d'inscription lundi 1 mai 2000 Statut Membre Dernière intervention 25 février 2012
20 août 2009 à 18:45
Merci pour ton code donc j'ai essayé de faire ceci
Sub test()


fichier = Application.GetOpenFilename("fichier CEA,*.txt")

ImporterCSV fichier, Worksheets("donne").Range("a15"), vbTab
End Sub


mais ça bloque avec fichier, cette donnée comporte le nom du fichier à récuperer
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 août 2009 à 19:15
ca 'bloque' ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
jraynald Messages postés 45 Date d'inscription lundi 1 mai 2000 Statut Membre Dernière intervention 25 février 2012
20 août 2009 à 19:55
j'ai l'erreur:
Erreur de compilation
Type d'argument ByRef incompatible
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jraynald Messages postés 45 Date d'inscription lundi 1 mai 2000 Statut Membre Dernière intervention 25 février 2012
20 août 2009 à 19:58
Oups désolé j'ai recommencé et ça fonctionne nickel
0
Rejoignez-nous