Comment instancier un Userform

Fermé
Agi67 Messages postés 11 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 11 septembre 2021 - 9 sept. 2021 à 18:47
 Patrice67 - 15 sept. 2021 à 05:29
Bonjour,

En VBA sous Excel, je souhaite parcourir les composants d'un Project VBA. J'arrive à faire cette étape avec :
Dim userf as Userform

For Each userf In ThisWorkbook.VBProject.VBComponents

set userf = Userforms(userf.name) ' Cette étape ne fonctionne pas.

Next

Je souhaiterais instancier les Userform trouvés dans cette boucle afin d'obtenir leurs propriétés(Top, Left, Height, Width) comme je le fais dans le cas des Contrôles dans les Userforms
Merci d'avance pour votre aide.

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 9 sept. 2021 à 18:52
0
Agi67 Messages postés 11 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 11 septembre 2021
11 sept. 2021 à 07:55
Bonjour cs_Le Pivert ,

Merci pour ces liens que j'avais préalablement consultés. Sans une réelle réponse à ma question.

Cdt
Patrice
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 11 sept. 2021 à 08:59
Sans une réelle réponse à ma question.

c'est étonnant car moi je trouve réponse à ta question dans le second lien

a mettre dans un module:

Option Explicit
Sub listeUserFormClasseur()
    'nécéssite d'activer la référence
    'Microsoft Visual Basic For Applications Extensibility 5.3
    Dim VBCmp As VBComponent
    For Each VBCmp In ThisWorkbook.VBProject.VBComponents
        If VBCmp.Type = 3 Then
        MsgBox "nom de l'UserForm: " & VBCmp.Name
        MsgBox "largeur de " & VBCmp.Name & " " & VBCmp.Properties("Width")
        MsgBox "hauteur de " & VBCmp.Name & " " & VBCmp.Properties("Height")
        MsgBox "top de " & VBCmp.Name & " " & VBCmp.Properties("Top")
        MsgBox "left de " & VBCmp.Name & " " & VBCmp.Properties("Left")
        End If
    Next VBCmp
End Sub


Voilà,

@+
0
Bonjour cs_Le Pivert.

Ma réponse tardive. Merci j'ai pu ainsi avancer.
Cordialement
Patrice
0