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 :

Exporter en .txt un tableau Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 14
    Par défaut Exporter en .txt un tableau Excel
    Bonjour,

    Je débute (débutante de chez débutante) en VBA Excel. Je souhaite exporter un tableau Excel en .txt
    J'ai trouvé comment faire pour une colonne et vous allez surement trouver ca bête, mais je n'arrive pas a l'elargir a plusieurs colonnes !

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub enregistrerTxt()
     
            Range("A1").Activate
            Open "D:/projets/2_Karte_GPS_Koordinaten/Listeee.txt" For Output As #1
            While Not IsEmpty(ActiveCell.Value)
            Print #1, ActiveCell.Value
            ActiveCell.Offset(1, 0).Activate
            Wend
            Close #1
     
    End Sub
    Votre aide sera la bienvenue ! Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour

    en estimant que tu as 5 colonnes à écrire

    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
    Sub enregistrerTxt()
    Dim lig As Range, nbCol As Integer, aEcrire As String, boucle As Integer
     
    nbCol = 5 'nombre de colonne à ecrire
    Open "D:Listeee.txt" For Output As #1
    'Open "D:/projets/2_Karte_GPS_Koordinaten/Listeee.txt" For Output As #1
    For Each C In Range("A1:A" & Range("A1").End(xlDown).Row)
    aEcrire = ""
      For boucle = 1 To nbCol
        aEcrire = aEcrire & Cells(C.Row, boucle) & ";"
      Next
      Print #1, Left(aEcrire, Len(aEcrire) - 1) & vbCrLf;
    Next
    Close #1
     
    End Sub

  3. #3
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 14
    Par défaut
    Super ! Ca marche tout bien ! Merci beaucoup zyhack

    Ah, par contre ca crée un problème. J'avais des valeurs décimales et j'avais besoin qu'a la place des virgules, il y ait des points donc j'avais choisi l'option internationale dans Excel pour que ca le fasse. Or lors de l'exportation en .txt, les points redeviennent des virgules.

    Une idée ?

    Sachant qu'il y a des virgules qui séparent deux valeurs dans une cellule qui elles doivent rester des virgules...

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour

    peux tu essayer en remplaçant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aEcrire = aEcrire & Cells(C.Row, boucle) & ";"
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aEcrire = aEcrire & Cells(C.Row, boucle).Text & ";"

  5. #5
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 14
    Par défaut
    Parfait, ca marche ! Merci beaucoup !

    Et pour qu'une date reste sous la forme JJ.MM.YYYY et ne devienne pas un chiffre ?

    J'ai trouvé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for each cel in range("C1:C" & range("C65536").end(xlup).row)
    Le seul problème c'est que je n'arrive pas à trouver où je dois le placer dans l'autre code ? Sachant que je veux cette modification seulement pour la colonne C.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Et pour qu'une date reste sous la forme JJ.MM.YYYY et ne devienne pas un chiffre ?
    c'est ce que fait le .text que je t'ai fais ajouté si la date est affiché comme ça dans la feuille excel.

    J'ai trouvé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for each cel in range("C1:C" & range("C65536").end(xlup).row)
    Le seul problème c'est que je n'arrive pas à trouver où je dois le placer dans l'autre code ? Sachant que je veux cette modification seulement pour la colonne C.
    je ne vois pas trop ce que tu entends pas seulement pour la colonne C, si tu veux définir le nombre de ligne à mettre dans le fichier sur la colonne C et quelle contient des lignes non remplies tu remplaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each C In Range("A1:A" & Range("A1").End(xlDown).Row)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each C In Range("C1:C" & Range("C65536").End(xlUp).Row)

  7. #7
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 14
    Par défaut
    Je réexplique le pb : j'ai une colonne avec des dates qui sont sous le format jj.mm.aaaa et lorsque je fais l'exportation en .txt grâce a la macro, les dates deviennent un chiffre, par expl 10.12.2004 devient 38322

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Je réexplique le pb : j'ai une colonne avec des dates qui sont sous le format jj.mm.aaaa et lorsque je fais l'exportation en .txt grâce a la macro, les dates deviennent un chiffre, par expl 10.12.2004 devient 38322
    J'avais bien compris mais ici ça fonctionne

    pourrais tu remettre ton code pour voir car j'ai essayé avec date, chiffre, lettre et different format et ça marche.

  9. #9
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 14
    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
    Sub enregTxt()
     
    Dim lig As Range, cel As Range, nbCol As Integer, aEcrire As String, boucle As Integer
     
    nbCol = 7 'nombre de colonnes à ecrire
    Open "D:/projets/2_Karte_GPS_Koordinaten/Liste.txt" For Output As #1
     
    For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
    aEcrire = ""
      For boucle = 1 To nbCol
        aEcrire = aEcrire & Cells(c.Row, boucle).Text & Chr(9)
      Next
      Print #1, Left(aEcrire, Len(aEcrire) - 1) & vbCrLf;
    Next
    Close #1
     
    End Sub
    C'est peut-être parce que j'utilise plusieurs feuilles. Je reprends plusieurs cellules d'une feuille dans une autre en ayant ajouté des balises html...

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    je viens te tester avec ton code et tous vas bien.

    La je commence à etre sec, As tu moyen de mettre ton classeur au moins pour voir le type de données que tu veux écrire ?

  11. #11
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 14
    Par défaut
    Voila un exemple de classeur : Mappe.xls

    La feuille "pour HTML" reprend les données de la feuille "Data".
    En appuyant sur le bouton "Liste.txt", on crée le .txt

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Le problème viens effectivement de la formule que tu utilise dans la colonne D de la feuille pour HTML.

    il faudrait mettre la date au format jj/mm/aaaa dans la formule mais ça je ne sais pas faire. Je vais voir si je trouve a moins que tu ne trouve avant moi et dans ce cas la réponse m'interresse.

  13. #13
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 14
    Par défaut
    Voui... c'est effectivement cela qu'il faudra faire et ca fait quelque temps que je cherche sans parvenir a trouver...

  14. #14
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 14
    Par défaut
    EUREKA !!! J'ai trouvé !

    Il faut faire :

    ="Date en format date : " &TEXTE(B18;"JJ/MM/AAAA")

    où B18 est la date en chiffre

    Encore merci pour toute l'aide que tu m'as fourni !! C'est vraiment très gentil d'y avoir passé autant de temps.

  15. #15
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Merci à toi aussi pour la réponse, je vais regarder cette fonction texte.

    bonne continuation.

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

Discussions similaires

  1. [AC-2003] Problème exportation requête access vers tableau excel
    Par demichoux dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/06/2011, 18h13
  2. Exporter en .txt un tableau Excel
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/04/2011, 12h26
  3. Export tableau Excel vers txt
    Par TheRealMike dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/05/2009, 09h53
  4. Réponses: 4
    Dernier message: 07/01/2007, 13h55
  5. Réponses: 1
    Dernier message: 05/09/2006, 18h56

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