sélectionner un userform par VBA

Benoist28200

XLDnaute Nouveau
Bonjour,

Est-il possible de sélectionner un userform par VBA ?

Ex: Si A1 = 1 alors userform(1)
Si A1 = 2 alors userform(2)

Merci
 

job75

XLDnaute Barbatruc
Bonjour Benoist28200, JHA,
Merci Philippe mais je ne veux pas lancer l'userform mais juste récupérer le nom de celui ci
Placez ce code dans un module standard :
Code:
Function NomUSF(n As Integer) As String
Dim c As Object, i As Integer
For Each c In ThisWorkbook.VBProject.VBComponents
    If c.Type = 3 Then
        i = i + 1
        If i = n Then NomUSF = c.Name: Exit For
    End If
Next
If i = 0 Then NomUSF = "Il n'y a pas d'UserForm" 'facultatif
End Function
Entrez en A1 la valeur 1 ou 2 ou 3 etc... et en B1 la formule =NomUSF(A1)

Nota : pour que l'accès au VBAProject soit possible par macro il faut avoir coché l'option :


- sur Excel 2003 et versions antérieures Faire confiance au projet Visual Basic (menu Outils-Macro-Sécurité-Editeurs approuvés)

- sur Excel 2007 et versions suivantes Accès approuvé au modèle d'objet du projet VBA (onglet Fichier-Options-Centre de gestion de la confidentialité-Paramètres...-Paramètres des macros).

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour à tous,

Pour connaître le nom de l'UserForm actif créer dans Module1 la variable Public UsfActif :
VB:
Public UsfActif As String 'mémorise la variable

Sub User1()
UserForm1.Show 0 'non modal
End Sub

Sub User2()
UserForm2.Show 0 'non modal
End Sub

Sub Test()
MsgBox IIf(UserForms.Count, UsfActif, "Aucun Useform n'est ouvert")
End Sub
Et dans le code de chaque UserForm placer la macro :
VB:
Private Sub Userform_Activate()
UsfActif = Me.Name
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 220
Messages
2 086 376
Membres
103 198
dernier inscrit
CACCIATORE