Le code ci-dessous est actif s'il s'agit d'un clic sur une cellule qui n'est pas actuellement sélectionnée,
si je clic sur la cellule active alors le code ne s'exécute pas.
Pourriez-vous m'indiquer comment le corriger de façon à ce qu'il s'exécute à chaque clic sur cellule de la colonne B ou C avec un message distinct selon qu'il s'agit de la colonne B ou de la Colonne C sur lequel est fait le clic ?
Actuellement je n'ai qu'un seul message et je voudrais qu'il s'adapte selon que le clic provient de la colonne B ou de la colonne C.
Merci
Le code du clic
Code:
Public WithEvents groupebouton As Msforms.CommandButton
Private Sub groupebouton_Click()
ActiveCell.Value = CDate(groupebouton.Caption & "/" & UserForm1.TextBox2 & "/" & UserForm1.TextBox1)
Unload UserForm1
End Sub
Voici le code pour le message (unique pour le moment, à doubler selon pour traiter évènement sur clic en colonne B ou en colonne C)
[/code]
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If MsgBox("Voulez-vous enregistrer ou modifier la date d'entrée ?", 36, "Confirmation") = vbYes Then
UserForm1.Top = ActiveCell.Top + 100
UserForm1.Left = ActiveCell.Offset(0, 1).Left + 25
UserForm1.Show
End If
End Sub
[/Code]
Si le clic est fait sur la colonne B ce code convient par contre pour la colonne C
je voudrais afficher :
"Voulez-vous enregistrer ou modifier la date de sortie ?"
et je voudrais empêcher l'affichage du formulaire si le clic n'est pas fait en colonne B ou colonne C
Re : Correction pour activation de macro sur clic cellule
Bonjor fb62840,
Modifie ton code comme ceci:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Column
Case 2: typ = " d'entrée "
Case 3: typ = " de sortie "
Case Else: typ = ""
End Select
If typ = "" Then Exit Sub
If MsgBox("Voulez-vous enregistrer ou modifier la date" & typ & "?", 36, "Confirmation") = vbYes Then
UserForm1.Top = ActiveCell.Top + 100
UserForm1.Left = ActiveCell.Offset(0, 1).Left + 25
UserForm1.Show
End If
End Sub
Par contre, il n'est pas possible de détecter un simple "Click" sur une feuille de calcul et l'événement "SelectionChange" n'est actif qu'une seule fois. Par contre, tu peux recopier ce code dans l'événement "BeforeDoubleClick", ainsi si tu veux réafficher ton formulaire dans une cellule active il te suffira de double-cliquer. Autre solution avec clic droit ("BeforeRightClick").