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

ourir une userform suivant condition

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

  • Menu entreprise - Copie.xlsm
    126.6 KB · Affichages: 19

Staple1600

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

pralo

XLDnaute Junior
bonsoir staple
d'abord merci pour ta réponse rapide
j'ai mis ton code sur mon fichier en colonne D et G pas de souci
mais en colonne J
seul de J32 à J37 fonctionne
merci encore pour ton aide
 

Staple1600

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

Discussions similaires

  • Résolu(e)
Microsoft 365 Taille UserForm
Réponses
3
Affichages
355
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…