Bonjour
> 1.
à compléter avec ce que tu as déjà comme conditions
le CInt(.Value) <> CDbl(.Value) permet de vérifier qu'on entre des
valeurs entières (il y a d'autres manières de faire)
Private Sub Txtdate_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Txtdate
If Not IsNumeric(.Value) _
Or .Value <1982 100 Or .Value < 2034 _
Or CInt(.Value) <> CDbl(.Value) Then
MsgBox "Indiquez une valeur entre 1982 et 2034"
.SelStart = 0
.SelLength = Len(.Text)
Cancel = True
End If
End With
End Sub
> 2.
il te suffit de mettre
madate= cint(txtdate.value)
ce qui transformera ton champ texte (ce qui est dans un TEXTbox est
toujours du texte tant que tu ne changes pas ) en une valeur numérique
> 3.
intercepte l'erreur : tu mets tous ces tests dans l'événement exit de
tes textbox voir au N°1
> 4.
pas compris.
Pour l'ordre de saisie, voir dans VBE : affichage, ordre de tabulation.
Il te permet de définir l'ordre de sélection des élements de ton fo rmulaire.
Bonjour
> 1.
à compléter avec ce que tu as déjà comme conditions
le CInt(.Value) <> CDbl(.Value) permet de vérifier qu'on entre des
valeurs entières (il y a d'autres manières de faire)
Private Sub Txtdate_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Txtdate
If Not IsNumeric(.Value) _
Or .Value <1982 100 Or .Value < 2034 _
Or CInt(.Value) <> CDbl(.Value) Then
MsgBox "Indiquez une valeur entre 1982 et 2034"
.SelStart = 0
.SelLength = Len(.Text)
Cancel = True
End If
End With
End Sub
> 2.
il te suffit de mettre
madate= cint(txtdate.value)
ce qui transformera ton champ texte (ce qui est dans un TEXTbox est
toujours du texte tant que tu ne changes pas ) en une valeur numérique
> 3.
intercepte l'erreur : tu mets tous ces tests dans l'événement exit de
tes textbox voir au N°1
> 4.
pas compris.
Pour l'ordre de saisie, voir dans VBE : affichage, ordre de tabulation.
Il te permet de définir l'ordre de sélection des élements de ton fo rmulaire.
Bonjour
> 1.
à compléter avec ce que tu as déjà comme conditions
le CInt(.Value) <> CDbl(.Value) permet de vérifier qu'on entre des
valeurs entières (il y a d'autres manières de faire)
Private Sub Txtdate_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Txtdate
If Not IsNumeric(.Value) _
Or .Value <1982 100 Or .Value < 2034 _
Or CInt(.Value) <> CDbl(.Value) Then
MsgBox "Indiquez une valeur entre 1982 et 2034"
.SelStart = 0
.SelLength = Len(.Text)
Cancel = True
End If
End With
End Sub
> 2.
il te suffit de mettre
madate= cint(txtdate.value)
ce qui transformera ton champ texte (ce qui est dans un TEXTbox est
toujours du texte tant que tu ne changes pas ) en une valeur numérique
> 3.
intercepte l'erreur : tu mets tous ces tests dans l'événement exit de
tes textbox voir au N°1
> 4.
pas compris.
Pour l'ordre de saisie, voir dans VBE : affichage, ordre de tabulation.
Il te permet de définir l'ordre de sélection des élements de ton fo rmulaire.
**Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Cet événement se produit lorsque tu appuies sur une touche du clavier .
Le caractère que représente la touche du clavier s'inscrit seulement au
moment de relâcher la touche enfoncée. La variable "KeyAscii" repré sente
la valeur Ascii du caractère de la touche enfoncé par l'usager.
Les chiffres 0 à 9 ont les valeurs ascii de 48 à 57
0 -> 48 , 1 -> 49, 2 ->50 etc...
L'événement "KeyPress" est intéressant car il permet d'intercepter quel
caractère va être ajouté au textbox avant que ce caractère soit s aisi.
En utilisant des conditions "Si", on peut tester la valeur du caractère ascii
de la touche enfoncée par l'usager et décider si on accepte ce caract ère
ou non. On peut même le modifier en modifiant la valeur de la variable KeyAscii.
La procédure utilise la technique du "Select Case" pour analyser les 4
positions possibles (année -> 4 chiffres) où peut se situer le curseu r
Position 0 -> le curseur est à l'extrême gauche dans le textbox
Position 1 -> Le curseur est immédiatement après le premier caract ère
la même chose pour la postions 2 et 3
la position du curseur dans la chaîne de caractère du textbox.
est donnée par la ligne de code suivante : P = Me.TextBox1.SelStar t
Tout le reste, représente des conditions qui testent si la valeur accep table
en fonction de la position du curseur compte tenu du critère de base d éterminé
par l'année du début (dans l'exemple 1900) et l'année de fin (2299)
En position 0, seules les caractères 1 et 2 sont acceptables
en position 1, seules les caractères 0, 1 et 2 sont acceptables
en position 2 et 3, tous les chiffres sont acceptables.
Ce cheminement n'est pas obligatoire... mais cela démontre que tu as la
possibilité de "contrôler" la latitude que tu laisses à l'usager.
;-))
Amuse toi bien !
**Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Cet événement se produit lorsque tu appuies sur une touche du clavier .
Le caractère que représente la touche du clavier s'inscrit seulement au
moment de relâcher la touche enfoncée. La variable "KeyAscii" repré sente
la valeur Ascii du caractère de la touche enfoncé par l'usager.
Les chiffres 0 à 9 ont les valeurs ascii de 48 à 57
0 -> 48 , 1 -> 49, 2 ->50 etc...
L'événement "KeyPress" est intéressant car il permet d'intercepter quel
caractère va être ajouté au textbox avant que ce caractère soit s aisi.
En utilisant des conditions "Si", on peut tester la valeur du caractère ascii
de la touche enfoncée par l'usager et décider si on accepte ce caract ère
ou non. On peut même le modifier en modifiant la valeur de la variable KeyAscii.
La procédure utilise la technique du "Select Case" pour analyser les 4
positions possibles (année -> 4 chiffres) où peut se situer le curseu r
Position 0 -> le curseur est à l'extrême gauche dans le textbox
Position 1 -> Le curseur est immédiatement après le premier caract ère
la même chose pour la postions 2 et 3
la position du curseur dans la chaîne de caractère du textbox.
est donnée par la ligne de code suivante : P = Me.TextBox1.SelStar t
Tout le reste, représente des conditions qui testent si la valeur accep table
en fonction de la position du curseur compte tenu du critère de base d éterminé
par l'année du début (dans l'exemple 1900) et l'année de fin (2299)
En position 0, seules les caractères 1 et 2 sont acceptables
en position 1, seules les caractères 0, 1 et 2 sont acceptables
en position 2 et 3, tous les chiffres sont acceptables.
Ce cheminement n'est pas obligatoire... mais cela démontre que tu as la
possibilité de "contrôler" la latitude que tu laisses à l'usager.
;-))
Amuse toi bien !
**Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Cet événement se produit lorsque tu appuies sur une touche du clavier .
Le caractère que représente la touche du clavier s'inscrit seulement au
moment de relâcher la touche enfoncée. La variable "KeyAscii" repré sente
la valeur Ascii du caractère de la touche enfoncé par l'usager.
Les chiffres 0 à 9 ont les valeurs ascii de 48 à 57
0 -> 48 , 1 -> 49, 2 ->50 etc...
L'événement "KeyPress" est intéressant car il permet d'intercepter quel
caractère va être ajouté au textbox avant que ce caractère soit s aisi.
En utilisant des conditions "Si", on peut tester la valeur du caractère ascii
de la touche enfoncée par l'usager et décider si on accepte ce caract ère
ou non. On peut même le modifier en modifiant la valeur de la variable KeyAscii.
La procédure utilise la technique du "Select Case" pour analyser les 4
positions possibles (année -> 4 chiffres) où peut se situer le curseu r
Position 0 -> le curseur est à l'extrême gauche dans le textbox
Position 1 -> Le curseur est immédiatement après le premier caract ère
la même chose pour la postions 2 et 3
la position du curseur dans la chaîne de caractère du textbox.
est donnée par la ligne de code suivante : P = Me.TextBox1.SelStar t
Tout le reste, représente des conditions qui testent si la valeur accep table
en fonction de la position du curseur compte tenu du critère de base d éterminé
par l'année du début (dans l'exemple 1900) et l'année de fin (2299)
En position 0, seules les caractères 1 et 2 sont acceptables
en position 1, seules les caractères 0, 1 et 2 sont acceptables
en position 2 et 3, tous les chiffres sont acceptables.
Ce cheminement n'est pas obligatoire... mais cela démontre que tu as la
possibilité de "contrôler" la latitude que tu laisses à l'usager.
;-))
Amuse toi bien !
J'ai pris en compte la modif de la 4ème ligne que tu as envoyée plus
tard, mais je n'y arrive pas. Si j'ai bien compris, je dois remplacer
tous les "Txtdate" par le nom du textbox qui contiendra la date ? Que
je le change ou pas, ça ne marche pas de toute façon.
2.
il te suffit de mettre
madate= cint(txtdate.value)
ce qui transformera ton champ texte (ce qui est dans un TEXTbox est
toujours du texte tant que tu ne changes pas ) en une valeur numérique
Juste recopié tel quel (en remplaçant "Txtdate") ? et où ? Là aussi,
j'ai fait divers essais mais je n'ai pas du le faire correctement.
3.
intercepte l'erreur : tu mets tous ces tests dans l'événement exit de
tes textbox voir au N°1
Euh là... on verra plus tard, quand j'aurai résolu le point 1.
Ok ? ;-)
4.
pas compris.
Pour l'ordre de saisie, voir dans VBE : affichage, ordre de tabulation.
Il te permet de définir l'ordre de sélection des élements de ton formulaire.
Ca n'était pas clair, et après réflexion, ça ne présenterait aucun
intérêt, donc je laisse tomber : une question de moins !
Merci pour ton aide,
Dominique.
J'ai pris en compte la modif de la 4ème ligne que tu as envoyée plus
tard, mais je n'y arrive pas. Si j'ai bien compris, je dois remplacer
tous les "Txtdate" par le nom du textbox qui contiendra la date ? Que
je le change ou pas, ça ne marche pas de toute façon.
2.
il te suffit de mettre
madate= cint(txtdate.value)
ce qui transformera ton champ texte (ce qui est dans un TEXTbox est
toujours du texte tant que tu ne changes pas ) en une valeur numérique
Juste recopié tel quel (en remplaçant "Txtdate") ? et où ? Là aussi,
j'ai fait divers essais mais je n'ai pas du le faire correctement.
3.
intercepte l'erreur : tu mets tous ces tests dans l'événement exit de
tes textbox voir au N°1
Euh là... on verra plus tard, quand j'aurai résolu le point 1.
Ok ? ;-)
4.
pas compris.
Pour l'ordre de saisie, voir dans VBE : affichage, ordre de tabulation.
Il te permet de définir l'ordre de sélection des élements de ton formulaire.
Ca n'était pas clair, et après réflexion, ça ne présenterait aucun
intérêt, donc je laisse tomber : une question de moins !
Merci pour ton aide,
Dominique.
J'ai pris en compte la modif de la 4ème ligne que tu as envoyée plus
tard, mais je n'y arrive pas. Si j'ai bien compris, je dois remplacer
tous les "Txtdate" par le nom du textbox qui contiendra la date ? Que
je le change ou pas, ça ne marche pas de toute façon.
2.
il te suffit de mettre
madate= cint(txtdate.value)
ce qui transformera ton champ texte (ce qui est dans un TEXTbox est
toujours du texte tant que tu ne changes pas ) en une valeur numérique
Juste recopié tel quel (en remplaçant "Txtdate") ? et où ? Là aussi,
j'ai fait divers essais mais je n'ai pas du le faire correctement.
3.
intercepte l'erreur : tu mets tous ces tests dans l'événement exit de
tes textbox voir au N°1
Euh là... on verra plus tard, quand j'aurai résolu le point 1.
Ok ? ;-)
4.
pas compris.
Pour l'ordre de saisie, voir dans VBE : affichage, ordre de tabulation.
Il te permet de définir l'ordre de sélection des élements de ton formulaire.
Ca n'était pas clair, et après réflexion, ça ne présenterait aucun
intérêt, donc je laisse tomber : une question de moins !
Merci pour ton aide,
Dominique.
dans la fenêtre de code de ton userform en haut tu as deux petits menus
déroulants. Tu sélectionnes celui de ton textboxdate dans celui de
gauche. Dans celui de droite apparaissent les événements que tu peux
intercepter. J'ai choisi de contrôler ici le contenu du textbox quand o n
en sort. Si le contenu est correct on passe au suivant, sinon, on reste
dedans et on recommence.
Si tu veux quelmques tutos sur les userforms pour débuter, tu en
trouveras sur excelabo avec des exemples à télécharger.
Private Sub TextBox_DateDoc_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With TextBox_DateDoc
If Not IsNumeric(.Value) _
Or .Value <1982 100 Or .Value < 2034 _
Or CInt(.Value) <> CDbl(.Value) Then
MsgBox "Indiquez une valeur entre 1982 et 2034"
.SelStart = 0
.SelLength = Len(.Text)
Cancel = True
End If
End With
End Sub
dans la fenêtre de code de ton userform en haut tu as deux petits menus
déroulants. Tu sélectionnes celui de ton textboxdate dans celui de
gauche. Dans celui de droite apparaissent les événements que tu peux
intercepter. J'ai choisi de contrôler ici le contenu du textbox quand o n
en sort. Si le contenu est correct on passe au suivant, sinon, on reste
dedans et on recommence.
Si tu veux quelmques tutos sur les userforms pour débuter, tu en
trouveras sur excelabo avec des exemples à télécharger.
Private Sub TextBox_DateDoc_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With TextBox_DateDoc
If Not IsNumeric(.Value) _
Or .Value <1982 100 Or .Value < 2034 _
Or CInt(.Value) <> CDbl(.Value) Then
MsgBox "Indiquez une valeur entre 1982 et 2034"
.SelStart = 0
.SelLength = Len(.Text)
Cancel = True
End If
End With
End Sub
dans la fenêtre de code de ton userform en haut tu as deux petits menus
déroulants. Tu sélectionnes celui de ton textboxdate dans celui de
gauche. Dans celui de droite apparaissent les événements que tu peux
intercepter. J'ai choisi de contrôler ici le contenu du textbox quand o n
en sort. Si le contenu est correct on passe au suivant, sinon, on reste
dedans et on recommence.
Si tu veux quelmques tutos sur les userforms pour débuter, tu en
trouveras sur excelabo avec des exemples à télécharger.
Private Sub TextBox_DateDoc_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With TextBox_DateDoc
If Not IsNumeric(.Value) _
Or .Value <1982 100 Or .Value < 2034 _
Or CInt(.Value) <> CDbl(.Value) Then
MsgBox "Indiquez une valeur entre 1982 et 2034"
.SelStart = 0
.SelLength = Len(.Text)
Cancel = True
End If
End With
End Sub
> dans la fenêtre de code de ton userform en haut tu as deux petits men us
> déroulants. Tu sélectionnes celui de ton textboxdate dans celui de
> gauche. Dans celui de droite apparaissent les événements que tu peu x
> intercepter. J'ai choisi de contrôler ici le contenu du textbox quand on
> en sort. Si le contenu est correct on passe au suivant, sinon, on reste
> dedans et on recommence.
> Si tu veux quelmques tutos sur les userforms pour débuter, tu en
> trouveras sur excelabo avec des exemples à télécharger.
> Private Sub TextBox_DateDoc_Exit(ByVal Cancel As MSForms.ReturnBoolean)
> With TextBox_DateDoc
> If Not IsNumeric(.Value) _
> Or .Value <1982 100 Or .Value < 2034 _
> Or CInt(.Value) <> CDbl(.Value) Then
> MsgBox "Indiquez une valeur entre 1982 et 2034"
> .SelStart = 0
> .SelLength = Len(.Text)
> Cancel = True
> End If
> End With
> End Sub
> dans la fenêtre de code de ton userform en haut tu as deux petits men us
> déroulants. Tu sélectionnes celui de ton textboxdate dans celui de
> gauche. Dans celui de droite apparaissent les événements que tu peu x
> intercepter. J'ai choisi de contrôler ici le contenu du textbox quand on
> en sort. Si le contenu est correct on passe au suivant, sinon, on reste
> dedans et on recommence.
> Si tu veux quelmques tutos sur les userforms pour débuter, tu en
> trouveras sur excelabo avec des exemples à télécharger.
> Private Sub TextBox_DateDoc_Exit(ByVal Cancel As MSForms.ReturnBoolean)
> With TextBox_DateDoc
> If Not IsNumeric(.Value) _
> Or .Value <1982 100 Or .Value < 2034 _
> Or CInt(.Value) <> CDbl(.Value) Then
> MsgBox "Indiquez une valeur entre 1982 et 2034"
> .SelStart = 0
> .SelLength = Len(.Text)
> Cancel = True
> End If
> End With
> End Sub
> dans la fenêtre de code de ton userform en haut tu as deux petits men us
> déroulants. Tu sélectionnes celui de ton textboxdate dans celui de
> gauche. Dans celui de droite apparaissent les événements que tu peu x
> intercepter. J'ai choisi de contrôler ici le contenu du textbox quand on
> en sort. Si le contenu est correct on passe au suivant, sinon, on reste
> dedans et on recommence.
> Si tu veux quelmques tutos sur les userforms pour débuter, tu en
> trouveras sur excelabo avec des exemples à télécharger.
> Private Sub TextBox_DateDoc_Exit(ByVal Cancel As MSForms.ReturnBoolean)
> With TextBox_DateDoc
> If Not IsNumeric(.Value) _
> Or .Value <1982 100 Or .Value < 2034 _
> Or CInt(.Value) <> CDbl(.Value) Then
> MsgBox "Indiquez une valeur entre 1982 et 2034"
> .SelStart = 0
> .SelLength = Len(.Text)
> Cancel = True
> End If
> End With
> End Sub
Misange est occupée,
Essaie quelque chose comme ceci, tu adaptes
le nom du textbox
Misange est occupée,
Essaie quelque chose comme ceci, tu adaptes
le nom du textbox
Misange est occupée,
Essaie quelque chose comme ceci, tu adaptes
le nom du textbox
"Toujours dans ce champ "Date-doc", mais aussi dans ISBN et Numéro,
je saisis des chiffres dans le userform mais le résultat affiché dans
la table est sous forme texte, même si je paramètre ces colonnes par
'Format de cellule'. Ca ne me gêne pas outre mesure puisque je n'ai
pas de calcul à faire dans ces zones mais le petit triangle qui
annonce l'erreur dans le coin de chaque cellule me dérange beaucoup
lui "
Si tu en as marre, pas de problème !
MERCI !
Dominique
"Toujours dans ce champ "Date-doc", mais aussi dans ISBN et Numéro,
je saisis des chiffres dans le userform mais le résultat affiché dans
la table est sous forme texte, même si je paramètre ces colonnes par
'Format de cellule'. Ca ne me gêne pas outre mesure puisque je n'ai
pas de calcul à faire dans ces zones mais le petit triangle qui
annonce l'erreur dans le coin de chaque cellule me dérange beaucoup
lui "
Si tu en as marre, pas de problème !
MERCI !
Dominique
"Toujours dans ce champ "Date-doc", mais aussi dans ISBN et Numéro,
je saisis des chiffres dans le userform mais le résultat affiché dans
la table est sous forme texte, même si je paramètre ces colonnes par
'Format de cellule'. Ca ne me gêne pas outre mesure puisque je n'ai
pas de calcul à faire dans ces zones mais le petit triangle qui
annonce l'erreur dans le coin de chaque cellule me dérange beaucoup
lui "
Si tu en as marre, pas de problème !
MERCI !
Dominique
Misange est occupée,
Essaie quelque chose comme ceci, tu adaptes
le nom du textbox
Misange est occupée,
Essaie quelque chose comme ceci, tu adaptes
le nom du textbox
Misange est occupée,
Essaie quelque chose comme ceci, tu adaptes
le nom du textbox