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

Affiche l'un des USERFORM en fonction valeur

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 !

chris6999

XLDnaute Impliqué
Bonjour le FORUM

J'affiche des USERFORM sur un double clic dans la colonne P.
Comment dire au système d'afficher un USERFORM précis en fonction de la valeur de la colonne N même ligne.
Dans mon exemple si dans N valeur1 alors affiche userform1
Si valeur 2 alors affiche userform2

J'ai essayé avec ça mais j'ai un bug et je ne vois pas trop ce qui cloche
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'si double clic dans la colonne 16
If Target.Column = 16 Then
'si valeur dans la colonne N = VALEUR1 alors userform1
If Range("N" & ThisRow).Value = "VALEUR1" Then Userform1.Show
'sinon userform 2
Userform2.Show
End If
End Sub

Merci d'avance pour votre aide
Bonne journée à tous
 

Pièces jointes

Bonjour Chris, bonjour le forum,

Essie comme ça :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'si double clic dans la colonne 16
If Target.Column = 16 Then
    Cancel = True 'évite le mode [Édition] lié au double-clic
    'si valeur dans la colonne N = VALEUR1 alors userform1
    If Range("N" & Target.Row).Value = "VALEUR1" Then
        Userform1.Show
    Else
        Userform2.Show
    End If
End If
End Sub
 
Bonjour Chris, Robert

Un autre code
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'si double clic dans la colonne 16
If Target.Column = 16 Then
'si valeur dans la colonne N = VALEUR1 alors userform1
If Target.Offset(0, -2) = "VALEUR1" Then
Userform1.Show
ElseIf Target.Offset(0, -2) = "VALEUR2" Then
Userform2.Show
End If
End If
End Sub

A tester

JP14
 
Bonjour Chris 🙂, Robert🙂, le Forum 🙂

EDIT: bonjour jp 🙂
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Frm

If Not Intersect(Target, Range("n2:n10")) Is Nothing And Target.Count = 1 Then
'En colonne N, juste 1  - 2
If IsEmpty(Target) Then Exit Sub

Frm = "UserForm" & Target.Value
VBA.UserForms.Add(Frm).Show
End If
End Sub
 
Dernière édition:
Bonjour le fil, bonjour le forum,

Excellent ton code Lone-Wolf, juste une petite erreur :

Frm = "UserForm" & Right(Target.Value, 1) à la place de Frm = "UserForm" & Target.Value
 
- 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

Réponses
4
Affichages
243
Réponses
8
Affichages
467
Réponses
3
Affichages
193
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…