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 :

Appel de differente userform dans le programme d'un module


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Chargé d'étude énergie
    Inscrit en
    Décembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'étude énergie
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 11
    Par défaut Appel de differente userform dans le programme d'un module
    Bonjour à tous

    Désespéré à force de recherche sur le Web pour trouver une solution à mon problème (si solution il y a), je me tourne vers vous.

    1er Problème:

    Je voudrais appeler à intervenir deux userform différente à des moments précis dans un même module.

    Il faudrait pour cela, créer une variable qui serait intégré aux Sub dans mon module par un ByRef.
    Cette variable doit contenir soit le nom complet de l'userform, soit juste le numéro (Peu m'importe).

    En effet, ces deux userform interviennent dans le but de rechercher une valeur et d'en écrire une autre dans des ComboBox. La premiére permet de rajouter une entreprise en spécifiant sa fonction, son domaine, sa spécialité et son complément. Ces valeurs sont imposées par moi-même, et elle son liées.

    Exemple:
    Fonction = BET
    Domaine peut contenir : Architecte, Généraliste, ... ...

    Fonction = Sous-Traitant
    Domaine peut contenir : Elec, Plomberie ... ...


    Je vous insert un exemple du code :

    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
    27
    28
    29
    30
    'Code dans mon UserForm2
    
    Private Sub CFonction_Change()
    'INFO SUIVANT CFonction
    Dim Number As Integer
        Number = 2
        Remplissage_ComboBox.CFonction (Number)
    End Sub
    
    'Identique pour le userform3 sauf que Number sera égal à 3
    
    'Code dans mon Module
    
    Sub CFonction(ByRef Number As Integer)
    'Remplir le ComboBox CDomaine en SUIVANT celui rempli précédement : CFonction
    If UserForm(Number).CFonction.Value = "" Then
    'Clear des ComboBox suivant
        UserForm(Number).CDomaine.Clear
        UserForm(Number).CSpecialite.Clear
        UserForm(Number).CComplement.Clear
    End If
    If UserForm(Number).CFonction.Value = "BET" Then
        UserForm(Number).CDomaine.Clear
        UserForm(Number).CSpecialite.Clear
        UserForm(Number).CComplement.Clear
        UserForm(Number).CDomaine.AddItem "Architecte"
        UserForm(Number).CDomaine.AddItem "BET Contrôle"
        UserForm(Number).CDomaine.AddItem "Expertise"
        UserForm(Number).CDomaine.AddItem "Generaliste"
    2eme Probléme (Moins important puisque fonctionnel):

    De plus, si vous avez également quelque idées d'améliorations de mon remplissage de ComboBox je suis preneur. En effet, actuellement je les remplis en fonction du ComboBox précédent:

    1er Fonction
    2eme Domaine
    3eme Spécialité
    4eme Complément

    Donc Domaine se remplira en fonction de ce qui a été ajouté dans Fonction. Mon second problème et donc la longueur de mon code. Puisque il y a beaucoup de possibilité.
    Toute mes possibilités sont écrite dans mon code, ce qui ne permet pas son l'ajout facilement de nouvelle données.

    Merci d'avance pour votre aide. Si il vous faut également une image de mon userform, je peux vous l'envoyer.

  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
    Bonjour Warthill, bonjour le forum,

    Une proposition pour rentrer deux userforms dans un tableau de variable. Je suis pas sûr que cela t'aide beaucoup...
    Le contexte : deux userforms nommées : UserForm1 et Userform2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public US(1 To 2) As Object
     
    Public Sub Macro1()
    Dim I As Byte
     
    Set US(1) = UserForm1
    Set US(2) = UserForm2
    For I = 1 To 2
        US(I).Show
    Next I
    End Sub

  3. #3
    Membre habitué
    Homme Profil pro
    Chargé d'étude énergie
    Inscrit en
    Décembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'étude énergie
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 11
    Par défaut
    Le problème ici est surtout l'adaptabilité du type de variable à rentrer dans le Sub du module et en effet, j'ai essayé avec un tableau, ça ne fonctionne pas non plus.

    Je pense qu'il faut juste que je trouve l'écriture correcte pour cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If UserForm(Number).CFonction.Value = "" Then
    Et le type de variable à assigner dans mon Sub :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub CFonction(ByRef Number As Integer)
    
    Remplissage_ComboBox.CFonction (Number)
    Merci quand même! Peut être que ta solution est adaptable, mais à ce moment la, je ne vois pas comment.

Discussions similaires

  1. appel de user exit dans un programme
    Par Kiefer_S dans le forum SAP
    Réponses: 5
    Dernier message: 25/08/2008, 17h07
  2. [AF] appel d'une frame dans un programme
    Par l'breton du 29 dans le forum SAS AF et formulaires
    Réponses: 0
    Dernier message: 29/05/2008, 15h42
  3. appel de script bash dans un programme en C
    Par mackla dans le forum Linux
    Réponses: 1
    Dernier message: 26/02/2008, 21h08
  4. Appel d'un .exe dans un programme en c sous unix
    Par arabimouh dans le forum C
    Réponses: 7
    Dernier message: 07/09/2007, 09h42
  5. Réponses: 4
    Dernier message: 02/05/2007, 16h18

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