besoin d'aide pour MsgBox avec vbAbortRetryIgnore

rh.finances

XLDnaute Junior
bonsoir chers internautes Exceliens!

je me permets d'envoyer un message sur ce forum car je bute sur un point technique concernant les actions possible avec le module VbAbortRetryIgnore d'un Msgbox.
(à noter que je suis pas très fort en VB)

pour illustrer mon propos, j'ai joint un fichier au présent envoi.

en indiquant par exemple le chiffre 7 en F2, la macro MsgBox s'affiche pour signaler une erreur. le code de cette macro est le suivant:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("erreur_epargne").Value > 0 Then
Select Case MsgBox("opération impossible", vbAbortRetryIgnore + vbExclamation, "Erreur détectée")

Case vbAbort
End

Case vbRetry

Case vbIgnore
Exit Sub

End Select

End If

End Sub

C'est tout ce que j'ai réussi à faire pour l'instant.

mon souhait serait que les cases VbAbort et VbRetry fonctionnent de la même façon que les messages d'erreur que l'on trouve dans "validation de données".

ainsi, avec la case VbAbort, F2 devrait redevenir vide si la case était vide avant la saisie de cette cellule ou conserver la valeur qui était la sienne avant la saisie de la cellule si une valeur était indiquée.

avec la case VbRetry, F2 serait sélectionné automatiquement pour être resaisi.

enfin, avec la case VbIgnore, je souhaiterais qu'elle fonctionne comme si, en utlisant une "validation de données", on répondrait oui au message d'avertissement "Voulez vous continuer?", c'est à dire valider la saisie et ne plus avoir le Msgbox d'erreur.
est il possible également dans ce cas de modifier la couleur de la valeur pour que celle-ci apparaisse en rouge par exemple?

je souhaiterais que cela puisse fonctionner sur toute la colonne F du tableau c'est à dire de F2 à F17.

j'espère que mes explications ont été suffisamment claires.

si une chère âme charitable pouvait m'aiguiller, ce serait vraiment très sympa :)

d'avance merci beaucoup

Alex
 

Pièces jointes

  • test gestionnaire.xls
    60 KB · Affichages: 85

kjin

XLDnaute Barbatruc
Re : besoin d'aide pour MsgBox avec vbAbortRetryIgnore

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Si on a droit à un message avant même d'avoir saisi quoi que ce soit ça va être coton...

Peux tu nous expliquer quelle difference tu vois entre VbAbort et VbRetry puisque dans les 2 cas c'est la valeur initiale qui sera réaffichée, ce qui annule l'opération
En admettant que l'utilisateur puisse forcer la saisie d'une valeur erronée (mais dans ce cas faut-il indiquer "opération impossible" ?!) pourquoi alors ne pas juste afficher un message informant l'utilisateur !?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F2:F17")) Is Nothing And Target <> 7 Then
    If MsgBox("Erreur détectée" & vbLf & "Voulez-vous continuer ?", _
            vbOKCancel + vbCritical) = 2 Then
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
    End If
End If
End Sub
A+
kjin
 

rh.finances

XLDnaute Junior
Re : besoin d'aide pour MsgBox avec vbAbortRetryIgnore

Bonjour Kjin, bonjour à tous les internautes de ce site.

Merci beaucoup Kjin pour ton aide et le code proposé. Les fonctionnalités de la Msgbox sont très bien.
en ce qui concerne, Vbabort, c'est en effet la valeur initiale qui doit etre réaffichée.
Vbretry, en revanche, devrait conserver la valeur eronnée et mettre la cellule en surbrillance afin de permettre la resaisie (ce que permet la msgbox qui s'affiche lorsque l'on utilise le module de validation de données sur Excel)

pour être plus précis sur le déclenchement de la Msgbox et la construction du tableau Excel:
lorsque je saisie une valeur dans la colonne F (exemple: 7), une formule de concaténation des valeurs contenues dans les colonnes E et F (ex: octobre7) se déclenche dans la colonne G.
en fait, c'est lorsque la valeur inscrite en colonne G est différente de la lite des valeurs référencées en Z2:Z16 que la Msgbox doit se déclencher.
en revanche, retranscire cela en langage VB est, pour le profane que je suis, une grande interrogation.

encore merci et bonne soirée

Alex
 

Discussions similaires

Réponses
7
Affichages
521

Statistiques des forums

Discussions
312 192
Messages
2 086 056
Membres
103 110
dernier inscrit
Privé