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

VBA Word Discussion :

Remplacer les styles Word par des balises plein texte


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Remplacer les styles Word par des balises plein texte
    Bonjour

    Commet remplacer une série de styles paragraphes et styles caractères par des balises ad-hoc en plein texte utf-8? Word en VBA 2007 (.docx).
    J'ai déjà codé VB de Wordperfect, mais désire migrer environ 5k lignes de macros. Je suis vert en VBA et suis dépassé.

    Mon besoin principal est de remplacer des styles fortement imbriqués, du genre
    [définition, défini, définissant, phrase-exemple, commentaire, mention, soidisant, paragraphe_cité, citation_courte, ...].
    Mes styles comprennent des styles paragraphe et caractères.

    De tels styles, il y en a sufisamment pour désirer itérer les remplacements.

    Supposons simplement un style paragraphe nommé par1 et un style caractère nommé car1.
    Je voudrais remplacer ces styles par des balises du genre html et enregistrer le document en plein text utf-8.
    Il me faut donc parcourir un tableau des remplacements, et pour chacun inscrire le texte ouvrant, et texte fermant, tant que non rendu à la fin.

    Je suppose que le tableau devrait identifier le style par ActiveDocument.Styles("car1"),
    la balise d'ouverture à écrire <car1> et la balise de fermeture </car1>.

    Je pensais à un tableau de quatruplets, pour remplacer les balises de styles
    [code style ouvrant, code style fermant, balise texte ouvrante, balise texte fermante].

    Mais en Word, remplacer les styles semble différent.
    Jusqu'ici je fouille les sites webs, et tourne en rond. Il y a string, string builder, le range. J'en ai le tournis.

    La Faq indique seulement le range entre signets.

    J'ai besoin d'une lanterne, pour me partir, car cela dépasse largement les renseignements que je peux tirer de l'enregistrement de macros.
    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,
    Je vais tenter de te venir en aide.

    Je ne sais pas vers quel résultat final tu te dirige, mais il n'est pas nécessaire d'utiliser un tableau.
    On peut, pour les balises, utiliser le nom du style.

    On a deux possibilités.
    La première, modifier le document en cours pour ne garder que du texte sans mise en forme avec des balises contenant le nom du style utilisé.
    La seconde est de créer un nouveau fichier texte cette fois avec le contenu du document augmenté des balises.

    Un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub TestBalises()
    Dim myStyle As String
    Dim para As Paragraph
    For Each para In ActiveDocument.Paragraphs
    myStyle = para.Style
    Debug.Print "<" & myStyle & ">"
    Next para
     
    End Sub
    A toi de voir vers quelle solution tu comptes te diriger.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut,

    Une petite précision, si tu utilises la 2ième solution, tu ne devras pas oublier que tu as des balises de description dans ton texte avant de le sauvegarder en UTF8 et que donc tu vas encoder des attributs...d'encodage. C'est possible mais c'est plus chaud ==> la 1ère solution me semble plus simple.

    Mais tu as aussi une 3ime solution, tu sauvegardes en HTML ==> balisage des paragaphes par leur style + les balisages de caractères. Mais attention, comme Word fournit un HTML touffu, lourd et pas beau, d'habitude j'en déconseille l'utilisation mais là tu as déjà beaucoup de ton boulot qui est fait ==> après tu utilises un magnifique shareware appelé tidy qui purifie (en partie tout fichier HTML résultant) + quelques petites macros et tu as un fichier texte qui peux être encodée (sans que tu le redéveloppe) en UTF-8, si si c'est possible avec Word.

    @+

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/10/2010, 14h38
  2. [MySQL] Remplacer les chiffres à point par des chiffres à virgule
    Par Sekigawa dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/12/2008, 14h57
  3. Remplacer les controles ajax par des controles ASP
    Par Contact2012 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 12/09/2008, 11h26
  4. Remplacer les retour chariot par des <br/>
    Par novices dans le forum Langage
    Réponses: 1
    Dernier message: 21/08/2006, 21h11

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