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 :

Nombre de langues dans un document


Sujet :

VBA Word

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 110
    Points : 46
    Points
    46
    Par défaut Nombre de langues dans un document
    Bonjour,

    Je veux faire un truc tout simple consistant à compter le nombre de langues différentes utilisés dans un document. J'ai écrit ce morceau de code. Mais je bloque sur " Language = lang ".
    J'ai beau mettre du lang.Name ou .ID.... Il me manque l'attribut qui va bien.

    Merci de votre aide
    Cdlt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    J = 0
    For Each lang In Languages
        With ActiveDocument.Content.Find
            .ClearFormatting
            .Language = lang
            If .Execute(findtext:="", Format:=True, Forward:=True) Then J = J + 1
        End With
        Next
    MsgBox J

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, voir aide en ligne sur Language : [F1]

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 110
    Points : 46
    Points
    46
    Par défaut
    Bonjour, je ne me suis pas sorti de ce sujet.

    J'explique mon problème que je ré-oriente un peu. J'ai créé un modèle de document que j'ai bloqué en termes de styles (protection du document et restriction de mise en forme). Tous les styles sont ainsi bloqués sur une seule et même langue.
    Plutôt que d'utiliser plusieurs modèles vu que les styles sont bloqués et que le modèle risque de continuer à évoluer au fil du temps, je souhaiterai me faire un userform de choix de langue.
    D'un point de vu code VB,
    - je n'ai pas de pb pour créer un userform
    - je n'ai pas de pb pour modifier la langue d'un style
    - je voudrais juste de l'aide pour modifier la langue de tous mes styles

    J'ai commencé à faire un truc du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Macro1()
       M = ActiveDocument.Styles.Count
       For i = 1 To M
       ActiveDocument.Styles(i).LanguageID = wdEnglishUS
       Next
    End Sub
    Mais ça bloque sur la ligne avant Next dans mon exemple où je veux tous basculer en wdEnglishUS. Je suppose que le "Style(nombre)", ça ne fonctionne pas comme ça.

    Je compte sur votre aide. Merci encore.
    Cdlt

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, voir la FAQ http://word.developpez.com/faq/?page=Styles et l'aide en ligne sur Style : [F1]

    Extrait :
    Cet exemple montre comment afficher le style de chacun des paragraphes contenus dans le document actif.

    For Each para In ActiveDocument.Paragraphs
    MsgBox para.Style
    Next para

    Cet exemple montre comment alterner les styles Heading 3 et Normal dans tous les paragraphes du document actif.

    For i = 1 To ActiveDocument.Paragraphs.Count
    If i Mod 2 = 0 Then
    ActiveDocument.Paragraphs(i).Style = wdStyleNormal
    Else: ActiveDocument.Paragraphs(i).Style = wdStyleHeading3
    End If
    Next

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 110
    Points : 46
    Points
    46
    Par défaut
    Merci de ton aide mais je ne suis pas plus avancé.

    Je ne veux pas changer le style de langue de mon texte une fois qu'il a été tapé. Je veux le faire avant qu'il ne soit frappé. En effet, il n'y a rien de plus énervant que de voir se souligner en rouge tous les mots en cours de frappe parce que la langue est mauvaise. Je connais bien la coche à mettre pour la détection automatique de la langue mais je veux pouvoir régler la langue de chaque style avant. D'où ma question.

    J'ai bien regardé le lien ainsi que l'aide mais sans succès.

    Lorsque je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox Activedocument.Styles.Count
    ça me remonte bien un nombre, de l'ordre de 150 chez moi. Il doit donc y avoir un moyen de faire une boucle sur chaque style pour y forcer une autre langue. Mon document verrouillé en termes de style est pré-réglé par défaut en Anglais Royaume-Uni. Je veux pouvoir changer tous les styles pour y mettre du Français ou de l'Anglais Etats-Unis et ainsi avoir mon modèle prêt dans une autre langue.

    Merci de votre aide
    Cdlt

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 110
    Points : 46
    Points
    46
    Par défaut Help
    J'essaie d'autres trucs mais ça ne marche pas... du type...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Style()
    Dim styl As Style
    For Each styl In ActiveDocument.Styles
    styl.LanguageID = wdEnglishUS
    Next styl
    End Sub
    Une autre idée ?

    Merci de votre aide...
    Cdlt

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 110
    Points : 46
    Points
    46
    Par défaut Hepl bis
    Avec un MsgBox sur st (voir ci-dessous) j'arrive à faire défiler le nom ds styles en neutralisant la ligne Activedoc... Par contre, si je la débloque, le code bloque toujours sur le LanguageID... qui me semble être conforme à l'enregistreur de macro sauf pour la partie variable 'st'.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Style()
    Dim styl As Style
    Dim st As String
     
    For Each styl In ActiveDocument.Styles
    st = styl.NameLocal
    ActiveDocument.Styles(st).LanguageID = wdEnglishUS
    Next styl
     
    End Sub
    HELP...
    Merci
    Cdlt

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/07/2013, 23h46
  2. [WD-2010] Changer la langue dans un document docm
    Par boumab dans le forum Word
    Réponses: 4
    Dernier message: 14/02/2013, 15h13
  3. [WD-2003] Compte le nombre de langue dans un document
    Par November-Oscar dans le forum VBA Word
    Réponses: 2
    Dernier message: 22/03/2012, 19h34
  4. Nombre de pages dans un document Word
    Par saintVictor dans le forum Documents
    Réponses: 0
    Dernier message: 27/05/2009, 16h43
  5. Détection de nombres de pages dans un documents Word,Pdf,Xsl ..
    Par moez.mhiri dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 13/01/2009, 09h23

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