Excel VBA - Worksheet_SelectionChange

Résolu
mcou -  
pijaku Messages postés 13513 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

3 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
    1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Pas mal le message pijaku !
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Merci!
      J'suis sur que tu utilises ce genre de messages de temps à autres avec les collègues.
      0
    3. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      C'est possible oui !
      0
    4. 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
    5. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  2. 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
  3. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    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
    1. mcou
       
      Cela fonctionne parfaitement !
      Merci beaucoup :)

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