IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Insertion conditionnelle d'un .txt dans une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Août 2015
    Messages : 1
    Par défaut Insertion conditionnelle d'un .txt dans une cellule
    Bonjour,

    J'ai un fichier excel avec une liste de valeurs dans la colonne A.
    Ces valeurs correspondent à des noms de fichiers texte (sans le .txt) stockés dans un même dossier.
    Je voudrais créer une macro qui parcours la colonne A et qui pour une valeur en Ai va chercher le contenu du fichier texte dons le nom correspond à la valeur et insère l'ensemble de son contenu dans la cellule Bi.
    Pour l'instant j'ai trouvé une macro qui insère en B1 le contenu d'un fichier texte que l'on sélectionne à l'ouverture d'une fenêtre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    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) 
    Line Input #Index, Ligne 
    If Texte = "" Then
    Texte = Ligne 
    Else 
    Texte = Texte & vbCrLf & Ligne 
    End If 
    Loop 
    Close #Index 
    [Bi] = Texte
    End If
    Exit Sub 
    LigneErreur:
    MsgBox "Erreur !"
    End Sub
    Au final je voudrais une macro qui ne nécessite pas une sélection de fichier via une fenêtre, mais plutôt quelque chose d'automatique.

    Je vous remercie pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Une piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    Sub LireFichierTexte()
     
        Dim Plage As Range
        Dim Cel As Range
        Dim Texte As String
        Dim Ligne As String
        Dim Index As Integer
        Dim Chemin As String
        Dim Truc As String
     
        With ActiveSheet
     
            Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
     
        End With
     
        Truc = "ce que je cherche" 'ici la cellule ou variable contenant la valeur cherchée
     
        Set Cel = Plage.Find(Truc, , xlValues, xlWhole)
     
        If Not Cel Is Nothing Then
     
            Chemin = Cel.Value & ".txt"
     
            Index = FreeFile
     
            Open Chemin For Input As #Index
     
            Do While Not EOF(Index)
     
                Line Input #Index, Ligne
     
                If Texte = "" Then
                    Texte = Ligne
                Else
                    Texte = Texte & vbCrLf & Ligne
                End If
     
            Loop
     
            Close #Index
     
            [Bi] = Texte
     
        End If
     
    End Sub
    Hervé.

Discussions similaires

  1. [XL-97] Récupérer contenu fichier TXT dans une cellule !
    Par Garth69 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/02/2011, 22h37
  2. Insertion d'un composant (Container) dans une cellule Grid
    Par homepb dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 24/03/2010, 13h17
  3. contenu txt dans une cellule tableau
    Par UDSP50 dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 27/05/2008, 16h35
  4. [html] insertion d 1 image dans une cellule avec taille en %
    Par hijodelanoche dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 19/01/2006, 00h50
  5. [EXCEL] Insertion liste déroulante dans une cellule
    Par the java lover dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/11/2005, 18h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo