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 :

Possibilité de compilation de fichiers texte avec une macro


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Points : 35
    Points
    35
    Par défaut Possibilité de compilation de fichiers texte avec une macro
    Bonjour,
    Est il possible de crée une macro qui permet d'ouvrir tout les fichiers wordpad contenu dans un dossier et de copier le contenu sur un seul fichier excel merci
    et comment faire

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Oui ! Tu as de nombreux exemples pour ouvrir tous les fichiers d'un répertoire sur ce forum ou sur Contribuez Excel. Tu tapes "répertoire" ou "liste" dans la recherche sur ce forum
    Pour un fichier.rtf, tu dois l'ouvrir sous word et récupérer son contenu.
    Tu as également plusieurs exemples de création d'instances de Word et d'ouverture de document. La seule différence étant l'extension du fichier en question. Regarde là aussi dans Contribuez Excel en faisant une recherche sur le forum avec le mot clé "Word"
    Enfin, si tu as un pb, tu nous montres ce que tu as fait, on pourra t'aider
    Bonne journée

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Points : 855
    Points
    855
    Par défaut
    Dans l'aide en ligne, tu as un paquet d'informations qui t'expliquent la gestion des fichiers en VBA (instructions "Open", "Close", etc...). Tu as également des informations dans des tutos et la FAQ sur le site.

    Cherche déjà à remuer tout ça, et s'il te manque des élements alors là on pourra t'aider à y ajouter un plus.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Points : 35
    Points
    35
    Par défaut
    Pour le moment je n'ai encore rien fais sur VBA je fais que du papier.
    Mais je ne sais pas comment faire sachant que je touche a VBA depuis seulement 2 semaines mais j'ai les idées pour mettre tout sa en place.
    Je prendrais des renseignements aprés merci

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tiens-nous au courant.
    Le cas échéant, continue sur cet même discussion

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Points : 35
    Points
    35
    Par défaut
    J'ai trouver un topic parlant de sa , cependant j'ajoute un peu de difficulté, mes fichiers de base sont en wordpad et lorsque je les ouvrent sur excel il y a une manipulation automatique a réglé
    Ma macro doit se faire de cette maniere :
    - passez les fichiers en wordpad en format Excel de maniere spéciale , ensuite copier l'ensemble des fichiers wordpad convertit en format excel vers un fichier qui regroupe toute les informations .

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    S'il ne s'agit pas de l'import d'un objet "document Word", je doute qu'Excel puisse ouvrir les fichiers RTF qui ont un format de fichier créé pour être lu par la plupart des logiciels de traitement de texte. L'important ici, c'est "Texte".
    En outre, un RTF n'est pas un txt.
    Un tableur comme Excel n'est pas un traitement de texte et, à moins que je ne me trompe (je ne connais pas tout tant s'en faut) tu dois passer par un logiciel de la gamme Office de traitement de texte et je ne vois guère que Word pour faire ça.
    Donc, ouverture du fichier depuis Word, et donc ouverture d'une application Word depuis Excel, ouverture de ton fichier, copie dans Word, Collage dans Excel.
    Maintenant, je ne sais sous quelle forme tu veux le contenu puisque tu ne l'as pas précisé.
    A+

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Points : 35
    Points
    35
    Par défaut
    C'est un fichier de chiffre séparé par des virgule qui est trés bien géré par excel et qui a l'ouverture permet de bien cadré les nombres dans des colonnes et de les séparé c'est bien pour cela que j'utilise Excel

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Points : 855
    Points
    855
    Par défaut
    Si tes fichiers sont des .txt (ils s'ouvrent avec le bloc notes ou le wordpad ça dépend...), eh bien le plus pratique sera de se servir de la gestion de fichiers avec la solution que je t'ai proposé.

    Si ce sont des fichiers faits pour le wordpad, regarde à quoi ça ressemble si tu les ouvres avec le bloc notes, et s'il n'y a rien d'autre que tes chiffres séparés par virgule, alors là aussi tu pourras ouvrir les ficheirs comme ça.

    Sinon ben comme te l'a dit ouskel'n'or va falloir toucher à l'ouverture d'applications depuis Excel, et tu auras beaucoup de boulot pour y arriver.

  10. #10
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    le terme "compilation" dans ta demande porte à confusion.

    Mais sur base de l'évolution de ce fil, et de tes explications, les solutions qui te sont proposées devraient fonctionner.

    Tu peux aussi intégrer un fichier texte à un endroit donné, via ce genre de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\DATA\example.txt", _
            Destination:=Range("A1"))
            .Name = "example"
            .FieldNames = True
            .RowNumbers = False
         End With
    End Sub
    et en gérant la destination, tu peux stocker les données les unes après les autres.

    (NB, ce code est très facile à généré via l'enregistreur de macro )

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    S'ils sont gérés par Excel, alors il te suffit d'une boucle sur les fichiers de ton répertoire et de copier les feuilles.
    Je te donne le code mais n'y reviens plus
    Exécute la macro Appel en adaptant le répertoire *****
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub appel()
    Dim chemin As String
        Application.ScreenUpdating = False
        chemin = "D:\NomDuRépertoire\" '*****
        Lister chemin
        Application.ScreenUpdating = True
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Function Lister(chemin As String)
    Dim Nomfich As String
        Nomfich = Dir(chemin & "\*.txt")
        Do While Nomfich <> ""
            Workbooks.OpenText Filename:=chemin & Nomfich, Origin:=xlWindows, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
            ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=True
            ActiveSheet.Copy After:=ThisWorkbook.Worksheets(ThisWorkbook.Sheets.Count)
            Nomfich = Dir()
        Loop
    End Function
    Tu as tout ce qu'il faut dans l'aide en ligne pour lister les fichier du répertoire.
    En outre si tu avais enregistré une macro en faisant, tu aurais eu la syntaxe pour l'ouverture des fichiers texte et la copy des feuilles.
    Essai de comprendre ce code, il te servira pour lister d'autres types de fichier et à gérer la copie de feuille d'un classeur à l'autre.
    Bonne journée

  12. #12
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Points : 35
    Points
    35
    Par défaut
    Bonjour,
    Merci pour vos réponses, dsl de ne pas avoir répondu avant je n'était pas la.
    Je vais essayer et vous tient au courant des éventuelles soucis que je rencontrerais merci

  13. #13
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Points : 35
    Points
    35
    Par défaut
    Re bonjour Ouskel'n'or, j'ai essayer la macro mais je n'y comprend pas grand chose sachant que rien ne se lance, je n'ai pas assez d'experience sur VB dsl .
    Le but est dans un premier temps de lister les fichiers dans le dossier ? dans ce cas la pourrait- on utiliser une macro qui liste tout les fichiers s contenu dans le dossier et l'utiliser ensuite ?
    Merci de me répondre

    J'ai deja une macro qui permet de recuperer et de lister les nom des fichiers contenu dans un dossier , serait 'il possible de construire ma macro sur cette base ??
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Function selectFolder() As String
    Dim myDlgOpen As FileDialog
    Dim DirName As String
     
    selectFolder = ""
     
    Set myDlgOpen = Application.FileDialog(msoFileDialogFolderPicker)
     
    myDlgOpen.Show
    If myDlgOpen.SelectedItems.Count > 0 Then
        DirName = myDlgOpen.SelectedItems.Item(1)
    End If
     
    selectFolder = DirName
     
    End Function
     
    Sub Liste()
    Dim ScanFic As Office.FileSearch
    Dim NomFic As Variant
    Dim Diag As String
    Dim Nbr As Long
    Dim I As Long
    Dim pathway As String
    Dim Pathfic As String
    Dim FileName As String
    Dim SubFolderAsk As Boolean
     
    pathway = selectFolder
     
    If Len(pathway) > 0 Then
     
        If MsgBox("Voulez-vous appliquer cette tache aux sous-dossiers ?", vbYesNo) = vbYes Then
            SubFolderAsk = True
        Else
            SubFolderAsk = False
        End If
     
        Set ScanFic = Application.FileSearch
        With ScanFic
        .NewSearch
        .LookIn = pathway
        .SearchSubFolders = SubFolderAsk
        .MatchTextExactly = True
        .FileType = msoFileTypeAllFiles
        Nbr = .Execute
        Diag = Format(Nbr, "0 ""fichiers trouvés""")
        I = 2
     
        For Each NomFic In .FoundFiles
            I = I + 1
     
            FileName = ExtractFileName(NomFic)
            Pathfic = Left(NomFic, Len(NomFic) - Len(FileName))
     
            Sheets("Sheet1").Cells(I, 2).Value = UCase(Pathfic)
            Sheets("Sheet1").Cells(I, 3).Value = LCase(FileName)
      Next
    MsgBox Diag
    End With
     
    Else
        MsgBox "Looser !"
    End If
     
    End Sub
     
    Public Function ExtractFileName(filespec) As String
    Dim x As Variant
     
    x = Split(filespec, Application.PathSeparator)
    ExtractFileName = x(UBound(x))
     
    End Function
    Pour ceux qui veulent l'essayer, elle permet de repertorié et lister les fichiers present dans un dossier

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    la fonction "Public Function Lister(chemin As String)" que je t'ai donnée liste les fichiers d'un répertoire et les ouvre. Il suffit de remplacer "chemin = "D:\NomDuRépertoire\" par le chemin de ton répertoire sans oublier "\" à la fin.
    Que veux-tu de plus ?
    Citation Envoyé par Tinien
    j'ai essayer la macro mais je n'y comprend pas grand chose
    Comprends-tu mieux le code que tu proposes ?

  15. #15
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Points : 35
    Points
    35
    Par défaut
    La macro que j'ai est une macro faite par un ami qui me la expliquer ( a peu prés), mais mon but est de pouvoir rassembler sur une seul feuille les données contenut sur tout les document wordpad contenu dans le dossier et j'y arrive pas .

    De plus avec la macro que tu ma proposer la fonction lister bug. ( j'ai Office En anglais).

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut
    Si tu ne réponds pas aux questions qu'ils te posent, Tinien, tu vas être mal barré.
    Et notamment une réponse qui est essentielle : à quel format sont donc ces fichiers "wordpad" ? Déjà si tu indiquais l'extension ce serait bien (.txt, .rtf, .csv ?).
    Les fichiers sont-ils lisibles ou non via le notepad (et non wordpad) ?
    Et quand tu dis "C'est un fichier de chiffre séparé par des virgule qui est trés bien géré par excel et qui a l'ouverture permet de bien cadré les nombres dans des colonnes et de les séparé c'est bien pour cela que j'utilise Excel ", s'agit-il du formatage des fichiers à intégrer ou du résultat final que tu veux obtenir ?
    Parce que là je me demande si tu n'aurais pas simplement des fichiers csv à intégrer, ce qui est simple à faire mais encore faudrait-il le savoir.

  17. #17
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Points : 35
    Points
    35
    Par défaut
    Bonjour neupont,

    Les fichiers sont en .dta ; lisible sur notepad et wordpad,
    Je te presente une ligne type présente sur les fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    212;0000027;0050;40005518;          2752,30;           539,45;          3291,75;941743
    Je posséde plusieurs centaines de fichiers comme sa, contenant un nombre de ligne indéterminée, et je voudrais avoir toutes ces données dans une feuille excel, avec une manipulation a l'ouverture, excel sépare tout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Workbooks.OpenText FileName:= _
            "", Origin:= _
            932, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
            , Space:=False, Other:=False, _
                TrailingMinusNumbers:=True
    Je voudrais donc faire une macro qui permet de faire ceci, merci

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Points : 855
    Points
    855
    Par défaut
    Au vu de la disposition de tes nombres, j'en déduis que la lecture de tes fichiers avec l'instruction Open est la seule à adopter.

    Bref, tu vas devoir potasser l'aide en ligne, les tutos et les FAQ (à mon avis de l'aide pour savoir se servir de la lecture de fichiers c'est pas ce qui manque), et il faut également que tu maîtrise un minimum la manipulation de chaînes de caractères (là encore il doit y avoir beaucoup d'aides, surtout que l'aide en ligne donne des exemples).

    Je te dis juste comment je procèderais. je lirais tout le fichier d'un seul coup (avec l'instruction Get) en le stockant dans une seule variable, et ensuite je ferais une boucle qui en extrait un à un les différents nombres pour les coller dans la feuille Excel.

    Ce n'est pas insurmontable, mais je n'ai pas envie de passer 30-60 minutes à te pondre un code tout cuit que tu ne comprendras pas.

  19. #19
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Points : 35
    Points
    35
    Par défaut
    Le probleme est que je n'est pas accés a l'aide en ligne :s donc je n'arrive pas a trouver ce qu'il faut pourrais tu m'aider d'avantage ou pas ?

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Points : 855
    Points
    855
    Par défaut
    Tu as l'aide en ligne de VBA (qui est sur ton PC en apopuyant sur F1), les tutos et les FAQ du site: je pense que tu peux chercher un peu quand même.

    C'est pas compliqué pourtant: tu ouvres ton fichier, tu le lis et mémorise son contenu dans une variable, tu le ferme et tu découpe la variable en morceaux que tu colles dans Excel. Rien de bien sorcier, si on s'en donne les moyens.

    De l'aide? Tu auras besoin de:
    -Open, Get et Close pour ton fichier
    -des fonctions de traitement des chaînes de caractères: Instr, Mid (ou Left ça dépend des goûts)
    -et c'est tout!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Renommer un fichier texte avec une chaine extraite de ce fichier
    Par sebariaz dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 28/03/2013, 20h18
  2. copier contenu d'un fichier text via une macro
    Par bassm dans le forum VBA Word
    Réponses: 9
    Dernier message: 11/12/2008, 11h13
  3. Réponses: 3
    Dernier message: 23/09/2006, 15h19
  4. [VBA-E] Exporter un fichier Web avec une macro
    Par Wilgard dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/05/2006, 12h25
  5. Comment parcourir un fichier texte avec une boucle ?
    Par kikica dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2005, 17h13

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