Importer etxte dans feuille specifique excel [Résolu]

Signaler
Messages postés
45
Date d'inscription
lundi 1 mai 2000
Statut
Membre
Dernière intervention
25 février 2012
-
jraynald
Messages postés
45
Date d'inscription
lundi 1 mai 2000
Statut
Membre
Dernière intervention
25 février 2012
-
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

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
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
Messages postés
45
Date d'inscription
lundi 1 mai 2000
Statut
Membre
Dernière intervention
25 février 2012

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
ca 'bloque' ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
45
Date d'inscription
lundi 1 mai 2000
Statut
Membre
Dernière intervention
25 février 2012

j'ai l'erreur:
Erreur de compilation
Type d'argument ByRef incompatible
Messages postés
45
Date d'inscription
lundi 1 mai 2000
Statut
Membre
Dernière intervention
25 février 2012

Oups désolé j'ai recommencé et ça fonctionne nickel