Saisie petit code marche pas bien

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 !

eliot raymond

XLDnaute Occasionnel
Bonjour a tous et toutes

J'ai adopter ce petit bout de code ci-dessous que j'ai trouver sur le site qui marche bien, mais je souhaiterais 3 petits trucs en plus si possible.
(1) Autoriser la virgule
(2) L'euro, €
(3) Tester aussi la longueur

Ce petit bout de code ne fonctionne pas correctement, me mets souvent le premier message de la MsgBox ci-dessous longueur va pas bien non plus, et si
j'entre par EX:124,48 € marche pas non plus doit pas aimer quelque chose mais je ne vois pas quoi, un oeil expert saura t'il voir ou ca coince, svp merci bien


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
'-> tribute to Pierrot93
If InStr("0123456789,€", Target.Text) = 0 And Len(Target) < 8 Then
MsgBox "Ne saisir que du numerique", vbExclamation, "Saisie invalide"
Target.ClearContents
Target.Select
End If
End If
End Sub

Ps EXCEL 2007 vista
Merci beaucoup et a vous lire avec plaisir

RAYMOND bonne Après midi
 
Re : Saisie petit code marche pas bien

Salut vbacrumble,

Tout d'abord merci d'avoir regarder le petit programme, mais sur XL 2007 il ne fonctionne pas bien, je l'ai egalement essayer sur un autre PC (fiston) idem comme soucis. Voila Voila

XL2007 et vista

Enfin conseil moi si tu veux bien, j'apprends VBA une autre direction pour meme résultat ???

MERCI beaucoup a te relire
Raymond
 
Re : Saisie petit code marche pas bien

Re


En attendant mieux:


Essayes cette macro

A mettre dans un module standard.
Code:
Sub Macro1()
    With Range("A1:A10").Validation
        .Delete
        .Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _
        :=xlGreater, Formula1:="0"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = "Avertissement"
        .ErrorTitle = "ERREUR"
        .InputMessage = _
        "Caractères autorisées:" & Chr(10) & "Chiffres " & Chr(10) & "Virgule" & Chr(10) & "Symoble >Euro : €"
        .ErrorMessage = "Saisie invalide"
        .ShowInput = True
        .ShowError = True
    End With
End Sub

A+
 
Re : Saisie petit code marche pas bien

RE-Vbacrumble,

Le code proposer ne fonctionne pas non plus, c'est gentil tout de meme il affiche "saisie invalide", et l'info bulle ne lache plus le curseur reste afficher en permanence. Merci pour le code. Le PREMIER code m'allait bien et plus facile pour moi, juste qu'il faut trouver ce pourquoi il cloche, je vais chercher de coté si je peux trouver, te tient informer si je tient le bon bout.

en cas merci beaucoup a plus tard
Raymond
 
Re : Saisie petit code marche pas bien

Bonsoir Raymond, vbacrumble

si tu veux controler que la valeur saisie soit du numérique, valide également pour du motétaire, essaye le code ci dessous :

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Static b As Boolean
If b = True Then Exit Sub
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
    If Not IsNumeric(Target.Value) Or Len(Target) < 8 Then
        MsgBox "Ne saisir que du numerique", vbExclamation, "Saisie invalide"
        b = True
        Target.ClearContents
        b = False
    End If
End If
End Sub

bonne soirée
@+
 
Re : Saisie petit code marche pas bien

RE-Vbacrumble,

Suivi le conseil je connais bien FORMAT pour les cellules j'ai essayer plein de truc mais toujours meme probleme suis a court et larger.
Vais voir ce que je peux faire avec les 2 codes et poursuivre la chasse a l'erreur je vais encore abuser d'excel tant pis.

Merci de m'aider c'est sympa, j'apprécie
a plus Ray
 
Re : Saisie petit code marche pas bien

Bonsoir Pierrot93,

j'ai bien vu et essayer le code sur XL2007 ca merdouille comme je l'explique dans mes reponses precedentes toujours pas trouver quelque chose qui fonctionne correctement avec les chiffres 0-9 la virgule, la longueur et l'euro.

vais reprendre ca des demain car le soir pas trop mon truc

en tout cas merci du coup de main c'est sympa merci bien et bonne soirée

RAYMOND
 
Re : Saisie petit code marche pas bien

Re, bonsoir Pierrot93

Pierrot93
Peux-tu m'expliquer pourquoi cela fonctionne mal ?

If InStr("0123456789,€", Target.Text) = 0 And Len(Target) < 8 Then

Merci.


EDITION : ajout d'un fichier exemple
 

Pièces jointes

Dernière édition:
Re : Saisie petit code marche pas bien

Bonjour Raymon, vbacrumble

Code:
If InStr("0123456789,€", Target.Text) = 0

ce code compare la totalité de la chaîne de caractères contenue dans "target", à la chaîne "0123456789,€".

Cela ne peut renvoyer une position que si dans la cellule tu as un seul caractère et que celui ci est contenu dans la chîne "0123456789,€" ou bien dans ta cellule, une suite comme "345" que l'on retrouve dedans...

Généralement, ce type de code est utilisé pour controler la saisie caractère par caractère, à l'interieur d'un "textbox".

en espérant avoir été clair.

bonne journée
@+
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
748
Réponses
4
Affichages
2 K
Réponses
14
Affichages
2 K
Retour