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 :

VBA Excel : Appel d'un userform à l'aide d'une variable


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut VBA Excel : Appel d'un userform à l'aide d'une variable
    Bonjour,
    Après de multiples essais et recherches je n'arrive toujour pas à ouvrir un userform à partir d'une variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
    Dim p As String
     
    p = "UserForm1"
    p.Show
     
    End Sub
    si quelqu'un a une proposition, je suis preneur!
    Merci

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Tu ne peux pas convertir une chaine en formulaire

  3. #3
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CallByName UserForm1, "show", VbMethod

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    CallByName en VBA :

  5. #5
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Yes, Sir, j'ai testé justement, car j'avais un doute (excel 2000)

  6. #6
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Chouette, je vais me coucher un peu moins bourricot.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    j'ai essayé mais ça ne marche pas. ça marche avec un nom d'userform mais pas si celui ci est donné dans la variable.

    voilà ce que j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CommandButton1_Click()
    Dim p As String
     
    p = "UserForm1"
    CallByName p, "show", VbMethod
     
     
    End Sub

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    pourquoi tiens tu absolument a passer par une variable : :
    juste fonctionne tres bien[/code]

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    tout simplement parce que selon la valeur de la variable l'userform à ouvrir ne sera pas le même.

    Je veux faire des succession d'userform dont l'enchainement dépend des précédents.

    Par exemple la variable pourra être le nom d'un userform qui avait été ouvert précédemment.

  10. #10
    Membre éclairé
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Points : 854
    Points
    854
    Par défaut
    Dans ce cas pourquoi utiliser une variable de type String? Utilise une variable de type UserForm et sauvegarde la référence de ton formulaire...

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    comme çà?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
    Dim p As UserForm
    p = "UserForm1"
    CallByName p, "show", VbMethod
     
     
    End Sub
    çà ne marche pas

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Je viens de trouver un truc qui marche pas mal mais il reste un problème.
    Il faut tout d'abord définir une variable publique dans le module ex :
    ensuite dans un userform :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
    Set duser = UserForm3
    Unload Me
    UserForm2.Show
    End Sub
    puis dans l'userform2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton1_Click()
    Unload Me
    duser.Show
    End Sub
    le résultat va être l'ouverture de l'Userform3 sauf si l'userform 3 était celui de départ!, j'obtiens alors un message d'erreur qui doit correspondre au fait que la première sub (dans l'userform3) n'est pas encore terminée et que, du coup il y a une erreur automation.

  13. #13
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    bonjour

    Pierrot , si je reprends l'exemple dans ton premier message , tu peux essayer


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
    Dim maVariable As String
    maVariable = "UserForm1"
    VBA.UserForms.Add(maVariable).Show
    End Sub

    bonne soiree
    michel

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci pour la réponse, maintenant ça me fait deux façons différentes d'y arriver.

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

Discussions similaires

  1. Appel procédure de formulaire à l'aide d'une variable
    Par polo68 dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/11/2013, 18h09
  2. VBA-EXCEL- appelr un fichier excel a l'aide d'une variable
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 08/08/2006, 15h58
  3. [VBA excel]graph dans un userform .._
    Par SpaceFrog dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 31/05/2006, 18h45
  4. [VBA]Excel - Activation d'un UserForm
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/01/2006, 11h31
  5. [VBA][Excel] appel de fonction
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 20/12/2005, 10h53

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