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

Macros et VBA Excel Discussion :

PB : Utilisation Nom OBJET en Variable [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club Avatar de sweader
    Homme Profil pro
    Directeur de Sites FM
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Directeur de Sites FM
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Par défaut PB : Utilisation Nom OBJET en Variable
    Bonsoir à Toutes et Tous,

    En avant propos, merci à TOUS les membres de la communauté qui prendront le temps de lire ce message et plus particulièrement à celles / ceux qui y répondront ……
    Concernant l'interprétation des éventuelles réponses, je possède un niveau, dira-t-on "éclairé en VBA ….
    Voilà le problème :

    Dan le cadre du développement d'une application sous EXCEL (2010), à titre de besoins professionnels, je souhaite utiliser plusieurs objets de type "IMAGELIST". Dans un POST précédent mais qui date fortement, j'en suis arriver à la conclusion que pour un usage facilité des fonctions de l'objet IMAGELIST, il était préférable d'utiliser et de placer cet Objet sur une feuille de Calcul (Sheet) plutôt que dans un USERFORM (Ce détail aura peut-être une incidence sur la solution au problème).
    Je souhaiterai que les manipulations dans les différents IMAGELIST ( ajout, supprimer, renommer les images, exporter, etc ) puisse être faite par l'utilisateur.
    Pour ce faire, il doit donc choisir l'Objet IMAGELIST associé à son action. Son choix se faisant depuis un USERFORM, disposant d'une Liste de Choix (COMBOLIST), dans laquelle figure TOUS les objets IMAGELIST figurant sur la Feuille de Calcul dédiée à cela.
    L'alimentation du COMBOLIST se faisant par la récupération des Noms des Objets IMAGELIST existant sur la Feuille de Calcul dédiée au stockage des Images et où se trouve TOUS les IMAGELIST.
    Cela fonctionne parfaitement, pas de problème, ci-dessous le Code s'y affairant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub UserForm_Initialize()
        Dim ctl As Shape '*** Definition Variable OBJET dans la Feuille de Calcul
    '*** INITIALISATION des COMBOLIST
        Me.IM_CBX_Liste_IMAGELIST.Clear '*** Reinitialise le COMBOLIST de la Liste des IMAGELIST
        For Each ctl In ThisWorkbook.Sheets("PARAMETRES").Shapes '*** BOUCLE sur TOUS les Objets présents dans la Feuille de Calcul
    '*** Type=12 est un Objet de Type IMAGELIST,Type=1= Forme Dessin, Type=8= Bouton de Commande, etc ....
            If ctl.Type = 12 Then '*** TEST si OBJET = IMAGELIST
                Me.IM_CBX_Liste_IMAGELIST.AddItem ctl.Name '*** ALIMENTE le 1er COMBOLIST
            End If
        Next
    '*** FIN INITIALISATION des COMBOLIST
    End Sub
    Arrive le problème ….. et en m'adressant à la Communauté, cela signifie que j'ai BEAUCOUP BEAUCOUP essayé et sutout pas trouvé la solution ……

    En affichant le USERFORM, l'Utilisateur fait le choix de l'IMAGELIST dans le COMBOBOX, ce qui en code se traduit par la récupération d'une "Value" en Texte, que l'on assigne à une "Variable", jusque là pas de problème.
    Mais maintenant, comment faire pour utiliser cette "Value" texte sous forme de variable pour pouvoir l'utiliser comme un nom d'OBJET ……. là je bloque …….
    Ci dessous les bribes d'une de MES TRES TRES NOMBREUSES versions de mes essais …. mais cela ne fonctionne pas …… Objet du code, Afficher le nombre d'Images dans l'IMAGELIST sélectionné :

    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
    Private Sub IM_CBX_Liste_IMAGELIST_Change()
        Dim CHOIX_CBX_IMAGELIST As Object '*** Déclaration d'une variablede type Objet
        Dim NB_IMAGES
        Set CHOIX_CBX_IMAGELIST = Me.IM_CBX_Liste_IMAGELIST.Value '*** VALEUR du COMBOLIST choisie par l'Utilisateur (Liste des IMAGELIST)
        'Option 1: Set CHOIX_CBX_IMAGELIST = Sheets("PARAMETRES").Controls(IM_CBX_Liste_IMAGELIST.Value)
        'Option 2: Set CHOIX_CBX_IMAGELIST = Sheets("PARAMETRES").Shapes(IM_CBX_Liste_IMAGELIST.Value)
     
        Set CHOIX_CBX_IMAGELIST = Sheets("PARAMETRES").Controls(IM_CBX_Liste_IMAGELIST.Value)
        NB_IMAGES = CHOIX_CBX_IMAGELIST.ListImages.count
        MsgBox (NB_IMAGES) '*** TENTATIVE d'Utilisation pour Afficher le Nombre d'Images dans l'objet IMAGELIST
     
        Select Case Sheets("PARAMETRES").CHOIX_CBX_IMAGELIST.ListImages.count
            Case Is = 0
                Me.IM_AJOUTER_Image.Enabled = True
                Me.IM_RENOMMER_Image.Enabled = False
                Me.IM_SUPPRIMER_Image.Enabled = False
                Me.IM_EXPORTER_Image.Enabled = False
                Me.IM_TXT_Nbre_Images_Imagelist.Caption = "0"
            Case Is > 0
                Me.IM_AJOUTER_Image.Enabled = True
                Me.IM_RENOMMER_Image.Enabled = True
                Me.IM_SUPPRIMER_Image.Enabled = True
                Me.IM_EXPORTER_Image.Enabled = True
                Me.IM_TXT_Nbre_Images_Imagelist.Caption = Sheets("PARAMETRES").IMAGELIST_Application.ListImages.count
        End Select
    End Sub
    Voilà, en espérant avoir été clair dans mes explications …….. avec un SUPER SUPER Merci aux membres de la communauté qui voudront bien se pencher sur mon problème et les pistes de solutions qu'ils évoqueront !!!!!!!

    Cordialement.

    Sweader ==> Un Utilisateur devenu dépressif à cause de ce problème sur lequel il "TOURNE" depuis un nombre de jours INDECENT!!!!

  2. #2
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 173
    Billets dans le blog
    2
    Par défaut
    Bonsoir,

    peut-être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set CHOIX_CBX_IMAGELIST = Sheets("PARAMETRES").oleobjects(IM_CBX_Liste_IMAGELIST.Value)

  3. #3
    Nouveau membre du Club Avatar de sweader
    Homme Profil pro
    Directeur de Sites FM
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Directeur de Sites FM
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Par défaut Solution ..... Je cloture !! MERCI à Toutes et TOUS !!
    Merci à Toi TOTOTITI2008 !!!!!!!
    Effectivement, grâce à un autre forum d'entre aide, la solution suivante m'a été fournie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set CHOIX_CBX_IMAGELIST = Sheets("PARAMETRES").OLEObjects(IM_CBX_Liste_IMAGELIST.Value).Object
    Donc effectivement, tu n'étais pas loin !!!!! BRAVO et surtout un énorme merci à toi pour le temps consacré à mon problème ……
    SUPER !!! et vraiment du plus sincèrement merci à toi tout de même !!

    Cordialement.

    Pascal

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

Discussions similaires

  1. utilisation nom de variable pour le nom d'une commandbars
    Par modus57 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/09/2008, 18h11
  2. Réponses: 12
    Dernier message: 17/01/2008, 11h46
  3. Réponses: 6
    Dernier message: 29/06/2007, 12h43
  4. Nom d'objet avec variable, possible?
    Par CleeM dans le forum Delphi
    Réponses: 10
    Dernier message: 26/06/2007, 18h03
  5. Nom objet variable
    Par totoche dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/09/2006, 10h36

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