Import fichier texte dans feuille existante

Bonjour,

je souhaiterai importer à l'aide d'une macro un fichier texte dans mon classeur Excel existant, à partir de la cellule A2 pour ne pas effacer la 1ère ligne.

Le fichier que j'aimerai obtenir:

https://www.excel-pratique.com/~files/doc/voulu.xls

Le fichier de base vierge:

https://www.excel-pratique.com/~files/doc/base.xls

Les données au format txt:

https://www.excel-pratique.com/~files/doc/data.txt

Merci de votre aide.

bonsoir

tu peux tester cette procédure

Sub ImportFichierTexte()
Dim lngPosistion As Long
Dim strLine As String
Dim Tableau() As String
Dim i As Integer, j As Integer

i = 2
Open "C:\dossier\data.txt" For Binary As #1
    Do While lngPosistion < LOF(1)

        strLine = Input(420, #1)
        j = 1

        Do While Len(strLine) > 0
            strLine = VBA.LTrim(strLine)

            Tableau = Split(strLine, " ")
            Cells(i, j) = Tableau(0)

            strLine = Right(strLine, Len(strLine) _
                - Len(Tableau(0)))
            j = j + 1
        Loop

        lngPosistion = Loc(1)
        i = i + 1
    Loop
Close #1
End Sub

bonne soirée

michel

Merci beaucoup, c'est exactement ça que je voulais.

Je viens de faire un test dans mon fichier avec les noms définitifs et je viens de me rendre compte que si je remplace "srv2" par "srv_2" j'obtiens une erreur.

Une idée du problème ?

bonjour

si je remplace "srv2" par "srv_2" j'obtiens l'erreur suivante:

Difficile de répondre sans pouvoir faire d'essai

Le message d'erreur survient à quelle ligne dans la procedure ?

au bout de combien de boucles ?

Est ce que cette modification ("srv2" par "srv_2") change le nombre d'octets par ligne dans le fichier txt ?

Dans ce cas, adapte la procédure en fonction du fichier txt

strLine = Input(420, #1)

bonne journée

michel

En effet, un caractère de plus égal un octet en plus.

J'ai mis 421 au lieu de 420 et ça fonctionne.

strLine = Input(421, #1)

MERCI !

Rechercher des sujets similaires à "import fichier texte feuille existante"