Msgbox si modification cellule non vide

MathieuB03

XLDnaute Nouveau
Bonjour à tous,

J'essaye de taper un code qui affiche une msgbox pour avertir l'utilisateur qu'il modifie une cellule non vide.

Sachant que j'ai une mise en forme conditionnelle qui fait que si la cellule est vide la couleur est jaune clair (index couleur 36), mais si l'utilisateur tape une valeur (lettre chiffre ou date) dans cette cellule, la couleur devient blanche.

Le code que j'essaye de taper (je débute...) dit que si la cellule target est de couleur différente de l'index 36, alors il affiche la msgbox. Le souci est qu'avec la mise en forme conditionelle, ça ne fonctionne pas (mais je tiens à garder la mise en forme conditionnelle décrite ci-dessus), et même si l'index couleur = 36 la msgbox apparait.

J'ai mis un fichier un exemple. Pensez-vous avoir une solution ?

De plus j'aimerais que si la réponse à la question est "non", la cellule ne soit pas modifiée.


Je vous remercie d'avance pour l'aide ou les pistes que vous pourrez m'apporter!

Mathieu
 

Pièces jointes

  • Exemple.xlsm
    21.5 KB · Affichages: 41
  • Exemple.xlsm
    21.5 KB · Affichages: 45
  • Exemple.xlsm
    21.5 KB · Affichages: 42

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Msgbox si modification cellule non vide

Bonjour Mathieu,

Le code-couleur d'une cellule reste toujours le même, même si celle-ci passe par toutes les couleurs de l'arc.en ciel (par MFC)

Il te faudra tester le contenu de la cellule (vide ou non-vide)

À+
Philippe
 

MathieuB03

XLDnaute Nouveau
Re : Msgbox si modification cellule non vide

Merci Philippe pour ta réponse.

J'ai également essayé en testant le contenu de la cellule, en mettant "If Target.Value <> "" Then" avant " If Not Intersect(Target, Range("a1:d10")) Is Nothing Then".

Mais j'ai le même souci: la msgbox apparait même si la cellule est vide au départ...

Je ne vois pas comment faire.

Merci pour votre aide

Mathieu
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Msgbox si modification cellule non vide

Re,

remplacer la macro existante par celle-ci
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target <> "" Then
  If MsgBox("Etes-vous sûr de vouloir modifier la cellule?", vbYesNo) = vbNo Then
  MsgBox "Cellule non modifiée"
  Exit Sub
  End If
  Target = InputBox("Entrez le nouveau contenu de la cellule")
End If
End Sub

à+
Philippe
 
Dernière édition:

MathieuB03

XLDnaute Nouveau
Re : Msgbox si modification cellule non vide

Merci Phillippe!

Juste encore une chose, j'aimerais que la msgbox apparaisse si l'utilisateur entre dans la cellule (par F2 ou double clic), ou fait un coller dedans (en gros s'il y a tentative de modification, quelque soit la sorte). Je ne souhaite pas qu'elle apparaisse quand l'utilisateur fait juste un clic sur la cellule..

Je ne sais pas si je suis très clair...

Encore merci pour ton aide

Mathieu
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Msgbox si modification cellule non vide

Re,

voici ce qui concerne le dbl-clic

par contre, tester si la touche F2 a été pressée, je ne vois pas comment faire
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target <> "" Then
  If MsgBox("Etes-vous sûr de vouloir modifier la cellule?", vbYesNo) = vbNo Then
  MsgBox "Cellule non modifiée"
  Exit Sub
  End If
  Target = InputBox("Entrez le nouveau contenu de la cellule")
End If
End Sub

à+
Philippe
 

MathieuB03

XLDnaute Nouveau
Re : Msgbox si modification cellule non vide

ok, merci pour tes solutions Philippe.
Dans un premier temps je vais retenir le code que tu avais proposé avant (car avec ce dernier si la celulle est modifiée directement la msgbox n'apparait pas).

Si quelqu'un a une alternative, je suis preneur.
Encore merci en tout cas!

Mathieu
 

Discussions similaires

Réponses
12
Affichages
226

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia