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

Excel Discussion :

Générer des fichiers (texte / HTML) à partir de valeurs d’un tableau [Toutes versions]


Sujet :

Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 366
    Points : 133
    Points
    133
    Par défaut Générer des fichiers (texte / HTML) à partir de valeurs d’un tableau
    Bonjour à tous,

    Je dispose d’un tableau excel (base de données) à partir duquel je souhaite générer des fichiers HTML. En fait, j’ai créé le contenu de ces fichiers HTML grâce à une formule qui concatène les différents champs de mon tableau, en y insérant les balises HTML nécessaires.

    Exemple (fictif) :
    A partir de colonnes « Nom », « Prénom », « Adresse », j’obtiens dans une colonne « HTML » :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body><span style="font-weight: bold;">Nom Prénom</span><br><span style="font-style: italic;">Adresse</span></body>
    J’obtiens donc le corps de mes fichiers dans une colonne, avec chaque ligne correspondant à un fichier.

    Je souhaiterais maintenant enregistrer individuellement ces cellules en x fichiers (x = nombre de lignes) HTML (ou TXT, peu importe, je peux les convertir ensuite).

    Voyez-vous une solution pas trop compliquée ? (je suppose que ça va être une macro en VBA, mais je n’y connais (presque) rien en VBA…

    Merci pour votre aide !

    Sylvain M.

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    Voici un exemple pour mettre en format TXT, ça provient d'un de mes codes, je pense l'avoir adapté pour ton cas (du moins selon ce que j'en ai compris) mais je l'ai PAS testé !!!
    ...mais je n’y connais (presque) rien en VBA…
    Je sais pas jusqu'à quel point il faut t'aider, donc regarde le code, essaie d'adapter et si tu coince, reviens ici

    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
    Sub ExportVersTxt()
     
    Dim ws As Worksheet
    Dim MonText As String
    Dim nf As Integer
    Dim derlig As Long, r As Long
     
    Set ws = ThisWorkbook.Sheets("NomFeuille") 'Adapter NomFeuille
    derlig = ws.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row 'Récupère la dernière ligne remplie pour la boucle sur base de la colonne A
     
     
    For r = 2 to derlig 'Boucle sur toute les lignes depuis la 2 jusqu'à la dernière
     nf = FreeFile
     Open "C:\Documents\FichiersTXT\NomFichierTXT_" & r & ".txt" For Output As #nf 'On sauve dans le répertoire le fichier Text avec le nom voulu, ici le nom est suivi d'un numéro variable suivant le nombre de ligne de ta feuille
     
    'Ecriture dans fichier text
            MonText = ws.Cells(r, 1) 'Affecte la valeur de la cellule ligne variable selon r colonne 1 à la variable MonText
        Print #nf, MonText 'Place la valeur de la variable dans le fichier Text
        MonText = "" 'Vide la variable
    Close (nf) 'ne pas oublier de fermer le fichier a la fin
    next r
    end sub
    A+

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 366
    Points : 133
    Points
    133
    Par défaut
    Wahou !!! SUPER !
    J'aurai été incapable de faire ça tout seul et ça marche nickel ! (en adaptant un peu avec mes colonnes et noms de fichiers).
    Vraiment merci à toi Fvandermeulen !!!

    Allez, je vais abuser encore un peu de ton savoir...
    Peux-tu me dire comment je peux modifier le nom du fichier texte en sortie, pour que celui-ci se nomme comme le nom d'une cellule de la ligne en cours (r).
    Pour être plus clair : plutôt que :
    "C:\Documents\FichiersTXT\NomFichierTXT_" & r & ".txt"
    je souhaiterai
    "C:\Documents\FichiersTXT\NomFichierTXT_" & " celluleA2 & ".txt" (pour la ligne 2)

    Merci !!!!

  4. #4
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Re,
    Tu as vu que r prenais le numéro de ligne, on va donc se baser sur ça pour définir la cellule, l'autre élément qui défini une cellule est la colonne, en l'occurence A donc la première. Code pour la cellule voulue:
    Dans ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Documents\FichiersTXT\NomFichierTXT_" &  cells(r,1) & ".txt"
    Mais attention aux caractères contenus dans la cellule il faut qu'ils soient tous valide pour un nom de fichier (exemple '\' interdit)

    A+

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 366
    Points : 133
    Points
    133
    Par défaut
    Rapidité, Efficacité ! MERCI !
    Ça marche impec !!!!
    Ça fait quelques temps déjà que je me dis qu'il faut que je me lance dans cette langue étrangère du VBA... Ce n'est pas l'envie qui manque, mais le temps ! Mais c'est grâce à des exemples comme ça que je pourrai rentrer dans la pratique en tout cas !

    A+

    Sylvain M.

  6. #6
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Citation Envoyé par SylvainM Voir le message
    ....
    Ça fait quelques temps déjà que je me dis qu'il faut que je me lance dans cette langue étrangère du VBA... Ce n'est pas l'envie qui manque, mais le temps ! Mais c'est grâce à des exemples comme ça que je pourrai rentrer dans la pratique en tout cas !

    A+

    Sylvain M.
    Il n'y a pas de secret, la pratique fait progresser, il faut trouver le temps de t'exercer...dis toi que le temps que tu perd au début tu le récupère par l'automatisation de tâche et simplification de procédures, en somme, c'est un investissement.

    A+

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

Discussions similaires

  1. générer des fichiers textes
    Par bernard59139 dans le forum Général VBA
    Réponses: 1
    Dernier message: 28/11/2009, 12h21
  2. [HTML] Générer un fichier texte à l'aide d'une interface graphique en HTML
    Par gogeta68 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/04/2008, 23h27
  3. Réponses: 3
    Dernier message: 07/12/2006, 07h18
  4. Générer des fichiers à partir d'un état
    Par laurent35 dans le forum Access
    Réponses: 3
    Dernier message: 02/05/2006, 02h54
  5. Comment générer un fichier texte à partir d'un XML et XSL
    Par Jayceblaster dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 24/07/2005, 22h42

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