Excel VBA - Worksheet_SelectionChange

Résolu
mcou -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'aimerais savoir s'il est possible d'avertir l'utilisateur par une message box "don't touch" lorsque celui-ci est situé en cellule U1.

Dans cette cellule s'y trouve une formule. Je ne veut pas verrrouiller la cellule et c'est pourquoi je souhaite que dès que l'utilisateur est situé dans cette cellule une fenêtre apparait.

J'ai pensé à faire ça à partir d'une private sub Worksheet_SelectionChange
Mais cela me fait une boucle.

Mon idée de code :

If Range("U1") = Target.Address Then
MsgBox "pas le droit de changer"
End If


auriez-vous une idée ?
Merci d'avance
A voir également:

3 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,
Essaye ceci, convainquant et efficace :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$U$1" Then Target.Offset(1, 0).Select: MsgBox "Touche pas à ça p'tit con!", vbCritical
End Sub
1
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Pas mal le message pijaku !
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Merci!
J'suis sur que tu utilises ce genre de messages de temps à autres avec les collègues.
0
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
C'est possible oui !
0
mcou
 
Euh... l'utilisateur final est le chef du département, les managers et l'assistante (qui est ma tutrice) de mon lieu de stage !!
Je pense que je vais rester sur le "Attention ! " ^^

Par contre, dans mon autre macro je fais une copie de cette cellule. Cela ne va pas générer de problème de mettre cette condition dans Private Sub ?
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Deux possibilités :
La "pas bonne" : ==> marchera pas !
Range("U1").Select
Range("U1").Copy
Range("A1").Select
Selection.Paste

La "Bonne" :
With Range("U1")
    .Copy Range("A1")
End With
0
mcou
 
Donnée supplémentaire au problème :
ma cellule m'est utile dans une autre macro puisque je l'utilise pour effectuer un copier-coller.
0
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Bonjour,

en gros, ce que tu veux, ce que quand quelqu'un clique sur la cellule U1, un message apparaisse, et on sélectionne ensuite une autre cellule ?

Alors essaie ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = "$U$1" Then
MsgBox "pas le droit de changer"
Cells(2, 21).Select
End If

End Sub


Cordialement.
0
mcou
 
Cela fonctionne parfaitement !
Merci beaucoup :)

Comme quoi... parfois un ptit coup de pouce c'est toujours bien !
0