Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Verifier si un userform existe

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Solution
Bonjour Don pépé,

On peut utiliser cette fonction VBA pour tester l'existence d'un VBComponent :
VB:
Function VBComponent_Existe(nom$) As Boolean
On Error Resume Next
VBComponent_Existe = Not IsError(ThisWorkbook.VBProject.VBComponents(nom))
End Function
Tester en exécutant cette macro :
Code:
Sub Test()
MsgBox VBComponent_Existe("UserForm1") 'modifier le nom
End Sub
Pour accéder au VBAProject 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...
Bonjour Don pépé,

On peut utiliser cette fonction VBA pour tester l'existence d'un VBComponent :
VB:
Function VBComponent_Existe(nom$) As Boolean
On Error Resume Next
VBComponent_Existe = Not IsError(ThisWorkbook.VBProject.VBComponents(nom))
End Function
Tester en exécutant cette macro :
Code:
Sub Test()
MsgBox VBComponent_Existe("UserForm1") 'modifier le nom
End Sub
Pour accéder au VBAProject 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+
 
Bonjour Don Pépé, bonjour le forum,

Peut-être comme ça :

VB:
Sub Macro1()
Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée)
Dim C As Object 'déclare la variable C (Composant)
Dim TEXT As String 'déclare la variable TEXT
Dim TEST As Boolean 'déclare la variable TEST

'définit la boîte d'entrée BE
BE = Application.InputBox("Taper le nom de l'UserForm à vérifier.", "Vérifier l'existence d'une UserForm", Type:=2)
If BE = False Or BE = "" Then Exit Sub 'si bouton [Annuler] ou non renseignée, sort de la procédure
For Each C In ActiveWorkbook.VBProject.VBComponents 'boucle sur tous les composants de ce classeur
    'si le nom du composant est identique à BE (tous les deux convertis en Majuscules), définit la variable TEST, sort de la boucle
    If UCase(C.Name) = UCase(BE) Then TEST = True: Exit For
Next C 'prochain composant de la boucle
'définit la variable TEXT
TEXT = IIf(TEST = True, "Cette UserForm existe dans ce classeur !", "Cette UserForm n'existe pas dans ce classeur !")
MsgBox TEXT 'affiche TEXT
End Sub
 
Bonjour,
pour ce qui me concerne bricolé les autorisation d'accès à VBProject constitue une faille de sécurité que je franchis jamais!

j'ai repris le concept de Job75
VB:
Sub Test()
MsgBox VBComponent_Existe("UserForm1") 'modifier le nom
End Sub.
Function VBComponent_Existe(nom$) As Boolean
On Error Resume Next
VBComponent_Existe = Not IsError(UserForms.Add(nom$))
On Error GoTo 0
End Function

de Robert à Robert, je comprends ta position quand il s'agit du On Error!

sur un autre forum ou nous sévissions tous les deux on ce serait fais massacré pour cette utilisation du On Error!

s'ache qu'en dot.net c'est une utilisation fréquente!

il me s'emble pour ma part qu'il faut s'affranchir des dogme!
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2019 User Form
Réponses
9
Affichages
328
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
376
Réponses
118
Affichages
2 K
Réponses
2
Affichages
323
Réponses
6
Affichages
152
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…