vbOKOnly effacer cellule active après clic sur "OK"

Piaf79

XLDnaute Junior
Bonjour à tous,

Dans un code vba à plusieurs conditions, j'ai un déclenchement d'un MsgBox (cf code si-dessous).
Je souhaiterai que la valeur de la cellule active soit effacée quand on clique sur le bouton OK du MsgBox.

Pouvez vous m'aider ?
il me semble qu'il faut utiliser .ClearContents mais je ne sais pas comment le placer dans mon code vba.

Code:
Sub MesPerso(Art, Col)
         MsgBox "La quantité " & Art & " n'est pas respectée pour " & Cells(4, Col) & " " & Cells(3, Col), vbExclamation, "Module de gestion"
End Sub

Merci d'avance pour vos remarques.

Piaf79
 

Iznogood1

XLDnaute Impliqué
Re : vbOKOnly effacer cellule active après clic sur "OK"

Bonjour

VB:
Sub MesPerso(Art, Col)
  MsgBox "La quantité " & Art & " n'est pas respectée pour " & Cells(4, Col) & " " & Cells(3, Col), vbExclamation, "Module de gestion"
  ActiveCell.ClearComments
End Sub
ou pour demander confirmation
VB:
Sub MesPerso(Art, Col)
  If MsgBox("La quantité " & Art & " n'est pas respectée pour " & Cells(4, Col) & " " & Cells(3, Col) & _
              vbCrLf & "Effacer la donnée ?", vbExclamation Or vbQuestion Or vbYesNo, "Module de gestion" = vbYes) Then ActiveCell.ClearComments
End Sub
 

Piaf79

XLDnaute Junior
Re : vbOKOnly effacer cellule active après clic sur "OK"

Bonsoir Iznogood1,
Bonsoir le forum,

J'ai essayé les deux codes que tu m'as transmis mais aucun des deux ne fonction avec mon fichier...
Je n'ai pas de message d'erreur pour le premier mais le chiffre saisi via une liste ne s'efface pas de la cellule active.

Piaf79
 

Iznogood1

XLDnaute Impliqué
Re : vbOKOnly effacer cellule active après clic sur "OK"

En effet, j'ai tapé ClearComments au lieu de ClearContents !

Le bon code est
Code:
Sub MesPerso(Art, Col)
  MsgBox "La quantité " & Art & " n'est pas respectée pour " & Cells(4, Col) & " " & Cells(3, Col), vbExclamation, "Module de gestion"
  ActiveCell.ClearContents
End Sub
ou
Code:
Sub MesPerso(Art, Col)
  If MsgBox("La quantité " & Art & " n'est pas respectée pour " & Cells(4, Col) & " " & Cells(3, Col) & _
              vbCrLf & "Effacer la donnée ?", vbExclamation Or vbQuestion Or vbYesNo, "Module de gestion") = vbYes Then ActiveCell.ClearContents
End Sub
 

Pièces jointes

  • Demo.xlsm
    15.2 KB · Affichages: 39
  • Demo.xlsm
    15.2 KB · Affichages: 40

13GIBE59

XLDnaute Accro
Re : vbOKOnly effacer cellule active après clic sur "OK"

Bonjour tout le monde,

Iznogoud, il me semble que ton code n'obtiendra pas l'effet désiré : en effet, après avoir entré une valeur sur la feuille (touche entrée), on se retrouve une cellule sous la valeur déterminée.L'active cell à supprimer n'est donc pas pas la bonne !
Il faut ajouter un offset :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [D:D]) Is Nothing Then
If Not IsEmpty(Target) And Not IsEmpty(Target.Offset(0, -3)) Then
If Target.Value < Target.Offset(0, -2) Or Target.Value > Target.Offset(0, -1) Then
If MsgBox("La quantité " & Target.Value & " n'est pas respectée pour " & Target.Offset(0, -3).Value & _
vbCrLf & "Effacer la donnée ?", vbQuestion Or vbYesNo, "Module de gestion") = vbYes Then ActiveCell.Offset(-1, 0).ClearContents
End If
End If
End If
End Sub
 

Discussions similaires

Réponses
12
Affichages
569

Statistiques des forums

Discussions
312 220
Messages
2 086 381
Membres
103 199
dernier inscrit
ATS1