Utilisation de \"setfocus\"

  • Initiateur de la discussion Initiateur de la discussion Skud
  • 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 !

S

Skud

Guest
Bonsoir tout le monde,

Voilà, je n'avance que très lentement sur mon projet de formulaire, voir içi :

http://www.excel-downloads.com/forums/2-171966-creation-un-formulaire-et-vba.htm#172074
En ce moment je suis en train d'essayer de vérifier les saisies dans les textbox et en utilisant la fonction 'setfocus', lorsqu'il y a une variable (soit plusieurs textbox), je ne sais pas comment faire.

Voilà la partie qui me pose problème :

For i = 1 To 8
If Not IsNumeric('textbox' & i) Then
MsgBox 'Il faut une valeur numérique'
'textbox' & i.SetFocus
Exit Sub
End If
Next i

Par quoi faut il que je remplace : 'texbox' & i ?

J'en profite pour vous demander un 'énorme' coup de main sur le reste de mes problèmes si vous avez un peu de temps à me consacrer.

Merci de votre aide et Merci à Pat1545. 😉

Ci joint mon fichier avec mes 'avancée'

[file name=Skud1.zip size=19235]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Skud1.zip[/file]

Message édité par: skud, à: 29/05/2006 21:53
 

Pièces jointes

Re:Utilisation de "setfocus"

Merci MichelXld. 😉

Cela marche impeccable.

Si ce n'est pas trop te demander, peux-tu me dire comment faire pour avoir le nom de la textbox concernée dans le message qui s'affiche et/ou avoir la valeur à corriger sélectionnée (surlignée.)

Merci.
 
Re:Utilisation de "setfocus"

rebonsoir Skud

je ne suis pas sur d'avoir bien compris mais tu peux tester cette adaptation


For i = 1 To 8
If Not IsNumeric(Controls('Textbox' & i).Value) Then
MsgBox 'Vous devez modifier le ' & Controls('Textbox' & i).Name
Controls('Textbox' & i).SetFocus

With Controls('Textbox' & i)
.SetFocus
.SelStart = 0
.SelLength = Len(Controls('Textbox' & i).Text)
End With

Exit Sub

End If
Next i





bonne soirée
MichelXld
 
Re:Utilisation de "setfocus"

Désolé de ne pas avoir été très clair... 😱

En tous cas c'est exactement ce que je souhaitais faire, donc c'est impec' !

Par contre je rencontre un autre problème...

Je ne peux pas utiliser le '.' du clavier numérique pour les nombres décimaux :ermm:

Y'a t il une solution ?

Et, encore désolé si j'abuse, mais comment peut- on faire pour que la valeur par défaut du calendrier soit la date du jour ?

Encore merci de ton aide. 😉
 
Re:Utilisation de "setfocus"

Pour la date du calendrier j'ai trouvé la réponse en faisant une recherche... :whistle:

Il fallait inscrire :

Private Sub UserForm_Initialize()
Calendar1.Value = Date
End Sub

En revanche je n'ai pas encore trouvé pour les décimaux.
 
Re:Utilisation de "setfocus"

Bonjour MichelXld,

Je pense que le lien que tu m'as indiquer correspond à ce que je souhaite. Cependant, je n'arrive pas à l'appliquer à mon fichier... il faut dire que 'j'utilise' le vba depuis deux semaines seulement ! 😱

Une petite aide serait vraiment la bienvenue.

Encore merci de ta patience. [file name=Skud2.zip size=23819]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Skud2.zip[/file]
 

Pièces jointes

Re:Utilisation de "setfocus"

Ca y est, j'ai réussi à le faire pour une textbox ! Je l'appliquerai de la même manière pour les autres.

En revanche cela me pose un autre problème ! Car en remplacant le point par une virgule, ma cellule devient du texte et je ne peux plus faire mes calculs avec...

Si quelqu'un peut m'aider.

Merci. [file name=Skud3.zip size=20631]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Skud3.zip[/file]
 

Pièces jointes

Re:Utilisation de "setfocus"

Bonjour Dull,
Merci de m'apporter ton aide. 😉

J'ai une question bête, mais où dois je mettre : Val(UF1.Textbox6.Value) ???

Je suis plus que novice en vba...

Voilà ce que j'ai pour la textbox actuellement :

Private Sub Textbox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Chr(KeyAscii) = '.' Then KeyAscii = Asc(',')
End Sub

J'ai essayé de le placer juste avant le End sub, mais cela n'a rien donné.
 
Re:Utilisation de "setfocus"

re Skud

dans ton Private Sub CommandButton1_Click()
vers la fin de ton code tu as

Cells(Last, 10).Value = UF1.Textbox6.Value
Cells(Last, 11).Value = UF1.Textbox7.Value
Cells(Last, 12).Value = UF1.Textbox8.Value

cela deviendra

Cells(Last, 10).Value = Val(UF1.Textbox6.Value)
Cells(Last, 11).Value = Val(UF1.Textbox7.Value)
Cells(Last, 12).Value = Val(UF1.Textbox8.Value)

J'espère que c'est ce que tu demande
 
Re:Utilisation de "setfocus"

Merci Dull c'est exactement cela que je voulais ! 😉

Sais-tu, à tout hasard et si je n'abuse pas de ton temps, comment faire pour obliger un certain nombre de chiffres après la virgule ?

Par exemple, je voudrais que l'opérateur saisisse : 45,14% et non pas 45,1% ou 45,148%
 
Re:Utilisation de "setfocus"

Re re skud

Ajoute ces lignes dans les Propriétés de ton Userform

Code:
Private Sub Textbox6_AfterUpdate()
Textbox6.Value = Format(Textbox6.Value, '00.00')
End Sub

Fait de même pour tes autres TextBox

Bon Courage
 
Re:Utilisation de "setfocus"

Merci Dull,

En jouant avec le code que tu m'as donné et 'maxlength' j'arrive à ce que je souhaitais.
C'est impeccable.

Maintenant il faut que je réussisse à protéger un peu tout cela.

En effet j'aimerais que lors de l'ouverture du fichier un premier userform s'ouvre et qu'en fonction du choix, la personne puisse avoir accès ou non aux données.
(Voir fichier word joint)

En plus j'ai un message d'erreur si je veux faire plusieurs saisies à la suite:
'Erreur d'éxécution 400'
Fichier déjà affiché, affichage modal impossible.


Est-e que je peux encore t'embéter??? 😱 [file name=Skud5.zip size=39106]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Skud5.zip[/file]
 

Pièces jointes

- 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

Retour