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 :

Parcours de combobox [WD-2010]


Sujet :

VBA Word

  1. #1
    Membre actif
    Homme Profil pro
    Expertise sécurité
    Inscrit en
    Avril 2013
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Expertise sécurité

    Informations forums :
    Inscription : Avril 2013
    Messages : 185
    Points : 268
    Points
    268
    Par défaut Parcours de combobox
    Bonjour,

    J'ai beau chercher je ne trouve pas un seul exemple de code qui me convient...

    J'ai un fichier word avec n combobox.
    Il y a des combobox qui s'appelle critereN (avec N un nombre aléatoire).
    Et il y a des combobox qui s'appelle infosN (avec N un nombre aléatoire).

    Je souhaiterais créer une fonction qui me permet d'initialiser toutes les valeurs des combobox. Ma fonction ressemblerait à ça en pseudo-code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Foreach combobox
             If ma combobox is de type critere
                  fonction remplirComboCritere(comboboxCourante)
             If ma combobox is de type infos
                  fonction remplirComboInfos(comboboxCourante)
    Fin de foreach
    Ce qu'il me manque :
    - Comment récupérer les combobox dans une liste que je pourrait parcourir en foreach ?
    - Comment distinguer une combobox de type infos d'une combobox de type critere dans mon if ?

    Ces combobox ne sont différencier que par leurs noms.

    Merci d'avance pour votre aide,

    @+

    JayGr

  2. #2
    Membre actif
    Homme Profil pro
    Expertise sécurité
    Inscrit en
    Avril 2013
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Expertise sécurité

    Informations forums :
    Inscription : Avril 2013
    Messages : 185
    Points : 268
    Points
    268
    Par défaut
    J'ai fini par trouver une solution, mais mon problème est maintenant qu'au bout d'un certain nombre d'itération j'ai ce message :
    " erreur d'execution 91 "

    Dans le bloc suivant à la ligne en gras :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim oCtl As InlineShape
        For Each oCtl In ThisDocument.InlineShapes
                If TypeName(oCtl.OLEFormat.Object) = "ComboBox" Then
                    If InStr(CStr(oCtl.OLEFormat.Object.name), "critere") Then
                        MsgBox (oCtl.OLEFormat.Object.name)
                       Call Combobox_Initialize_critere(oCtl.OLEFormat.Object)
                    End If
                    If InStr(CStr(oCtl.OLEFormat.Object.name), "infos") Then
                        MsgBox (oCtl.OLEFormat.Object.name)
                        Call Combobox_Initialize_infos(oCtl.OLEFormat.Object)
                    End If
                End If
        Next oCtl
    Merci d'avance,

    @+

  3. #3
    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,

    L'erreur 91 est liée à un objet non affecté.
    Souvent, dans une boucle elle se produit lorsque certains objets sont supprimés et lorsque la boucle est censée les appeler, ils ne sont plus là.
    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 !

  4. #4
    Membre actif
    Homme Profil pro
    Expertise sécurité
    Inscrit en
    Avril 2013
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Expertise sécurité

    Informations forums :
    Inscription : Avril 2013
    Messages : 185
    Points : 268
    Points
    268
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Salut,

    L'erreur 91 est liée à un objet non affecté.
    Souvent, dans une boucle elle se produit lorsque certains objets sont supprimés et lorsque la boucle est censée les appeler, ils ne sont plus là.
    Hello,

    Merci pour ta réponse, j'ai en effet vu que c'était ce genre d'erreur.
    Ici, après vérification, j'ai compris que l'erreur apparaissait lorsque je rencontrais cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If TypeName(oCtl.OLEFormat.Object) = "ComboBox" Then
    J'ai donc d'abord essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If oCtl Is Nothing Then
            Else:
                    If TypeName(oCtl.OLEFormat.Object) = "ComboBox" Then
    Et puis je me suis rendu compte que l'erreur ne se produisait que lorsque l'objet en cours (oCtl) arrivait à un contrôle de contenu d'image dans mon document.
    J'ai donc essayé de rajouter des choses en cherchant à sauter les étapes qui suivent "si l'objet est un contrôle de contenu d'image".
    Mais impossible de m'en sortir.

    Je n'ai pas obligatoirement besoin du contrôle de contenu d'image (pour l'instant je vais m'en passer). Mais j'aimerais vraiment comprendre ce qui provoque l'erreur..

    Que faire ?

    Merci,

    @+

  5. #5
    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,

    Peut-être faire un test sur le nom du contrôle et pas sur son type.
    On peut faire une extraction d'une partie du nom pour le test logique.
    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 !

  6. #6
    Membre actif
    Homme Profil pro
    Expertise sécurité
    Inscrit en
    Avril 2013
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Expertise sécurité

    Informations forums :
    Inscription : Avril 2013
    Messages : 185
    Points : 268
    Points
    268
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Salut,

    Peut-être faire un test sur le nom du contrôle et pas sur son type.
    On peut faire une extraction d'une partie du nom pour le test logique.
    Merci, c'est sûrement la meilleure idée. :-)

    Résolu plus haut pour la problématique de départ en tout cas.

    JayGr

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

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. Réponses: 6
    Dernier message: 19/03/2009, 11h54
  3. Event sur le parcours d'un combobox
    Par Psykotik dans le forum MFC
    Réponses: 11
    Dernier message: 25/11/2005, 09h20
  4. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 17h35
  5. combobox->text
    Par clovis dans le forum C++Builder
    Réponses: 18
    Dernier message: 21/06/2002, 15h43

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