Affiche l'un des USERFORM en fonction valeur

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

  • TEST AFFICHE USERFORM.xlsm
    19.7 KB · Affichages: 42

Robert

XLDnaute Barbatruc
Repose en paix
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
 

jp14

XLDnaute Barbatruc
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
 

Lone-wolf

XLDnaute Barbatruc
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:

Discussions similaires

Réponses
5
Affichages
259

Statistiques des forums

Discussions
312 672
Messages
2 090 768
Membres
104 660
dernier inscrit
abdelazizasma