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:
- 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
466
Réponses
3
Affichages
193
Retour