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 - Exporter en tableau format texte [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut VBA - Exporter en tableau format texte
    Bonjour,

    Je cherche à exporter un tableau sous format "plain text" via macro, du type

    +---+----+----+----+
    | | 1 | 2 | 3 |
    +---+----+----+----+
    | a | a1 | a2 | a3 |
    +---+----+----+----+
    | b | b1 | b2 | b3 |
    +---+----+----+----+
    | c | c1 | c2 | c3 |
    +---+----+----+----+

    Qui permettrait de faire de "beaux tableau" adaptés à la longueur du contenu des cellules. Ceci par macro, sans passer par un site type http://www.tablesgenerator.com/text_tables#
    Je cherche sur le web depuis 2 jours sans succès.
    Avez vous une idée?

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Safra Voir le message
    Bonjour,

    Je cherche à exporter un tableau sous format "plain text" via macro

    Avez vous une idée?
    Mais oui

    Laisses Excel le faire lui-même.

    1) Tu pars l'enregistreur de macros
    2) Dans Excel, tu passes par Enregistrer sous... et tu choisis ton format dans la liste déroulante.
    3) Quand tu as terminé, tu arrêtes l'enregistreur de macros.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Bonjour,

    Je ne vois pas ce que vous souhaitez faire exactement. Excel propose de très beaux modèles de tableaux.
    Peut-être n'ai-je pas bien compris le sens de la question.
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Bonjour clementmarcotte, quelle fonction d'Excel utiliser? je maitrise plutôt bien l'enregistreur d'habitude mais je ne sais pas quoi enregistrer. J'ai déjà tenté en mettant les | dans une colonne à part mais en définitive tout est décalé...

    Bonjour NEC14, L'idée est de préparer des tableaux ensuite utilisables sur des sites de ventes, par exemple leboncoin.fr qui n'accepte que tu texte pur. Est-ce plus clair pour vous?

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Quand tu fais Enregistrer Sous... tu remplaces classeur excel par autre chose. Tu déroules la liste et tu choisis fichier texte.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Merci pour l'info!

    Au final je n'arrive pas tout à fait au rendu souhaité mais je laisse tomber l'idée et je cherche une solution alternative.

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut


    Bonjour, bonjour !

    Pourtant ce n'est pas difficile s'il n'y a pas de cellule fusionnée et si la largeur de chaque colonne est prédéfinie !

    Si tel est le cas, ré-ouvrir cette discussion puis joindre un classeur sans code en .xlsx et un fichier texte du résultat attendu …


    ______________________________________________________________________________________________________
    Je suis Paris, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Bonjour Marc,
    C'est bien là le soucis, c'est que la largeur de mes colonnes n'est pas défini.
    J'ai bien trouvé comment remplir la cellule de "---" en fonction de la longueur de la largeur de la colonne mais ça ne semble pas prit en compte.

    J'ai ajouté ici un fichier "exemple" que je tente de faire. En copie d'écran (dans le fichier excel) j'ai mis ce que j'obtiens et ce que je souhaites obtenir.

    Le côté "automatisation" par macro du remplissage du tableau et de son extraction excel->texte une fois que le principe sera maitrisé ne me fait pas peur.

    Merci pour vos aides!!
    Fichiers attachés Fichiers attachés

  9. #9
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Dans le résultat recherché, la largeur des colonnes est bien grande pour le peu de caractères présents
    sans compter la mise en forme centrée !

    D'où sort la largeur de chaque colonne ?
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  10. #10
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut Sans réponse et sans logique, j'impose !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  11. #11
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Je choisis le cadre 1B se rapprochant le plus du classeur joint :
    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
    Sub Cadre1B(Rg As Range, FICHIER$, Optional BH As Byte = 151, Optional BV As Byte = 124)
        With Rg.Columns
            ReDim LM&(1 To .Count)
             For C& = 1 To .Count
              LM(C) = .Parent.Evaluate("MAX(LEN(" & .Item(C).Address & "))")
             Next
                 VA = .Value
        End With
                 F% = FreeFile
                Open FICHIER For Output As #F
        For R& = 1 To UBound(VA)
            For C = 1 To UBound(LM)
                Print #F, " " & VA(R, C) & String$(LM(C) - Len(VA(R, C)) + 1, 32) _
                              & IIf(C < UBound(LM), Chr$(BV), "");
            Next
            If R = 1 Then
                Print #F,
              For C = 1 To UBound(LM)
                Print #F, String$(LM(C) + 2, BH) & IIf(C < UBound(LM), Chr$(BV), "");
              Next
            End If
                Print #F,
        Next
                Close #F
    End Sub
     
    Sub Demo1B()
        Cadre1B Feuil1.Cells(1).CurrentRegion, ThisWorkbook.Path & "\Export Cadre .txt"
    End Sub
    Rappel des usages de ce forum:
    ______________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  12. #12
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Bonjour Marc-L,

    Tout d'abord désolé de ne pas répondeur plus tôt, j'ai été éloigné de ce sujet par mon activité principale pendant quelques temps.
    Merci beaucoup pour votre réponse qui colle parfaitement avec ce que je recherchais à faire!

    Du coup je vais essayer d'étudier votre code pour l'adapter à ma macro principale.

    Vous dites toutefois que l'aide VBA m'aurait permis de trouver ça mais je ne vois pas vraiment où ni comment, pouvez vous m'éclairer? Je serais interessé de voir (pour ma culture) les méthodes pour les autres procédures (1A, 2A/B/C)

    Sinon, mon niveau en programmation ne semble pas être suffisant car il y a un certain nombre de caractères/fonctions utilisées dans le code que je ne connaissais pas.
    Pouvez vous m’expliquer les quelques points ci dessous pour parfaire ma connaissance?
    • "&" dans LM&
    • "%" dans F%
    • "#" dans #F
    • La différence entre la fonction "Chr(...)" et "Chr$(...)" et entre "FICHIER" et "FICHIER$"


    Joyeux Noël!

  13. #13
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Certains types de données peuvent être déclarés à la volée - héritage du BASIC - via un caractère comme par exemple $ pour le type String
    Avec un point d'arrêt dans le code, voir la fenêtre des Variables locales pour l'équivalence des types de données ou encore dans l'aide VBA …

    Bonnes fêtes !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

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

Discussions similaires

  1. [XL-2003] Export feuille Excel format Text, suppression des quotes
    Par blepy dans le forum Excel
    Réponses: 3
    Dernier message: 08/07/2014, 09h32
  2. [VBA] Exporter automatiquement au format MS Access 97
    Par ClemRz dans le forum VBA Access
    Réponses: 10
    Dernier message: 04/01/2008, 19h10
  3. [FLASH 8] Exporter-Importer Format Texte
    Par arnaud_verlaine dans le forum Flash
    Réponses: 1
    Dernier message: 23/06/2006, 14h20
  4. [VBA] Création d'un format d'import de fichier texte
    Par Julien Dufour dans le forum Access
    Réponses: 6
    Dernier message: 12/05/2006, 17h37
  5. [VBA-E] cellule au format texte a la creation d'une feuille
    Par julio84 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2006, 17h36

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