Forcer la saisie de nombre vba excel
Résolu
nounoursboy
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Bonjour,
Je fais une petite macro dans excel et j'ai un petit souci...
Je souhaite controler la saisie de ce qui est tapé dans une inputbox.
voici le code qui me permet à l'utilisateur de saisir du "texte" (au sens large cad des nombres egalement) et de mettre cette saisie dans la case A1
Cells(1, 1).Value = InputBox(Message, Title, Default, 100, 100)
Et voici une facon (je doute que ce soit a faire dans mon cas) de vérifier que ce qui est tapé dans une case correspond à uin format choisit ici dans ce cas un nombre décimal compris entre -1000 et +1000
With Cells(1, 1).Validation
.Delete
.Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween, Formula1:="-1000", Formula2:="1000"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Saisisez un nombre"
.ErrorTitle = "ERREUR"
.InputMessage = "Nombre"
.ErrorMessage = "Ceci n'est pas un nombre"
.ShowInput = True
.ShowError = True
End With
Mais cette "validation" ne fonctionne que je tape "manuellement" quelque chose dans la case A1 et donc je peux encore mettre n'importe quoi dans mon inputbox il n'y aura pas d'erreur....
Voilà j'espère avoir été clair, merci pour votre aide....
Bonjour,
Je fais une petite macro dans excel et j'ai un petit souci...
Je souhaite controler la saisie de ce qui est tapé dans une inputbox.
voici le code qui me permet à l'utilisateur de saisir du "texte" (au sens large cad des nombres egalement) et de mettre cette saisie dans la case A1
Cells(1, 1).Value = InputBox(Message, Title, Default, 100, 100)
Et voici une facon (je doute que ce soit a faire dans mon cas) de vérifier que ce qui est tapé dans une case correspond à uin format choisit ici dans ce cas un nombre décimal compris entre -1000 et +1000
With Cells(1, 1).Validation
.Delete
.Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween, Formula1:="-1000", Formula2:="1000"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Saisisez un nombre"
.ErrorTitle = "ERREUR"
.InputMessage = "Nombre"
.ErrorMessage = "Ceci n'est pas un nombre"
.ShowInput = True
.ShowError = True
End With
Mais cette "validation" ne fonctionne que je tape "manuellement" quelque chose dans la case A1 et donc je peux encore mettre n'importe quoi dans mon inputbox il n'y aura pas d'erreur....
Voilà j'espère avoir été clair, merci pour votre aide....
A voir également:
- Forcer la saisie de nombre vba excel
- Forcer demarrage pc - Guide
- Forcer la reinitialisation pc - Guide
- Forcer la suppression d'un fichier - Guide
- Nombre de jours entre deux dates excel - Guide
- Liste déroulante excel - Guide
4 réponses
bonjour
regarde dans l'aide de InputBox : tu peux filtrer le type de valeur saisie
par exemple pour un nombre tu aurais :
à plus
regarde dans l'aide de InputBox : tu peux filtrer le type de valeur saisie
par exemple pour un nombre tu aurais :
MonNombre = Application.InputBox(prompt:="Entrez un nombre", Type:=1)
à plus
Bonsoir,
il faut que tu boucles sur la saisie tant que les condition ne sont pas respectées.
Par exemple :
eric
il faut que tu boucles sur la saisie tant que les condition ne sont pas respectées.
Par exemple :
Sub test() Dim r As String r = "999999" While CLng(r) > 1000 Or CLng(r) < -1000 r = InputBox("Message", "Title", Default, 100, 100) Wend [A1].Value = CLng(r) End Sub
eric