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 :

[VBA-E]Concaténer fichier texte


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut [VBA-E]Concaténer fichier texte
    Bonjour,

    je sais qu'il y a déja plusieurs posts sur les fichiers textes, mais je n'ai pas trouvé mon bonheur, sauf une fonction que j'ai utilisé

    Mon but de la manière est de concaténer 2 fichiers textes à partir d'Excel, puis d'enregistrer le résultat dans un autre nom.
    J'ai donc cette fonction qui lit, et qui écrit dans l'autre fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub ConcatText()
    'ouverture du premier fichier en lecture
    Open "Z:\temp\fichS" & NoSem(Date) - 1 & ".txt" For Input As #1
    'ouverture du 2e fichier en écriture, en fin de fichier
    Open "Z:\temp\fichS" & NoSem(Date) - 1 & ".txt" For Append As #2
    While Not EOF(1)    'tant qu'on n'est pas en fin de fichier
    Input #1, texte     'on récupère le ligne en entier
    Print #2, texte     'on la copie dans le 2e fichier texte
    Wend
    'sauvegarde du fichier texte obtenu ?
    End Sub
    (NoSem est une fonction qui me permet de trouver le numéro de la semaine actuelle)

    Le problème c'est que dans la ligne ou je lis, je dois déja commencer à la deuxième ligne, et je ne sais pas comment faire quelqu'un aurait une idée ?
    Après tout ça, je voudrais sauvegarder le fichier texte obtenu, sous un autre nom que celui qui y est mais je ne sais pas la commende à utiliser parce q'un saveas je pense pas que ça marche

    Merci beaucoup pour votre aide
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  2. #2
    Membre émérite
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Par défaut
    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
     
     
    Private Sub ConcatText()
    'ouverture du premier fichier en lecture
    Open "Z:\temp\fichS" & NoSem(Date) - 1 & ".txt" For Input As #1
    'ouverture du 2e fichier en écriture, en fin de fichier
    Open "Z:\temp\fichS" & NoSem(Date) - 1 & ".txt" For Append As #2
    Input #1, texte 'Ca lit déja la premiere ligne et on en fait rien...
    'La suivante lue sera la seconde
    While Not EOF(1)    'tant qu'on n'est pas en fin de fichier
    Input #1, texte     'on récupère le ligne en entier
    Print #2, texte     'on la copie dans le 2e fichier texte
    Wend
    'sauvegarde du fichier texte obtenu ?
    'Le fichier est sauvegardé lors l'ajout...
    'Vois plus loins il faut le fermer...
    End Sub

    Ce que tu fais la ca va ajouter au fichier #2
    Si tu ne veux pas de ca...
    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
    Private Sub ConcatText()
    'ouverture du premier fichier en lecture
    Open "Z:\temp\fichS" & NoSem(Date) - 1 & ".txt" For Input As #1
    'ouverture du 2e fichier en écriture, en fin de fichier
    Open "Z:\temp\fichS" & NoSem(Date) - 1 & ".txt" For Append As #2
    Open NOMFICHIERSAUVEGARDE For Append As #3 
    While Not EOF(1)    'tant qu'on n'est pas en fin de fichier
    Input #1, texte     'on récupère le ligne en entier
    Print #3, texte     'on la copie dans le fichier sauvegarde
    Wend
    
    Close #1 'Je ne suis plus sur de la synthaxe peut etre Free ou FreeFile a la place de Close
    
    Input #2, texte 'Ca lit déja la premiere ligne et on en fait rien...
    'La suivante lue sera la seconde
    
    While Not EOF(2)    'tant qu'on n'est pas en fin de fichier
    Input #2, texte     'on récupère le ligne en entier
    Print #3, texte     'on la copie dans le fichier sauvegarde
    Wend
    
    Close #2
    Close #3
    End Sub

  3. #3
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Merci bien ça marche nickel
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    hum..parlé trop vite

    voila donc la procédure :
    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
    Sub ConcatText()
    Dim texte As String
    'ouverture du premier fichier en lecture
    Open "Z:\temp\fich1S" & NoSem(Date) - 1 & ".txt" For Input As #1
    'ouverture du 2e fichier en écriture, en fin de fichier
    Open "Z:\temp\fich2S" & NoSem(Date) - 1 & ".txt" For Input As #2
    Open "Z:\temp\fich3S" & NoSem(Date) - 1 & ".txt" For Append As #3
    While Not EOF(1)    'tant qu'on n'est pas en fin de fichier
    Line Input #1, texte     'on récupère le ligne en entier
    Print #3, texte     'on la copie dans le fichier sauvegarde
    Wend
    Close #1 'Je ne suis plus sur de la synthaxe peut etre Free ou FreeFile a la place de Close
    Line Input #2, texte 'Ca lit déja la premiere ligne et on en fait rien...
    'La suivante lue sera la seconde
    While Not EOF(2)    'tant qu'on n'est pas en fin de fichier
    Line Input #2, texte     'on récupère le ligne en entier
    Print #3, texte     'on la copie dans le fichier sauvegarde
    Wend
    Close #2
    Close #3
    End Sub
    (j'ai modifié en fonction de ce que j'avais )

    Le problème c'est que le fichier obtenu est un fichier binaire
    J'ai donc essayé, au lieu de l'input, de mettre un "write" mais si je met write il me met des guillemets partout et ça fausse tout

    Quelqu'un a une solution ?

    merci
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Membre émérite
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Par défaut
    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
    Sub ConcatText()
    'ouverture du premier fichier en lecture
    Open "Z:\temp\fich1S" & NoSem(Date) - 1 & ".txt" For Input As #1
    'ouverture du 2e fichier en écriture, en fin de fichier
    Open "Z:\temp\fich2S" & NoSem(Date) - 1 & ".txt" For Input As #2
    Open "Z:\temp\fich3S" & NoSem(Date) - 1 & ".txt" For Append As #3
    While Not EOF(1)    'tant qu'on n'est pas en fin de fichier
    Line Input #1, texte$     'on récupère le ligne en entier
    Print #3, texte$     'on la copie dans le fichier sauvegarde
    Wend
    Close #1 'Je ne suis plus sur de la synthaxe peut etre Free ou FreeFile a la place de Close
    Line Input #2, texte$ 'Ca lit déja la premiere ligne et on en fait rien...
    'La suivante lue sera la seconde
    While Not EOF(2)    'tant qu'on n'est pas en fin de fichier
    Line Input #2, texte$     'on récupère le ligne en entier
    Print #3, texte$     'on la copie dans le fichier sauvegarde
    Wend
    Close #2
    Close #3
    End Sub

  6. #6
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Heuu tu as rajouté les dollars c'est ça ?
    Parce que ça marche toujours pas c'est toujours du binaire que j'ai dans mon fichier résultat
    Ça aurait servi à quoi au juste ton '$' mis à la fin ? mettre le caractère c'est ça ?
    Juste pour information (au cas ou), mes 2 fichiers textes qu eje concatène, en fait au départ ils ont comme séparateur des '|' je sais pas si ça pose des problèmes mais je préfère le dire...
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VBA importer un fichier texte
    Par grogui dans le forum VBA Access
    Réponses: 7
    Dernier message: 04/06/2007, 21h52
  2. [FSO][VBA]Lecture de fichier texte actif
    Par Marco_SAP dans le forum Access
    Réponses: 10
    Dernier message: 12/12/2006, 15h46
  3. [VBA] Ouvrir plusieurs fichiers textes depuis Excel
    Par Stephane_123 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/12/2006, 17h45
  4. concaténer fichiers texte ligne par ligne
    Par tiboleo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/03/2006, 13h45
  5. [VBA-Excel,VB6,Fichier texte]enregistrer un classeur excel..
    Par Tarul dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2005, 13h09

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