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 :

Macro Recopier en boucle les infos dans *.txt sur excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Par défaut Macro Recopier en boucle les infos dans *.txt sur excel
    Bonjour à tous,

    Je suis débutant en macro sur excel, pourriez-vous m'aider à compléter ceci svp:
    J'ai besoin de récupérer des informations qui sont sur plusieurs fichiers *.txt
    Ces fichiers *.txt sont tous dans un même répertoire (des centaines...)
    et sont tous de formes identiques (les positions des données à extraire sont identiques)
    J'aimerais récupérer 9 informations dans chacun de ces fichiers *.txt (non pas l'intégralité du fichier)

    Les différentes étapes que je fais pour l'instant "à la main":
    Depuis le fichier excel "exemple.xls" dont je veux recopier les infos:
    1- Ouvrir un fichier *.txt, avec les options de préformatage (dont le séparateur = espace)
    2- Recopier les infos de chacune des 9 cellules (A-B-C-D-E-F-G-H-I) du fichier "monfichier.txt"
    dans mon fichier excel "exemple.xls" sur une même ligne (voir image)"
    3- Fermer le fichier *.txt une fois la copie terminée puis ouvrir le suivant

    Chaque fichier *.txt est recopié sur une seule ligne, le fichier *.txt suivant sur la ligne n+1
    et ainsi de suite jusqu'au dernier fichier du répertoire.

    Merci beaucoup à tous.


  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut



    Bonjour,

    en activant l'Enregistreur de macros puis en effectuant les étapes manuellement, une base de code est livrée sur un plateau ‼
    Poster ensuite le code ainsi généré dans cette discussion entre balises via l'icône # conformément aux règles de ce forum
    en joignant un fichier texte source et un classeur xlsx - sans code - avec une feuille résultat découlant de ce fichier source …


    _____________________________________________________________________________________________________
    Je suis Charlie, Bardo, Sousse

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu exemple simple
    bonjour
    la methode est tres simple
    on split le texte tout entier par les saut de ligne
    2 on coupe les lignes par les espaces
    comme les espaces sont diférent il faut tester a chaque fois si le morceau contient du texte
    si oui mettre sinon passer au suivant
    comme tes lignes contiennent des espaces différent il faut tester

    un exemple le msgbox t'affiche l'endroit ou devrait etre positionner dans le sheets le morceau de la chaine

    exemple a adapter dans une boucle sur la fonction dir par exemple
    en considérant que la copie colmmence en A1 a adapter bien sur
    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
    Sub tst()
        fichier = "C:\Users\polux\Desktop\Nouveau document texte.txt"
        ff = FreeFile
        Open fichier For Input As #ff
        strtext = Input(LOF(ff), #ff)
        Close #ff
     
        ligne = Split(strtext, vbCrLf)
        For i = 0 To UBound(ligne)
            col = Split(ligne(i), " ")
            cl = 0
            For e = 0 To UBound(col)
                If col(e) <> "" Then cl = cl + 1: MsgBox "ligne " & i + 1 & "  colonne" & cl & " = " & col(e)
            Next
        Next
     
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Par défaut Macro copier/coller fichier txt
    Bonjour à tous,

    Voici un code proposé par ""gmb"" que je le remercie grandement.
    Ce code répond bien à ma demande.
    Je vous le partage ici pour avoir vos avis.

    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
    Option Explicit
     
    Dim chemin, nomFichier, f, classeur, i, lgn, adrOr, flag
     
    Sub Importer()
     
    Application.ScreenUpdating = False
    If flag = 1 Then
    Range(""A1"").CurrentRegion.Offset(1, 0).ClearContents
    End If
    chemin = ThisWorkbook.Path & ""\""
    nomFichier = Dir(chemin & ""*.*"")
    Do While nomFichier <> """"
    Set f = ActiveSheet
    lgn = f.Range(""A1"").CurrentRegion.Rows.Count + 1
    If nomFichier <> ThisWorkbook.Name Then
    Set classeur = Workbooks.Open(chemin & nomFichier)
    For i = 1 To 9
    adrOr = Choose(i, ""$B$1"", ""$C$1"", ""$B$5"", ""$E$5"", ""$B$9"", ""$E$9"", ""$C$13"", ""$D$13"", ""$E$13"")
    f.Cells(lgn, i).Value = Range(adrOr)
    Next i
    classeur.Close False
    End If
    nomFichier = Dir
    Loop
    ActiveSheet.Range(""$A$1"").CurrentRegion.RemoveDuplicates Columns:=Array(2, 3), Header:=xlYes
    End Sub
    mes données sur txt:

    "112322 A B blabla bla
    blabla bla

    blabla bla
    FRA C ey 1234 D


    blabla blablabla blablabla blablabla blablabla bla
    12 E 22 33 F

    blabla bla

    020 12345678 G H I


    blabla bla


    blabla blablabla bla
    "

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Sans code balisé (via l'icône # conformément aux règles du forum !) difficile d'indiquer les lignes à améliorer !

    De mon côté, je lirais les fichiers source directement en mémoire sans les ouvrir dans Excel, comme Patrick en fait …

Discussions similaires

  1. [XL-2003] Macro permettant de recupérer des infos dans un fichier .txt externe
    Par EsKa68 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 10/08/2010, 11h09
  2. lster userform.combobox avec les infos dans un autre classeur
    Par dkmix dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/10/2007, 22h53
  3. obtenir les infos dans une meme fenetres
    Par xavewake dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/08/2007, 10h01
  4. RTFTemplate et les INFO dans la console
    Par lulu_reunion dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 19/04/2007, 13h57
  5. Regrouper les infos dans une facture
    Par CRonaldo dans le forum Access
    Réponses: 10
    Dernier message: 22/11/2006, 22h37

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