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 :

[VBA-W]Numéro de page des titres d'un document Word


Sujet :

VBA Word

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [VBA-W]Numéro de page des titres d'un document Word
    Bonjour à tous,

    Je cherche à faire un scan d'un fichier Word en VB.

    Mon but, trouver tous les titres de niveau 1, 2, 3 et écrire dans un fichier texte de 3 colonnes :

    1 - le niveau du titre
    2 - le texte correspondant
    3 - le numéro de la page associée au titre (c'est surtout là que ça bloque car je n'arrive pas à lier un paragraphe à un numéro de page).

    Merci d'avance à tous ceux qui voudront bien prendre le temps de m'aider.

    A bientot

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    par ex
    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
    Dim MonPara As Paragraph, Traite As Boolean
    Dim Niveau As Integer, Texte As String, NumPage As Integer
     
    For Each MonPara In ActiveDocument.Paragraphs
     
        Traite = True
        Select Case MonPara.Style
            Case "Titre 1"
                Niveau = 1
            Case "Titre 2"
                Niveau = 2
            Case "Titre 3"
                Niveau = 3
            Case Else
                Traite = False
     
        End Select
        If Traite Then
            Texte = MonPara.Range.Text
            NumPage = MonPara.Range.Information(wdActiveEndPageNumber)
            MsgBox Niveau & vbCrLf & Texte & vbCrLf & NumPage
        End If
     
    Next

  3. #3
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Wow!

    Tu m'épates, Bidou! Faut que j'essaie ça!

    à demain. Je retourne étudier.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Super, merci bidou...

    je teste ça ce soir et je te dis si ça marche.


    PS : lol, ma copine m'appelle toujours bidou!!!!

  5. #5
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Dans 2546 messages, on pourra vraiment vous confondre...

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Euh...

    Le but ne serait-il pas de créer une table des matières???

    Word fait ça très bien sans la moindre programmation
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup, le programme marche nickel...

    Remarque pour AlainTech, mon but final n'est pas de créer une table des matières sous word, ce qu'il sais effectivement très bien faire tout seul.

    Le but est de récupérer automatiquement cette "table des matières" et ce même si elle n'existe pas dans le doc (donc en scannant les titres) pour création automatique des signets lors d'un export PDF.

  8. #8
    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
    Ton truc m'intéresse. Tu ne pourrais pas mettre ton code quand tu auras fini ?
    Je crées tous les deux mois un pdf à partir d'Access, avec cent signets à mettre à jour... Ça me ferait gagner du temps que je pourrais passer plus utilement sur le forum Et puis ça pourrait intéresser du monde...

    A+ et merci d'avance...

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Salut tout le monde...

    Bon j'ai bien avancé, et si ça peut servir, je vais vous donner des infos.

    Par contre, je vais me faire opérer et j'ai pas trop le temps d'ici mercredi prochain de développer ce que j'ai fait. Pour les patients, je vous promets un retour.

    A bientot, après mon charcutage (l'épaule pour info)

  10. #10
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    bon courage

Discussions similaires

  1. Récupérer les numéros de ligne des titres
    Par a_centaure dans le forum VBA Word
    Réponses: 7
    Dernier message: 29/07/2013, 22h50
  2. Mise en page des titres
    Par misterein dans le forum Mise en forme
    Réponses: 1
    Dernier message: 23/12/2011, 14h20
  3. [VBA-W]Numéro de page, mise en page...
    Par AlainTech dans le forum VBA Word
    Réponses: 4
    Dernier message: 02/03/2007, 14h32
  4. [VBA-E]Numéro de page 1/X
    Par MJMJ dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/04/2006, 18h56
  5. [VBA-E] Numéro de page
    Par franckh99 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/03/2006, 18h04

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