macro événementielle

  • Initiateur de la discussion Initiateur de la discussion zenya
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Z

zenya

Guest
Bonjour,

Je désirerais mettreau point une macro événementielle.😕
Celle-ci doit empêcher la saisie de nombres avec plus de deux décimales.Si plus de deux décimales msgbox et effacement de la cellule ou a été saisie ce chiffre.
Les cellules ne sont pas forcément contigues (exemple A1:B7; C3:C9;E15:E25;...), ne sont pas forcément toute remplies et pas en même temps.
J'espère avoir été assez clair pour mon premier message.🙂

Une réponse rapide serait super;😡

Merci
 
Re : macro événementielle

Bonjour à tous,
et Bienvenue à zenya 🙂,

Il n'est, peut-être, pas nécessaire de passer par un macro.

Fais un essai avec les validations...

Si tu n'y arrive pas, après essai et recherches arf, reviens nous voir 🙂

A+
 
Re : macro événementielle

J'ai bien testé dan s validation., mais la zone décimale semble indiquer des "valeurs" de décimales et non un nombre maxi de décimales.
ptet que je ne sais pas m'en servir.

please help
 
Re : macro événementielle

Bonjour à tous

Ci-dessous ma macro , après bien des galères.
certes la formule propsée était correcte mais m'obloigé à la saisir dans toutes les cellules:concernées
Merci à tous

Private Sub Worksheet_Change(ByVal Target As Range)
''remplacer Target par Target
'Sub test()
Dim msg
msg = "attention, le nombre de décimale est supérieur à 2"
'variable n pour Range
Dim n
n = Target

'vérifie que la contenu de la cellule est numérique
If IsNumeric(Target) Then
'variable pour touver la position de la virgule en partant de la droite
Dim droitestvirg
'x = 1
'variable pour trouver si le nombre a une décimale (exemple saisie (,00 alors variablen=5)
Dim estvirg
y = 0


Do
''variable pour trouver la position de la virgule en partant de la droite du nombre (variable n)
'' Dim droite
' ' droite = Right(n, x)
' ' virg = Mid(droite, 1, 1)
y = y + 1
'variable pour trouver s'il existe une ","
droitestvirg = Right(n, y)
estvirg = Mid(droitestvirg, 1, 1)
'vérifie la présence d'une virgule et que le nombre de décimale est = à 2
If estvirg = "," And y = 3 Then
GoTo sortir

End If

'vérifie que le nombre de décimale est = à 3 et le 3éme carctère en partant de la droite n'est pas la virgule
'
If estvirg <> "," And y = 3 Then

Target.ClearContents
GoTo sortir
End If
' vérifie que le nombre de carctère du chiffre est = à y alors pas de décimale donc sortir de la sub
If y = Len(n) Then
GoTo sortir
End If
Loop Until y = Len(n)
End If

sortir:
End Sub
 
Re : macro événementielle

[FONT=&quot]Bonsoir à tous et aux autres
[/FONT]

[FONT=&quot]Si tu veux une macro avec message pour nombre non désiré et effacement de celui-ci (ce que ne fait pas la tienne) regarde le fichier joint.[/FONT]
[FONT=&quot]Il semble que tu ne veuilles pas contrôler les cellules protégées ainsi,donc tes cellules ne seront testées que pour des nombres. Attention toutefois au format ![/FONT]
 

Pièces jointes

Re : macro événementielle

Bonjour,

Merci pour la macro avec le message c'est plus propre, plus pro.
Deux hics si je peux me permettre
Elle (la macro) efface les saisies dans deux cas qu'elle ne devrait pas:
saisie d'un nombre rond, sans décimale, exemple 5
saisie d'un nombre avec une décimale exemple 5,1

Je reste preneur de toutes observations et améliorations.

Merci pour tout
 
Re : macro événementielle

Bonjour à Excel_lent, ou à tous ceux qui pourrait m'aider.
La macro d'Excel_lent fonctionne excellement sauf pour un nombre ou l'entier est égal aux décimales, exemple,
22,22

Merci pour toute aide
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
2
Affichages
900
Mathilde04
M
T
Réponses
6
Affichages
2 K
F
Réponses
5
Affichages
1 K
F
L
Réponses
17
Affichages
2 K
Lancelot
L
J
Réponses
7
Affichages
2 K
jayroom
J
D
Réponses
2
Affichages
3 K
D
L
Réponses
17
Affichages
4 K
LAGUIGUI
L
S
Réponses
7
Affichages
1 K
S
T
Réponses
6
Affichages
2 K
Teteaqueue
T
Retour