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 :

problème écriture valeurs dans un fichier texte


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    !
    Inscrit en
    Juillet 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : !

    Informations forums :
    Inscription : Juillet 2020
    Messages : 17
    Points : 5
    Points
    5
    Par défaut problème écriture valeurs dans un fichier texte
    Bonjour,

    Je cherche à copier dans des fichiers txt des valeurs (de type texte) contenues dans un tableau Excel (plusieurs milliers de lignes, 1 colonne). J'ai d'abord commencé par copier 1000 lignes à la fois dans un fichier. Problème: je n'ai eu que 990 lignes à peu près, cela coupe en plein milieu d'un mot, peu avant la fin.
    J'ai pensé que le volume était trop important, j'ai essayé avec 500 lignes, puis moins. Même avec 50 lignes, ça coupe à la ligne 44 !

    D'où cela peut-il venir ?

    Voici un extrait du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test_découpage()
     
    Open "C:\Users\Utilisateur\Desktop\fichier1.txt" For Output As #1
     
    For i = 1 To 50
    Print #1, Worksheets("découpage").Cells(i, 1).Value + ";"
    Next i
    Merci d'avance de vos lumières !

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    En mettant une valeur max très supérieure au nombre de lignes réel, ça passe.
    j'ai fait des tests avec + de 15000 lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For i = 1 To 16000
            If Worksheets("découpage").Cells(i, 1) <> "" Then Print #1, Worksheets("découpage").Cells(i, 1).Value + ";"
        Next i

    Cdlt

  3. #3
    Futur Membre du Club
    Femme Profil pro
    !
    Inscrit en
    Juillet 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : !

    Informations forums :
    Inscription : Juillet 2020
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    Merci de votre réponse.

    J'ai fait plusieurs tests. Oui, ça passe, si on demande par exemple 1500 lignes, on en obtient au moins 1000. Mais sur tous les tests, il y a eu un cas où il y avait un grand blanc dans le fichier texte. Il manquait beaucoup de données. Donc apparemment ce n'est pas fiable à 100%. A utiliser peut-être en faisant un contrôle du nombre de caractères avant/après.

    Mais votre code m'a donné une idée: et si c'était les lignes vides qui causaient ce problème ? J'en ai à plusieurs endroits dans le tableau. Je les ai supprimées, mais j'ai toujours le même problème.

    J'aimerais quand même bien comprendre: pourquoi si je demande seulement dix lignes, il n'y en a aucune qui est copiée dans le fichier texte? J'ai fait un débogage pas à pas, avec des "espions". Toutes les valeurs des cellules sont lues correctement, mais elles ne sont pas copiées dans le fichier texte. Il est créé, mais il est vide...

    Est-ce que quelqu'un a déjà eu le même problème ? Une explication possible ?

  4. #4
    Futur Membre du Club
    Femme Profil pro
    !
    Inscrit en
    Juillet 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : !

    Informations forums :
    Inscription : Juillet 2020
    Messages : 17
    Points : 5
    Points
    5
    Par défaut ça marche !
    J'ai trouvé la solution grâce à cet article : https://www.mediaforma.com/vba-excel...fichier-texte/

    J'ai copié telle quelle la macro qui était donnée. Elle marchait chez moi. J'ai alors adapté mon code en rajoutant ce qui manquait, et ça marche parfaitement!

    Voici la version finale, au cas où quelqu'un aurait le même problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test_découpage()
     
    Dim f As Integer
    f = FreeFile
     
    Open "C:\Users\Utilisateur\Desktop\fichier1.txt" For Output As #f
    For i = 1 To 1000
    Print #f, Worksheets("découpage").Cells(i, 1)
    Next i
    Close #f

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

Discussions similaires

  1. [Débutant] Problème écriture valeur dans un fichier texte
    Par leraleur22 dans le forum C#
    Réponses: 6
    Dernier message: 03/09/2011, 16h52
  2. Lecture de valeurs dans un fichier texte (txt)
    Par zerbault dans le forum Fortran
    Réponses: 2
    Dernier message: 22/01/2007, 10h29
  3. Probléme d'ecriture dans un fichier texte en java
    Par oldscrout dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 19/01/2007, 19h10
  4. recuperer valeur dans un fichier texte
    Par darksnake dans le forum VBScript
    Réponses: 6
    Dernier message: 15/09/2006, 20h16
  5. Problème retour chariot dans un fichier texte
    Par Redondo dans le forum Windows
    Réponses: 2
    Dernier message: 08/02/2006, 18h23

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