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 :

Problème avec lists.count


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé de mission
    Inscrit en
    Juin 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chargé de mission
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Problème avec lists.count
    Bonjour à tous,

    Afin d'automatiser la transformation de certains textes Word en html, je cherche à manipuler des listes à puces via une Macro. J'ai donc créé un document "test" dans lequel figure du texte et des listes comme dans l'exemple ci-après.
    Nom : liste.PNG
Affichages : 106
Taille : 28,7 Ko

    La commande ActiveDocument.ListParagraphs.Count me renvoie bien 8. En effet, j'ai 8 paragraphes formatés sous forme de liste. Pas de problème.

    Là où je ne comprends plus, c'est que la commande ActiveDocument.Lists.Count me renvoie 1. Or, si j'ai bien compris la documentation, VBA devrait me renvoyer le nombre 2 (puisque j'ai deux listes). D'ailleurs, si je change les puces (cf. exemple suivant), je vais obtenir ce résultat de 2.
    Nom : liste_rond.PNG
Affichages : 98
Taille : 29,5 Ko

    Bref, soit il y a un problème, soit je ne comprends pas le fonctionnement de lists.count.

    Merci d'avance de vos lumières.

    GS.
    Images attachées Images attachées   

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par g-saunier Voir le message

    Bonjour,

    S'agissant d'une collection, elle doit sans doute commencer à 0. Pour vérifier, il suffit de sélectionner l'indice 0.

  3. #3
    Candidat au Club
    Homme Profil pro
    Chargé de mission
    Inscrit en
    Juin 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chargé de mission
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour. Merci de votre réponse et de votre aide.
    Le "count" renverrait donc 1 lorsqu'il y a deux listes ? Mais pourquoi renvoie-t-il deux si je change le format des listes ? Je vais essayer d'appeler la liste 0, on verra bien.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par g-saunier Voir le message
    Mettez un exemple en ligne et indiquez ce que vous cherchez à faire.

  5. #5
    Candidat au Club
    Homme Profil pro
    Chargé de mission
    Inscrit en
    Juin 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chargé de mission
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Une fois de plus : merci de votre aide.

    Voici le code que j'essaie de faire fonctionner.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For i = 1 To ActiveDocument.Lists.Count
            ul1 = ActiveDocument.Lists(i).Range.Start
            ul2 = ActiveDocument.Lists(i).Range.End - 1
            Set myUl = ActiveDocument.Range(Start:=ul1, End:=ul2)
            With myUl
                        .InsertBefore "<ul>"
                        .InsertAfter "</ul>"
            End With
    Next i
    L'idée est d'ajouter automatiquement une balise <ul> au début de chaque liste de mon document word pour une migration vers un site. Mais cela ne fonctionne pas : VBA me met une balise UL au début de la première liste, à la fin de la seconde. Effectivement, il ne "compte" qu'une seule liste.

    J'espère que cela rend ma question plus claire.

    GS.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par g-saunier Voir le message
    Bonjour,

    Pouvez-vous mettre un fichier exemple en ligne ?

  7. #7
    Candidat au Club
    Homme Profil pro
    Chargé de mission
    Inscrit en
    Juin 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chargé de mission
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Voilà.
    Fichiers attachés Fichiers attachés

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par g-saunier Voir le message
    Contrairement à ce que j'ai écrit précédemment, la collection Lists part de 1.

    Effectivement le nombre de Lists correspond aux différents types. Dans votre exemple, un seul type "-" donc une seule liste et 12 items. La difficulté sera de différencier les différentes listes (3) que mon code précédemment mis en ligne ne réalise pas.
    Dernière modification par Invité ; 19/06/2019 à 16h49.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par g-saunier Voir le message
    Voilà.
    Le code ci-dessous permet d'identifier les différentes séries (3) dans une matrice. Il suffirait donc ensuite de sélectionner les premier et dernier paragraphes de chaque série et d'encadrer la sélection.

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    Sub TestHtml2()
     
    Dim DocEncours As Document
    Dim I As Integer, J As Integer, IndexMatrice As Integer, SerieBullet As Integer
    Dim MonTexte As String
    Dim MatriceBullet() As Variant
     
     
        Set DocEncours = ActiveDocument
     
        IndexMatrice = 0
     
        With DocEncours
     
          If .Lists.Count = 0 Then Exit Sub
     
           For I = 1 To .Lists.Count
     
               With .Lists(I)
     
                    For J = 1 To .ListParagraphs.Count
                            .ListParagraphs(J).Range.Select
                            ReDim Preserve MatriceBullet(3, IndexMatrice)
                            MatriceBullet(0, IndexMatrice) = I
                            MatriceBullet(1, IndexMatrice) = .ListParagraphs(J).Range.Text
                            Selection.HomeKey unit:=wdStory, Extend:=wdExtend
                            MatriceBullet(2, IndexMatrice) = Selection.Paragraphs.Count
                            IndexMatrice = IndexMatrice + 1
                    Next J
     
               End With
     
           Next I
     
        End With
     
        SerieBullet = 1
        For IndexMatrice = LBound(MatriceBullet, 2) To UBound(MatriceBullet, 2) - 1
            MatriceBullet(3, IndexMatrice) = SerieBullet
            If MatriceBullet(2, IndexMatrice + 1) > MatriceBullet(2, IndexMatrice) + 1 Then
               SerieBullet = SerieBullet + 1
            End If
        Next IndexMatrice
     
        For IndexMatrice = LBound(MatriceBullet, 2) To UBound(MatriceBullet, 2) - 1
            Debug.Print "Série : " & MatriceBullet(3, IndexMatrice) & ", " & MatriceBullet(2, IndexMatrice) & ", " & MatriceBullet(1, IndexMatrice)
        Next IndexMatrice
     
        Set DocEncours = Nothing
     
    End Sub

  10. #10
    Candidat au Club
    Homme Profil pro
    Chargé de mission
    Inscrit en
    Juin 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chargé de mission
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Cher Éric,

    Je ne reprends ce projet qu'à l'instant. Merci beaucoup de vos efforts et de votre aide.

    (je suis en train de m'arracher les cheveux sur un nouveau sujet... je vais sans doute poster une nouvelle question)

    GS

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

Discussions similaires

  1. [SQL] Problème avec liste déroulante et select
    Par cari dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 28/07/2006, 20h52
  2. Problème avec listes déroulantes
    Par dl_jarod dans le forum Langage
    Réponses: 9
    Dernier message: 07/06/2006, 10h13
  3. Réponses: 20
    Dernier message: 22/03/2006, 14h00
  4. Problème avec liste déroulante
    Par Invité dans le forum IHM
    Réponses: 2
    Dernier message: 14/12/2005, 21h04
  5. Problème avec listes liées entre elles et bouton "précé
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2005, 15h10

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