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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 442
    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 Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    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

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

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    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à...

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 442
    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