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 :

retrouver toutes les pages ou un item apparait


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 7
    Points
    7
    Par défaut retrouver toutes les pages ou un item apparait
    Bonjour

    j'ai affaire à un document technique d'un système dans lequel sont définis des paramètres.

    Ces paramètres sont systématiquement écrits sous la forme :
    par_xxx_xxxxxx_xx_xxxxxxx...
    (le nombre de "_xxx" est variable aprés le "par" ainsi que le nombre de x c'est à dire de caractères dans chaque partie)
    exemples :
    par_debut_du_systeme
    par_fin_aleatoire_de_la_procedure
    ...

    J'aimerais, si c'est possible, avoir une macro qui serait capable de m'établir une "table des matières" pour tous les paramètres, en précisant pour chacun les pages où il apparait

    cette table des matières aurait l'apparence suivante :

    par_debut_du_systeme 25, 142, 251, 366
    par_fin_aleatoire_de_la_procedure 102, 451, 511

    J'aimerais également une macro qui serait capable de me transformer tous ces paramètres en italique

    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
    sans vouloir te contredire, on appelle ça un index.

    Tu choisis ton entrée, tu fais Alt + Shif + X, tu vas recevoir une boîte de dialogue Tu choisis Marquer toutes les entrées, et OK.
    Tu recommence pour l'entrée suivante, .....

    Ensuite, il ne te reste plus qu'à faire ton index.
    Si tu as 25 fois le même mot, tu auras 25 pages indiquées.

    Une table des matières pointe vers un style ou un titre et ne possède qu'une seule entrée par ligne.
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Ok, merci pour ta réponse mais peut etre me suis je mal exprimé, mais comme faire ça de manière automatique....je dois avoir environ 250 paramètres diffèrents...si je fais ca a la main j'en ai pour un moment..

  4. #4
    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
    Comment vas tu le repérer si ils sont tous différents.

    De manière automatique, il faut pouvoir les repérer.
    Je pense que c'est là la vraie question.

    Tu peux toujours faire un

    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
     
    Dim para As Paragraph
    Dim x, y As Integer
    For Each para In ActiveDocument.Paragraphs
    para.Range.Select
    y = Selection.Words.Count
     
    For x = 1 To y
    Debug.Print x, y
     
       If Left(Selection.Words(x), 4) = "par_" Then
              ActiveDocument.Indexes.MarkEntry Range:=Selection.Range, Entry:=Selection.Words(x), _
             EntryAutoText:=Selection.Words(x), CrossReference:="", CrossReferenceAutoText:="" _
            , BookmarkName:="", Bold:=False, Italic:=False
        End If
     
    Next x
    Next para
    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 !

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Une question : Chaque "variable" est-elle suivie d'un saut de ligne ?
    Si oui, voici un code qui devrait te permettre de faire ce que tu veux.
    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
    Sub Test()
        Selection.HomeKey Unit:=wdStory 'On se place en début de document
        With Selection.Find
            .ClearFormatting
            'Début la boucle de recherche : Tant que la donnée est trouvée, on continue
            Do While .Execute(FindText:="par_", Forward:=True, Wrap:=wdFindStop) = True
                Selection.EndKey Unit:=wdLine, Extend:=wdExtend 'Sélection de la ligne
                'insertion d'un index
                ActiveDocument.Indexes.MarkEntry Range:=Selection.Range, _
                    Entry:=Selection.Range.Text, Italic:=True
                Selection.Font.Italic = wdToggle 'on met la sélection en italiques
                Selection.EndKey 'on se place en fin de ligne afin de ne pas...
                    'poursuivre la recherche sur la sélection
            Loop
        End With
        Selection.EndKey Unit:=wdStory  'L'index sera placé en fin de doc...
        'insertion d'un saut de page
        Selection.InsertBreak Type:=wdPageBreak '... sur la page suivante
        'il aura une seule colonne et les N° de pages seront placés à droite
        With ActiveDocument
            .Indexes.Add Range:=Selection.Range, HeadingSeparator:= _
                wdHeadingSeparatorNone, Type:=wdIndexIndent, RightAlignPageNumbers:= _
                True, NumberOfColumns:=1, IndexLanguage:=wdFrench
            .Indexes(1).TabLeader = wdTabLeaderDots
        End With
    End Sub
    J'ai fait le test sur le texte que tu as dans ton premier post.
    Tu dis
    A+

Discussions similaires

  1. Réponses: 10
    Dernier message: 04/08/2011, 21h21
  2. Réponses: 2
    Dernier message: 17/06/2005, 23h03
  3. [W3C] rendre toutes les pages visibles
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 31/01/2005, 19h07
  4. [CR.NET] affichage de toute les pages de l'état
    Par HULK dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 19/01/2005, 17h34

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