Copie contenu d'un fichier .txt sur cellule

Bonjour,

voici mon problème:

je souhaiterai qu'une macro me copie TOUT le contenu d'un fichier sur une cellule (du coup les cellules avoisinantes se remplirait aussi car mon fichier .txt fait plusieurs lignes et colonnes).

Pour ce faire, il faudrait qu'une boite de dialogue me demande de sélectionner le bon fichier .txt dans les répertoires du PC

Puis il faudrait que la macro copie tout son contenu sur la cellule B1.

Je précise que suis novice (et encore) en VBA.

Merci d'avance

Bonsoir,

Il faudrait savoir comment est structuré ton fichier texte car tu parle de colonnes et lignes ?

Voici un petit exemple, la proc concatène les différentes lignes du fichier pour les coller ensuite en cellule B1 :

Sub LireFichierTexte()

    Dim Texte As String
    Dim Ligne As String
    Dim Index As Integer
    Dim Chemin

    On Error GoTo LigneErreur

    Chemin = Application.GetOpenFilename("Fichiers texte (*.txt), *.txt")

    If Chemin <> False Then

        Index = FreeFile

        Open Chemin For Input As #Index

        Do While Not EOF(Index)

            Input #Index, Ligne
            Texte = Texte & Ligne
        Loop

        Close #Index

        [B1] = Texte

    End If

    Exit Sub

LigneErreur:

    MsgBox "Erreur !"

End Sub

Hervé.

Voici le fichier .txt que je voudrais copier (pour voir sa structure) car ta macro me met un message "erreur".

Merci d'avance

Bonjour,

En faisant une requête sur le fichier texte qui est structuré comme une table de base de données :

Sub Recup()

    Dim Fichier As String

    'chemin à adapter
    Fichier = "D:\_All_Moyen_Test_STAT.txt"

    'crée une requête sur le fichier texte et insère les champs
    'dans la feuille "Feuil1" en partant de "A1"
    Worksheets("Feuil1").QueryTables.Add("TEXT;" & Fichier, [A1]).Refresh

End Sub

Hervé.

Bonjour,

J'ai modifié la recherche de fichier dans ta macro et en l'ai inclus dans mon fichier qui est en pièces jointes. Lorsque je choisi le fichier que je veux à partir de cette macro, elle me met "L'indice n'appartient pas à la sélection" alors que quand je copie cette macro dans un nouveau classeur .xls cela fonctionne.

J'aimerais aussi que cette macro, en même temps, me mette à jour des tableaux dynamiques croisés (je ne les ai pas mis dans ce classeur car trop volumineux après)

Merci de votre aide

le classeur:

Bonsoir,

Si tu n'effectue pas de choix ou si tu clique sur Annuler, "Fichier" n'est pas initialisé et donc une erreur est générée, modifie le code comme ceci :

Sub Recup()

    Dim Fichier

    Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt")

    If Fichier <> False Then
        'crée une requête sur le fichier texte et insère les champs
        'dans la feuille "Feuil1" en partant de "A1"
        Worksheets("Feuil1").QueryTables.Add("TEXT;" & Fichier, [B1]).Refresh
    Else
        MsgBox "Pour importer des données dans Excel, vous devez choisir un fichier texte !"
    End If

End Sub

Hervé.

Bonjour,

J'ai remarqué qu'on a pas défini la variable fichier, on a laissé "Dim Fichier As", donc je ne sais pas si cela est normal.

Et cette macro me met toujours le même message d'erreur: "L'indice n'appartient pas à la sélection".

Cdlmt

-- 04 Fév 2011, 11:29 --

Je crois que cela vient du fait que la feuille sur laquelle je souhaite copier les données n'est pas vide

Bonjour

A vérifier

Dans ton fichier tu n'as pas de feuille qui s'appelle "Feuil1" alors remplace

Worksheets("Feuil1").QueryTables.Add("TEXT;" & Fichier, [B1]).Refresh

Par

Worksheets("_All_Moyen_Test_STAT").QueryTables.Add("TEXT;" & Fichier, [B1]).Refresh

Bonne journée

C'était bien cela mon problème,

merci à tous.

Rechercher des sujets similaires à "copie contenu fichier txt"