Excel VBA - Worksheet_SelectionChange

Résolu
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

3 réponses

  1. Modérateur
    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. Contributeur
      Pas mal le message pijaku !
    2. Modérateur
      Merci!
      J'suis sur que tu utilises ce genre de messages de temps à autres avec les collègues.
    3. Contributeur
      C'est possible oui !
    4. 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 ?
    5. Modérateur
      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
  2. Contributeur
    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.
    1. Cela fonctionne parfaitement !
      Merci beaucoup :)

      Comme quoi... parfois un ptit coup de pouce c'est toujours bien !
  3. 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.