Userform et validation des données de cellule

Bonjour à tous,

je suis nouveau sur le forum, et j'aurai besoin d'aide SVP,

j'utilise Excel 2007 et J'ai créé un clavier numérique virtuel en VBA pour remplir une cellule qui est pourvu de limites "comprises entre" appliquées dans la validation des données de cette cellule avec un message d'erreur si hors limites. Hors, lorsque je valide la saisie de mon clavier virtuel tout se passe bien ma cellule prend la saisie mais les limites de validation des données de la cellule ne sont pas prises en compte. comment puis-je faire pour que ces limites soient prises en compte? j'espère avoir été clair dans mon explication, Merci à vous d'avance.

Bonjour,

Voici un exemple de mon fichier

bonjour

pour le point il faut mettre Val

ActiveCell = Val(Me.Result)

A+

Maurice

Merci d'avoir répondu Maurice,

mais je ne comprend pas très bien, tu parle du point du pavé numérique? Si c'es le cas, j'ai fait la modif dans le VBA et je n'est toujours pas les limites de validation des données prises en compte.

Ou alors je n'est pas compris ce que tu m'à envoyé.

Désolé.

De plus j'aurais aimé savoir si je pouvait appliquer ce pavé à plusieurs cellules si c'est possible? Merci d'avance

bonjour

voila mes modifes

Private Sub Valide_Click()
If Me.Result <> "" Then
'  ActiveCell = CCur(Me.Result)
  ActiveCell = Val(Me.Result)
  ActiveCell.NumberFormat = ""
Else
  ActiveCell = ""
End If
Me.Result = ""
ActiveCell.Offset(1).Activate
Unload Calculette
End Sub

Private Sub Result_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Empêche des saisies non numériques (au clavier)
If InStr("1234567890.", Chr(KeyAscii)) = 0 Or InStr(Result.Value, ".") <> 0 And Chr(KeyAscii) = "." Then KeyAscii = 0: Beep
'Select Case KeyAscii
'Case Is < 48, Is > 57
'    KeyAscii = 0
'End Select
End Sub

A+

Maurice

Vraiment désoler Maurice mais ça ne marche pas. Je suis un peu novice en la matière, ce pavé je l'ai trouvé sur la toile puis je l'ai remanié avec certaines modifications pour convenir à mon projet et j'avoue qu'il y a certaines commandes qui m'échappe.

Merci pour ton aide.

Je bûche complet.

rebonjour tout le monde,

je suis toujours sur le même sujet, et je voudrais cette fois ci plutôt que de respecter la validation des données je voudrais insérer une valeur mini et maxi (genre mini 50 et maxi 100 au résultat de mon clavier numérique avec un message qui s'affiche si elles ne sont pas respectées.

Merci d'avance pour votre aide.

Bonjour tout le monde

je viens vous redemander de l'aide toujours pour le même problème sachant que je me suis rendu compte que la validation des données de ma cellule ne se déclenche pas car sa valeur est le résultat d'une formule par ma Userform.

Chose que j'ai appris in n'y a pas longtemps.

Quelqu'un saurait il comment intégrer en VBA les limites max et mini de ma cellule à ma Userform avec un message d'erreur pour empêcher une saisie incorrecte, et que je puisse récupérer la valeur initiale de ma cellule en cas de mauvaise saisie (hors des limites)?

J’espère que je suis assez clair dans mes explications.

J'ai déjas visiter plusieurs forum mais aucune des solutions proposées ne conviennent réellement.

Je ne suis pas très fort en VBA voir même nul, j'apprend au fur et à mesure, mais je suis sur que ça peut être possible.

Vous avez l'air d'être fort sur ce site, pouvez vous m'aider SVP?

Merci d'avance

Cordialement.

Bonjour Eddy,

Ci-joint une petite modification ... à tester ...

En espèrant que cela t'aide ...

Merci beaucoup James.

Tu ma bien dépanné. J'était vraiment bloqué.

T un bon.

C'est un très bon site, g bien fait de m'inscrire, malheureusement mes connaissance sont très limitées pour pouvoir aider les autres.

Mais avec le temps on apprend beaucoup de choses.

Sans vouloir abusé, J'aurais encore 2 choses à te demander ou à celui qui voudras m'aider.

Es ce que que l' on peut réessayer une saisie plutôt que de fermer la userform en cas de saisie incorrect?

J'aurais aussi voulu pouvoir récupérer la valeur de ma cellule dans la textbox de ma userform à son ouverture et dés que je tape un chiffre elle s'efface pour laisser place aux nouvelles données.

Encore merci d'avoir pris le temps de m'aider.

Cordialement.

Eddy

Bonjour,

Content que cela puisse t'aider ...

Ci-joint ton fichier avec les deux modifications demandées ...

Merci ... pour tes remerciements ...

Bonjour et Merci pour ta réponse James.

J'ai des petits soucis avec les modifs que tu a fait sur le formulaire.

Concernant la première modif:

Lorsque la userform s'ouvre, la valeur de la cellule s'affiche bien dans la textbox mais lorsque je commence à saisir d'autre chiffres ils se rajoutent à la valeur et ne l'efface pas, je voudrai savoir si l'on peut faire effacer cette valeur en saisissant d'autres données.

et concernant la deuxième modif:

lorsque je saisi des données incorrectes la userform ne se ferme pas (ça c'est bon) mais lorsque je saisi des données correctes elles ne se ferme pas non plus alors qu'elle devrai se fermer (c'est la que je bûche). Je vais essayer de résoudre ces petits soucis, si tu peut essayer d'y jeter un oeil de ton coté se serait sympa de ta part.

Et merci encore à toi de me donné un coup de main.

Cordialement

Eddy

Bonjour,

Première modification

je voudrais savoir si l'on peut faire effacer cette valeur en saisissant d'autres données

Dis-moi pourquoi tu as demandé à ce que la valeur s'affiche ... pour tout de suite l'effacer ...

Correction dans le fichier joint ...

Deuxième modification

lorsque je saisis des données correctes la UserForm ne se ferme pas non plus

Correction dans le fichier joint ...

En espèrant que cette version corresponde à ton attente ...

Pour la deuxième modif, j'ai modifier le code et sa marche:

Private Sub Valide_Click()

If Me.Result <> "" And CLng(Me.Result.Value) >= [E2] And CLng(Me.Result.Value) <= [F2] Then

ActiveCell = CCur(Me.Result)

ActiveCell.NumberFormat = ""

ActiveCell.Offset(1).Activate

Unload Calculette

Else

ActiveCell = "": MsgBox "Merci de saisir un Nombre entre " & [E2] & " et " & [F2], 0, vbNullString

Me.Result = ""

End If

End Sub

Et pour la première modif je n'ai pas eu le temps de me pencher dessus. A suivre

Bonjour,

Comme tu peux le voir dans le dernier fichier posté ...

Si tu veux faire de nouvelles modifications...

A l'ouverture : Private Sub UserForm_Initialize()

A la fermeture : Private Sub Valide_Click()

bonjour James,

excuse moi pour hier je n'est pas vu ton message avant que je post le mien, dsl.

En fait je voudrais récupérer la valeur de la cellule à l'ouverture de ma userform, car sur mon fichier final, ma cellule est masquée par ma userform (que je ne peux pas déplacer) cela permet de se rappeler sa valeur et aussi en cas de fermeture de ma userform sans entrer de données cela permet de ne pas laisser un blanc dans la cellule (équivalent à une donnée de "0") ,qui n'est pas possible dans mon fichier.

j'espère que tu vas comprendre ce que je veux dire, je sais pas trop comment te l'expliquer.

encore merci à toi.

A+

Salut Eddy,

Je dois t'avouer que très sincèrement je ne comprends pas ta contrainte ...

Cela dit ...est ce que la modification jointe te convient ...???

Bonjour

je pense que tu complique les choses

j'ais fait un Userform avec une combobox a voir

A+

Maurice

Alors en fait le soucis, c'est que lorsque je saisi une donnée incorrecte la texbox subit un raz après le messagebox.

A ce moment la, si l'on ferme la userform par le bouton croix, la cellule n'a pris aucune valeur (Vide, donc "0") alors que cette cellule ne doit pas être à zero puisque des données de graphique y sont rattachées.

La cellule doit obligatoirement avoir un résultat compris entre 50 et 100 sinon le graphique va dans tous les sens.

Je sais pas si c'est possible de faire ca?

cordialement.

Rechercher des sujets similaires à "userform validation donnees"