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 :

Echanges entre userforms [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut Echanges entre userforms
    Bonjour

    j'ai un petit souci de syntaxe
    dans l'userform1 j'ai 13 cases à cocher
    dans l'userform2 j'ai une combobox qui est alimentée à partir d'un onglet (Panneaux")
    si usf1.optionbouton1 alors la usf2.combo est alimentée par le colonne 1 de Panneaux
    si usf1.optionbouton2 alors la combo est alimentée par le colonne 3 de Panneaux

    mon souci comment faire comprendre à excel si usf1.optionbouton1.value = true alors usf2.combox alimentée par ....

    merci pour votre aide
    cordialement

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonsoir Pierre, bonsoir le forum,

    • Dans un module standard (Module1 par exemple), en première ligne de ce module, tu déclares une variable publique qui va stocker la colonne :

    • J'imagine que ton UserForm1 contient un CommandButton avec un code du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
    Dim CTRL As Control 'déclare la variable CTRL (ConTRôLe)
     
    For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'UserForm
         If TypeOf CTRL Is msforms.OptionButton Then 'condition 1 : si le contrôle est un bouton d'option
              If CTRL.Value = True Then 'condition 2 : si le contrôle est vrai
                   COL = CInt(Mid(CTRL.Name, 13)) 'stocke le numéro du bouton d'option dans la variable COL
                   Exit Sub 'sort de la procédure
              End If 'fin de la condition 2
         End If 'fin de la condition 1
    Next CTRL 'prochain contrôle de la boucle
    End Sub
    • À l'initialisation de l'UserForm2, il ne te reste plus qu'à alimenter la ComboBox1 à l'aide de la variable COL avec un code du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Sheets("Panneaux")
         ComboBox1.List = .Range(.Cells(2, COL), .Cells(Application.Rows.Count, COL).End(xlUp)).Value
    End With
    Dans ce code j'ai utilisé les derniers caractères numériques du nom du bouton d'option convertis en entier (Cint(Mid(CTRL.Name, 13))). Il te faudra donc renommer les boutons d'option pour que leur derniers caractères corresponde à la colonne COL (OptionButton1, OptionButton3, OptionButon5, etc.).
    Ou alors, on peut utiliser la propriété [Tag] (en dur dans la fenêtre des propriétés) de ces contrôles en lui attribuant le numéro de la colonne (OptionButton1.Tag = 1, OptionButton2.tag = 3, OptionButton3.Tag = 5, etc)
    et dans ce cas remplacer la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COL = CInt(Mid(CTRL.Name, 13)) 'stocke le numéro du bouton d'option dans la variable COL
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COL = CInt(CTRL.Tag) 'stocke le numéro du bouton d'option dans la variable COL
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Pierre, bonjour le forum,

    Discussion résolue ?... Pas même un remerciement ! Ce n'est pas un(e) Pierre précieuse que nous avons là...
    À plus,

    Thauthème

    Je suis Charlie

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut
    C'est pas dans mes habitudes de ne pas remercier il suffit de voir mes autres discussions
    j'étais à la bourre et fermé trop vite

    merci à ceux qui contribuent
    mes excuses
    cordialement

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

Discussions similaires

  1. [XL-2010] Probleme d'echange entre userform
    Par Pierre67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/10/2014, 18h52
  2. [VBA Excel] Lien entre userforms
    Par violette_china dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/11/2006, 02h21
  3. echange entre les couches
    Par manoushka dans le forum Hardware
    Réponses: 2
    Dernier message: 31/05/2006, 08h45
  4. 9.2 Echange entre serveurs
    Par lunab54 dans le forum Oracle
    Réponses: 1
    Dernier message: 24/12/2005, 17h38
  5. [c-linux]echange entre 2 sockets
    Par .:dev:. dans le forum Développement
    Réponses: 2
    Dernier message: 11/06/2004, 19h13

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