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 :

Nom d'optionboutton (ou d'objet) Variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mai 2003
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 1
    Par défaut Nom d'optionboutton (ou d'objet) Variable
    Bonjour,

    Je cherche à utiliser une variable tableau dans la vérification d'un optionbouton afin de vérifier qu'une série de bouton est bien validée.

    Voici a peu près mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    i = 1
    do while i < 10
    If UserForm1.Tableau(i).Value = True Then
    ...
    EndIf
    i = i +1
    loop
    Le UserForm1.Tableau(i).Value ne peut pas être pris en compte comme objet,
    j'ai testé de nombreuses formulations mais rien n'y fait.

    Pouvez-vous m'aider svp ?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut James3 et leforum
    c'est tout ? Pas plus d'infos ? Et on doit résoudre le problème ?
    C'est pas comme à la TVF, on fait pas de miracle comme MONK .

    Comment est déclaré (et rempli) ton tableau ?
    Sinon avec un
    for each Ctrl in Me.Controls
    if Ctrl then
    ou un
    for X = 1 to 10
    if Me.controls("OptionBouton" & X) Then
    tu devrais pouvoir résoudre ton problème.

    NOTA : pas la peine de camoufler un code, aucun n'est monnayable
    Par contre, pour le dépannage, le donner remplace plus efficacement la boule de cristal.
    A+

  3. #3
    Invité de passage
    Inscrit en
    Février 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 1
    Par défaut
    Salut gorfael,

    Je travaille avec James sur ce projet, voici donc notre probleme :

    Dans un userform nous avons plusieurs boutons options. Nous souhaitons récupérer les informations de ces boutons dans une macro (pour injecter ces information sur une feuille excel) sans avoir à renommer ces boutons à chaque fois.

    L'idée est d'avoir un tableau à une dimension où nous injectons le nom des boutons (un nom de bouton par ligne). Puis nous faisons appelle successivement à chaque ligne du tableau pour vérifier l'état de chaque bouton.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dim tableau as string
    tableau(1) = xxxx
    tableau(2) = yyyy
    tableau(3) = zzzz
    '....
     
    i = 1
    do while i < 10
    If UserForm1.Tableau(i).Value = True Then
    '... (action à mener 'efface lignes, fonctionne très bien) 
    EndIf
    i = i +1
    loop
    Le problème est que la formulation, "UserForm1.Tableau(i)" ne corresponde pas au bouton ciblé. Naturellement si nous écrivons le nom du bouton dans la macro, le code fonctionne. Il s'agirait donc de transformer une variable en objet.

    merci

  4. #4
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut
    Bonjour james3.14, gorfael, hellviking et le forum,

    Comme le fait comprendre gorfael, il ne sert à rien de créer un tableau de valeurs avec des noms car il existe déjà un tableau qui n'est autre que le tableau collection de contrôles. Ils ont un nom et des propriétés.

    Dans la propriété "Tag" des boutons d'option utiles mettre une information identifiant la cellule ou le code. Tag peut être un nombre correspondant la cellule, à la colonne, un texte ou une absence de texte. A vous de voir suivant votre besoin.

    un code un peu plus développé pour comprendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Pour tous les contrôles sur la feuille courante
    For Each CTRL In Me.Controls
        'Si la propriété Tag contient "utile" alors 
        If CTRL.Tag = "Utile" Then
            'Place la valeur du controle dans la cellule active
            ActiveCell.Value = CTRL.Value
        End If
    Next

    on pourrait faire un test du genre dans la boucle "For Each"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If TypeOf Ctrl Is OptionButton Then
    il y a une discussion similaire pour le code à http://www.developpez.net/forums/d87...acteres-rouge/


    ESVBA

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut hellviking et le forum
    as-tu essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dim tableau as string
    tableau(1) = xxxx
    tableau(2) = yyyy
    tableau(3) = zzzz
    ....
     
    i = 1
    do while i < 10
       If Me.controls(Tableau(i)) = True Then
                 ... (action à mener 'efface lignes, fonctionne très bien) 
       EndIf
       i = i +1
    loop
    A+

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/06/2014, 11h37
  2. Nom d'objet variable
    Par polo68 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/06/2011, 11h11
  3. Nom d'objet variable
    Par lyrix dans le forum Langage
    Réponses: 5
    Dernier message: 04/06/2007, 11h03
  4. Nom objet variable
    Par totoche dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/09/2006, 10h36
  5. [POO] [Objets]Variables temporaires/permanentes?
    Par Zenol dans le forum Langage
    Réponses: 38
    Dernier message: 08/12/2005, 21h07

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