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

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    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 éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    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
    N'oubliez pas de mettre le

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    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 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    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 éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    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
    N'oubliez pas de mettre le

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    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 !

  7. #7
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Je vais tester...
    N'oubliez pas de mettre le

  8. #8
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Voila... Ma proc est :

    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()
    'ouverture du premier fichier en lecture
    Open "C:\temp1.txt" For Input As #1
    'ouverture du 2e fichier en écriture, en fin de fichier
    Open "C:\temp2.txt" For Input As #2
    Open "C:\temp3.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
    temp1.txt

    Je suis ligne 1
    dazdpzadpokz
    dâzkdzkdpzakdz
    adkza
    kd
    akzd
    azod
    azodaz
    dpazdk
    zadk
    zpak
    dapza
    fini

    temp2.txt
    Je suis ligne 1 fichier 2
    fichier1
    zdaz
    da
    zd
    azd
    a
    dz
    ad


    temp3.txt

    Je suis ligne 1
    dazdpzadpokz
    dâzkdzkdpzakdz
    adkza
    kd
    akzd
    azod
    azodaz
    dpazdk
    zadk
    zpak
    dapza
    fini
    fichier1
    zdaz
    da
    zd
    azd
    a
    dz
    ad



    Je comprend pas... Joint tes fichier je vais essayer avec
    N'oubliez pas de mettre le

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Heuu je peut pas te joindre les fichiers ce sont des fichiers confidentiels
    Je vais essayer de t'en faire des bidons
    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 !

  10. #10
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Lol sorry bidonne les alors !!


    Au fait le dollar c'etait parce que je me rapelle qu'il fallait le mettre si je me rapelle bien jutement pour spécifier variable texte
    N'oubliez pas de mettre le

  11. #11
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Open, instruction


    Permet d'exécuter une opération d'Entrée/Sortie (E/S) sur un fichier.
    Syntaxe
    Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]
    La syntaxe de l'instruction Open comprend les éléments suivants :
    Élément Description pathname Expression de chaîne indiquant un nom de fichier — peut comprendre un nom de répertoire ou de dossier et un nom de lecteur. mode Mot clé indiquant le mode d'ouverture du fichier : Append, Binary, Input, Output ou Random. S'il n'est pas indiqué, le fichier est ouvert en mode Random. access Facultatif. Mot clé indiquant les opérations autorisées sur le fichier ouvert : Read, Write ou Read Write. lock Facultatif. Mot clé indiquant les opérations restreintes sur le fichier ouvert par d'autres processus : Shared, Lock Read, Lock Write et Lock Read Write. filenumber Numéro de fichier valide compris entre 1 et 511, inclus. Utilisez la fonction FreeFile pour obtenir le prochain numéro de fichier disponible. reclength Facultatif. Nombre inférieur ou égal à 32 767 (octets). Pour les fichiers ouverts en mode Random, cette valeur représente la longueur de l'enregistrement. Pour les fichiers séquentiels, elle représente le nombre de caractères contenus dans la zone tampon.
    Remarques
    Avant de pouvoir exécuter une opération d'Entrée/Sortie sur un fichier, vous devez l'ouvrir. L'instruction Open permet d'associer une zone tampon d'Entrée/Sortie au fichier et de déterminer le mode d'accès à ce fichier dans cette zone.
    Si le fichier indiqué par l'argument pathname n'existe pas, il est créé au moment où un fichier est ouvert en mode Append, Binary, Output ou Random.
    Si le fichier a déjà été ouvert par un autre processus et si le type d'accès indiqué n'est pas autorisé, l'instruction Open échoue et une erreur se produit.
    La clause Len n'est pas prise en compte si l'argument mode a la valeur Binary.
    Important En mode Binary, Input et Random, vous n'êtes pas obligé de fermer un fichier avant de l'ouvrir sous un autre numéro de fichier. En mode Append et Output, vous devez fermer un fichier avant de l'ouvrir sous un autre numéro de fichier.




    Je sais pas si ca t'aide... Essaie peu etre aussi de l'ouvrir avec un no de fichier ''libre'' pour chancun

    FreeFile, fonction


    Renvoie une valeur de type Integerreprésentant le prochain numéro de fichier pouvant être utilisé par l'instruction Open.
    Syntaxe
    FreeFile[(rangenumber)]
    L'argument facultatif rangenumber est une valeur de type Variantqui indique la plage dans laquelle doit se trouver le prochain numéro de fichier disponible renvoyé par la fonction. Indiquez 0 (valeur par défaut) pour renvoyer un numéro de fichier compris entre 1 et 255 inclus. Indiquez 1 pour renvoyer un numéro de fichier compris entre 256 et 511.
    Remarques
    Utilisez la fonction FreeFile pour fournir un numéro de fichier encore non utilisé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim MyIndex, FileNumber
    For MyIndex = 1 To 5    ' La boucle est effectuée cinq fois.
        FileNumber = FreeFile    ' Lit le numéro de fichier inutilisé.
    ' Crée le nom du fichier.
        Open "TEST" & MyIndex For Output As #FileNumber
        Write #FileNumber, "Ceci est un exemple"    ' Écrit le texte.
        Close #FileNumber    ' Ferme le fichier.
    Next MyIndex
    N'oubliez pas de mettre le

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Bon j'ai réussi

    Bon en fait je vais te joindre 2 fichiers textes avec une seule ligne (c'est la ligne de titre mais on s'en fout)
    Tu verra qu'avec cette macro ça fait quand meme l'erreur (si ça la fait pas chez toi je comprend pas )
    Donc j'ai testé plusieurs choses : la si tu concatène avec la macro donnée précédemment, tu verra t'aura que du binaire
    par contre si tu écrit ça :

    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
     
    <div style="text-align: left;">Sub ConcatText()
    'ouverture du premier fichier en lecture
    Open "C:\temp1.txt" For Input As #1
    'ouverture du 2e fichier en écriture, en fin de fichier
    Open "C:\temp2.txt" For Input As #2
    Open "C:\temp3.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, "toto"     '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
    </div>
    le deuxième texte sera bien recopié et il n'y aura pas de binaire

    Ensuite, en fait on a remarqué un truc: avec un éditeur hexadécimal, un caractère au début du fichier texte est mis en hexa c'est le caractère de code "FF" cad rien
    A priori ça serait l'unicode qui merde..
    Si jamais le fichier tu le réenregistre derrière en ANSI, la concaténation se passera nickel
    Le problème c'est que quand je sors ce fichier texte je peux pas l'enregistrer directement en ANSI, donc perte de temps, or moi ce que je veux c'est directement de ces fichiers les concaténer

    J'espère avoir été assez clair s'il y a un soucis de compréhension faites le moi savoir
    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 !

  13. #13
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Il y a clairement un probleme lol

    Si tu vois la premiere variable text ca commence par
    ÿrRS...
    alors que ta ligne c'est RS...
    Donc déja la ca déconne...
    Je vais trouver...
    N'oubliez pas de mettre le

  14. #14
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Bon alors... J'ai de mauvaises nouvelles...

    Le prorbleme est lié a tes fichiers... j'ai recopié intégralement la premiere ligne dans un nouveau fichier texte et je l'ai resauvée sous le nom Temp1.txt

    et la surprise ca marche...
    N'oubliez pas de mettre le

  15. #15
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    J'ai encore dis des conneries... Oui ca vient de tes fichiers, ces deux premiers caracteres apparaissent dans la variable text...

    Si c'est le seul endroit de probleme alors je te conseille de faire 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
     
    Sub ConcatText()
     
    'ouverture du premier fichier en lecture
    Open "C:\temp1.txt" For Input As #1
    'ouverture du 2e fichier en écriture, en fin de fichier
    Open "C:\temp2.txt" For Input As #2
    Open "C:\temp3.txt" For Output As #3
    'Print #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, Replace(texte$, "ÿþSR", "SR") '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, Replace(texte$, "ÿþSR", "SR")      'on la copie dans le fichier sauvegarde
    Wend
    Close #2
    Close #3
    End Sub

    Le plus marrant c'est que la ca marche...
    N'oubliez pas de mettre le

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    oui je sais si tu l'enregistre en ANSI plutot qu'en unicode ça marche

    Oui en fait c'est ce y¨que je sais pas d'ou qui vient
    Si tu utilise comme j'ai dit plus haut un logiciel hexa, tu verra qu'au début du fichier tu as 2 caractères qui sont "FF" et "EF" (ou "FE" je sais plus je suis plus au boulot la )

    Mais je veux une solution
    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 !

  17. #17
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    La dernière Fonctionne normalement... Si tu intègre un replace dans ta fonction, pour enlever les deux premiers caracteres bizares...
    N'oubliez pas de mettre le

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Bon a priori ça marche

    Juste une précision :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Print #3, Replace(texte$, "ÿþSR", "SR")
    On peut meme la faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Print #3, Replace(texte$, "ÿþ", "")
    A priori ça marche aussi bien en le mettant avec cette forme

    Et meme pour être plus précis et en utilisant les numéros des caractères on peut peut etre meme faire :
    On peut meme la faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Print #3, Replace(texte$, chr(254) & chr(255), "")
    Mais j'ai pas testé encore

    Merci beaucoup en tout cas pour tes réponses
    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 !

  19. #19
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Si j'ai mis ca c'est parce que le probleme se passe au début du fichier, moi je n'aivais que le début donc...

    Je ne savais pas si ce probleme allait se répéter dans la suite du fichier, de ce fait, j'ai remplacé les quatres premiers caractères pour voir ce qui pouvais chez toi arriver dans la suite du fichier... J'avais d'abord écris ta première méthode m'ai j'ai préféré ca pour la raison au dessus...
    Print #3, Replace(texte$, "ÿþSR", "SR")

    Lol si tu n'ais rien compris c'est qua je suis trop crevé pour te raconter plus clairement...

    Voila si c réglé c réglé tant mieu !
    N'oubliez pas de mettre le

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Citation Envoyé par Vesta
    Si j'ai mis ca c'est parce que le probleme se passe au début du fichier, moi je n'aivais que le début donc...

    Je ne savais pas si ce probleme allait se répéter dans la suite du fichier, de ce fait, j'ai remplacé les quatres premiers caractères pour voir ce qui pouvais chez toi arriver dans la suite du fichier... J'avais d'abord écris ta première méthode m'ai j'ai préféré ca pour la raison au dessus...
    Print #3, Replace(texte$, "ÿþSR", "SR")

    Lol si tu n'ais rien compris c'est qua je suis trop crevé pour te raconter plus clairement...

    Voila si c réglé c réglé tant mieu !
    Et moi j'ai mis ça au cas ou on le renconrerai ailleurs qu'en début de fichier comme ça j'aurai aucun soucis
    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