Pas d'évènement "Click" lié au (Worksheet) ??

Bonjour,

Je remarque que la liste d'évènements du worksheet ne propose pas d'évènement "Click" ...??,

En fait, le principe : je dois cliquer sur une cellule (B4 et B9) pour afficher le userform correspondant , j'ai donc utilisé le "SelectionChange"

mais je m'aperçois dès que l'on referme le userform et que l'on reclique à nouveau sur la même cellule (B4 ou B9) le user form n'apparait pas ;il faut alors bien sûr cliquer sur une autre cellule et revenir sur la précédente pour que le userform apparaisse de nouveau.

J'ai utilisé le "SelectionChange" qui était le plus approprié à ce que je souhaitais faire mais ce n'est pas l'idéal...:-((

Il existe d'autres évènements (DoubleClick, Activate, ....) mais comment faire apparaitre par un simple évènement (Click sur la cellule ) pour que la fenêtre s'affiche à chaque click ?

Merci.

10invitations.xlsm (49.03 Ko)

Bonjour,

je ne suis pas spécialiste du VBA mais pourriez mettre le code dans un module (et pas sur la feuille) et associer la macro à un bouton placé où vous voulez sur la feuille. Et là chaque clic sur le bouton devrait lancer la macro.

Bonjour RaphaelXYZ ,

Si l'adresse de la cellule est correct (pour afficher un Userform), sélectionner une cellule qui ne déclenche aucune action. Par exemple si B4 alors sélectionner B3, si B9 alors sélectionner B8. Il y aura bien une deuxième entrée dans "SelectionChange" (récursivité) mais comme la nouvelle sélection ne sera ni B4 et ni B9, on ressortira de la procédure "SelectionChange" sans avoir rien fait pour continuer la première procédure "SelectionChange".

Une autre manière est d'entourer le select par Application.EnableEvents = False: Target.Offset(-1).Select: Application.EnableEvents = True. Dans ce cas, le select ne provoque pas la récursivité.

Voir le code avec les deux manières :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim I As Long, j As Long, Valeur As Integer

On Error GoTo fin
If Target.Count > 1 Then Exit Sub
' ListBox des CENTRES triés par noms
If Not Intersect(Target, [b4]) Is Nothing Then
   UserForm1.Liste.List = Sheets("CENTRE").Range("A1:A" & Sheets("CENTRE").[A10000].End(xlUp).Row).Value
   With UserForm1.Liste
      For I = 0 To .ListCount - 1
         For j = 0 To .ListCount - 1
            If .List(I) < .List(j) Then
               temp = .List(I)
               .List(I) = .List(j)
               .List(j) = temp
            End If
         Next j
      Next I
   End With
   Target.Offset(-1).Select
   UserForm1.Show
End If

' ListBox des THEATRES triés par noms
If Not Intersect(Target, [b9]) Is Nothing Then
   UserForm2.Liste.List = Sheets("BASE").Range("A1:A" & Sheets("BASE").[A10000].End(xlUp).Row).Value
   With UserForm2.Liste
      For I = 0 To .ListCount - 1
         For j = 0 To .ListCount - 1
            If .List(I) < .List(j) Then
               temp = .List(I)
               .List(I) = .List(j)
               .List(j) = temp
            End If
         Next j
      Next I
   End With
   Application.EnableEvents = False: Target.Offset(-1).Select: Application.EnableEvents = True
   UserForm2.Show
End If
fin:
End Sub

MERCI bcp MaFRAISE, !!! cela fonctionne impec !!!, tu es vraiment THE KING of VBA :-0

Rechercher des sujets similaires à "pas evenement click lie worksheet"