ourir une userform suivant condition

  • Initiateur de la discussion Initiateur de la discussion pralo
  • Date de début Date de début

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 !

pralo

XLDnaute Junior
bonjour le forum
j'ai besoin de votre aide
pas très doué en code
suivant l'exemple sur le fichier joint, je voudrais ouvrir une userform en double cliquant dans une cellule
ca fonctionne sur les colonne D et G mais pas sur la colonne J
et c'est la que mes compétence s'arrête
merci pour votre aide
 

Pièces jointes

Bonsoir le fil, le forum

@pralo
Ainsi modifié, qu'est-ce que cela donne sur ton PC?
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim a As Range, b As Range, c As Range
Set a = [D11,D14,D17,D20,D23,D26,D29,D32,D35]
Set b = [G11,G14,G17,G20,G23,G26,G29,G32,G35]
Set c = [J11,J14,J17,J20,J23,J26,J29,J32,J35]
If Not Application.Intersect(Target, Union(a, b, c)) Is Nothing Then 'si la cellule selectionne est en dehors,sort de la procedure
UserForm1.Show
Cancel = True
End If
If Not Application.Intersect(Target, _
Union([D12,D13,D15,D16,D18,D19,D21,D22,D24,D25,D27,D28,D30,D31,D33,D34,D36,D37], _
[G12,G13,G15,G16,G18,G19,G21,G22,G24,G25,G27,G28,G30,G31,G33,G34,G36,G37], _
[J12,J13,J15,J16,J18,J19,J21,J22,J24,J25,J27,J28,J30,J31,J33,J34,J36,J37])) Is Nothing Then 'si la cellule selectionne est en dehors, sort de la procedure
UserForm2.Show
Cancel = True
End If
End Sub
NB: J'ai mis deux possibilité de syntaxe, a toi de voir celle que tu préfères 😉
 
Re


@pralo
Fais ce test
Sur un classeur vierge, insères deux userforms
Puis colle ce code dans la feuille 1
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lignes, sengil
If Target.Column = 4 Or Target.Column = 7 Or Target.Column = 10 Then
lignes = Array(12, 13, 15, 16, 18, 19, 21, 24, 25, 27, 28, 30, 31, 33, 34, 36, 37)
sengil = Array(11, 14, 17, 20, 23, 29, 32, 35)
If Not IsError(Application.Match(Target.Row, lignes, 0)) Then
UserForm1.Show
End If
If Not IsError(Application.Match(Target.Row, sengil, 0)) Then
UserForm2.Show
End If
End If
End Sub
Chez moi, l'userform 1 ou 2 s'affiche selon tes critères de choix (et ce en colonnes D,G ou J, selon les lignes référencées dans les tableaux lignes et sengil)
 
- 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
38
Affichages
756
Réponses
5
Affichages
197
Réponses
5
Affichages
386
Retour