[VBA] : Nombres provenant de textBox dynamiques
Résolu
anton26
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
anton26 Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
anton26 Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un programme me permettant de rentrer des notes à l'aide de textBox créées dynamiquement en fonction de la quantité souhaitée. Lorsque je renvoie ces valeurs sur ma feuille excel, mes nombres sont considérés comme du texte. Ainsi,si je souhaite calculer une moyenne c'est impossible. Comment pourrais-je transformer ces valeurs en nombres sachant que ce sont des textBox dynamiques ?
Merci
J'ai un programme me permettant de rentrer des notes à l'aide de textBox créées dynamiquement en fonction de la quantité souhaitée. Lorsque je renvoie ces valeurs sur ma feuille excel, mes nombres sont considérés comme du texte. Ainsi,si je souhaite calculer une moyenne c'est impossible. Comment pourrais-je transformer ces valeurs en nombres sachant que ce sont des textBox dynamiques ?
Merci
A voir également:
- [VBA] : Nombres provenant de textBox dynamiques
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
5 réponses
Bonjour Messieurs,
Mr Lermitte222,
Excusez l'incruste...
Si tu utilises ce code pour transférer les textbox dans ta feuille :
il "suffit" de :
1- tester si la saisie dans le contrôle est bien numérique
2- si oui, transformer le contenu du textbox (bien qu'étant composé de nombres, un textbox est toujours "string") en Double si décimale (je penses que s'agissant de notes, on aura des ,5 ou des moyennes à un moment donné. Non?)
Restera, après, le problème d'erreur de saisie de l'utilisateur (point au lieu de virgule et/ou l'inverse...)
En effet, le séparateur décimal peux, selon s'il est utilisé ou non, faire que votre note saisie dans le textbox soit ou non considérée comme décimale.
Le cas échéant on peux utiliser Replace, comme ceci :
Mr Lermitte222,
Excusez l'incruste...
Si tu utilises ce code pour transférer les textbox dans ta feuille :
Worksheets("trimestre 1").Cells(CtrlIndex + 9, 1).Value = Ctrl.Text
il "suffit" de :
1- tester si la saisie dans le contrôle est bien numérique
2- si oui, transformer le contenu du textbox (bien qu'étant composé de nombres, un textbox est toujours "string") en Double si décimale (je penses que s'agissant de notes, on aura des ,5 ou des moyennes à un moment donné. Non?)
'Test si numérique : If IsNumeric(Ctrl.Text) Then Worksheets("trimestre 1").Cells(CtrlIndex + 9, 1).Value = CDbl(Ctrl.Text) Else MsgBox "pas numérique" End If
Restera, après, le problème d'erreur de saisie de l'utilisateur (point au lieu de virgule et/ou l'inverse...)
En effet, le séparateur décimal peux, selon s'il est utilisé ou non, faire que votre note saisie dans le textbox soit ou non considérée comme décimale.
Le cas échéant on peux utiliser Replace, comme ceci :
'remplace le point par une virgule : Ctrl.Text = Replace(Ctrl.Text, ".", ",")
Re,
Dans ta question précédante sur les TextBox créer en dynamique tu parlais du nom des élèves.
C'est toujours la même chose mais avec des nombres ? entier ou décimale ?
Dans ta question précédante sur les TextBox créer en dynamique tu parlais du nom des élèves.
C'est toujours la même chose mais avec des nombres ? entier ou décimale ?
Re,
@ Heliotte bonjour, Ton principe est le bon
@anton26 Version2 qui prend les deux Texte et nombre
A+
@ Heliotte bonjour, Ton principe est le bon
@anton26 Version2 qui prend les deux Texte et nombre
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question