Format tbox vers Feuil excel vba
Résolu/Fermé
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
-
10 mai 2012 à 03:50
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 13 mai 2012 à 20:53
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 13 mai 2012 à 20:53
A voir également:
- Format tbox vers Feuil excel vba
- Liste déroulante excel - Guide
- Telecharger format factory - Télécharger - Conversion & Codecs
- Format apfs - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
10 réponses
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 238
11 mai 2012 à 09:07
11 mai 2012 à 09:07
Bonjour,
J'ai du mal à tester car bizarrement chez moi, et que sur ton fichier, il refuse format() dans le code (???)
Déjà je dégagerais ces 2 lignes du début
'resultat = Format(resultat, "0.00%")
'resultat = Replace(resultat, ",", ".")
qui ne servent à rien car pas à l'affichage.
je l'ajouterai à la fin sur :
TextBox25.Value = Format(resultat2, "#.00%")
TextBox25.Value = Replace(TextBox25, ",", ".")
et d'autre part dans le code Cmdok_click je mettrai :
.Cells(lign, 89) = (TextBox16.Value)/100
eric
J'ai du mal à tester car bizarrement chez moi, et que sur ton fichier, il refuse format() dans le code (???)
Déjà je dégagerais ces 2 lignes du début
'resultat = Format(resultat, "0.00%")
'resultat = Replace(resultat, ",", ".")
qui ne servent à rien car pas à l'affichage.
je l'ajouterai à la fin sur :
TextBox25.Value = Format(resultat2, "#.00%")
TextBox25.Value = Replace(TextBox25, ",", ".")
et d'autre part dans le code Cmdok_click je mettrai :
.Cells(lign, 89) = (TextBox16.Value)/100
eric
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 238
Modifié par eriiic le 11/05/2012 à 17:15
Modifié par eriiic le 11/05/2012 à 17:15
Re,
dans ma textbox j'ai toujours un nombres avec plusieurs décimales
tu peux la formater comme tu faisais au début du code avec :
TextBox25.Value = Format(resultat2, "#.00%")
TextBox25.Value = Replace(TextBox25, ",", ".")
Pour que ça soit écrit la bonne chose dans ma feuille info j'ai du faire /100 * 100
Ce n'est pas normal, si ta valeur est 23.xxx pour mettre la cellule au format % tu dois y mettre 0.23xxxx
D'autant plus que c'est correct chez moi lors des tests.
les données de ma combobox 8 (Fournisseur dans frame scierie) ne s'affichent plus dans ma feuil info colonne 8 (H)..
Si elle se met bien, mais tu l'effaces avec :
.Cells(lign, col2) = (TextBox8.Value)
col2=8
Au passage lorsque tu déclares :
Dim col1, col2, col3, col4, col5 As Integer
seule col5 est integer, les autres sont variant. A corriger...
eric
dans ma textbox j'ai toujours un nombres avec plusieurs décimales
tu peux la formater comme tu faisais au début du code avec :
TextBox25.Value = Format(resultat2, "#.00%")
TextBox25.Value = Replace(TextBox25, ",", ".")
Pour que ça soit écrit la bonne chose dans ma feuille info j'ai du faire /100 * 100
Ce n'est pas normal, si ta valeur est 23.xxx pour mettre la cellule au format % tu dois y mettre 0.23xxxx
D'autant plus que c'est correct chez moi lors des tests.
les données de ma combobox 8 (Fournisseur dans frame scierie) ne s'affichent plus dans ma feuil info colonne 8 (H)..
Si elle se met bien, mais tu l'effaces avec :
.Cells(lign, col2) = (TextBox8.Value)
col2=8
Au passage lorsque tu déclares :
Dim col1, col2, col3, col4, col5 As Integer
seule col5 est integer, les autres sont variant. A corriger...
eric
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 238
10 mai 2012 à 09:44
10 mai 2012 à 09:44
et si tu précisais le nom de la macro, où elle se trouve et les lignes en cause...
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
Modifié par lanetmel le 10/05/2012 à 18:48
Modifié par lanetmel le 10/05/2012 à 18:48
Bonjour
merci de me répondre!
Alors pour mon problème de format c'est dans mon usf : Reception
Dans ma Sub : Sub Combobox10_change
C'est là que je fais mon calcul
Private Sub Combobox10_change()
Dim mpmp As Currency
Dim totaltransport As Currency
Dim prixmpmp As Currency
Dim resultat, resultat2 As Currency
resultat = Format(resultat, "0.00%")
resultat = Replace(resultat, ",", ".")
If TextBox25 > 0 Then
If TextBox16 = "" Then
mpmp = TextBox26.Value / 1000
totaltransport = TextBox25.Value
resultat = totaltransport / mpmp
TextBox16.Value = resultat
TextBox16.Enabled = False
End If
End If
If TextBox16 > 0 Then
If TextBox25 = "" Then
mpmp = TextBox26.Value / 1000
prixmpmp = resultat
resultat2 = prixmpmp * resultat
TextBox25.Value = resultat2
End If
End If
End Sub
ensuite je vais écrire dans ma feuille infos la réponse via la sub :
Private Sub Cmdok_click()
avec cette ligne :
.Cells(lign, 89) = (TextBox16.Value)
.Cells(lign, 89).NumberFormat = "#.##%" ' avec un point ici et pas une virgule
J'espère que c'est ce dont tu avais besoin.. Hésite pas à me dire dans le cas contraire!
encore merci
Mélanie
merci de me répondre!
Alors pour mon problème de format c'est dans mon usf : Reception
Dans ma Sub : Sub Combobox10_change
C'est là que je fais mon calcul
Private Sub Combobox10_change()
Dim mpmp As Currency
Dim totaltransport As Currency
Dim prixmpmp As Currency
Dim resultat, resultat2 As Currency
resultat = Format(resultat, "0.00%")
resultat = Replace(resultat, ",", ".")
If TextBox25 > 0 Then
If TextBox16 = "" Then
mpmp = TextBox26.Value / 1000
totaltransport = TextBox25.Value
resultat = totaltransport / mpmp
TextBox16.Value = resultat
TextBox16.Enabled = False
End If
End If
If TextBox16 > 0 Then
If TextBox25 = "" Then
mpmp = TextBox26.Value / 1000
prixmpmp = resultat
resultat2 = prixmpmp * resultat
TextBox25.Value = resultat2
End If
End If
End Sub
ensuite je vais écrire dans ma feuille infos la réponse via la sub :
Private Sub Cmdok_click()
avec cette ligne :
.Cells(lign, 89) = (TextBox16.Value)
.Cells(lign, 89).NumberFormat = "#.##%" ' avec un point ici et pas une virgule
J'espère que c'est ce dont tu avais besoin.. Hésite pas à me dire dans le cas contraire!
encore merci
Mélanie
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
10 mai 2012 à 18:49
10 mai 2012 à 18:49
Pour ce qui est de mon 2ème point :
Toutjours dans usf :Réception
Sub : Private Sub Cmdok_click()
ligne :
.Cells(lign, 8) = (ComboBox8.Value)
merci
Toutjours dans usf :Réception
Sub : Private Sub Cmdok_click()
ligne :
.Cells(lign, 8) = (ComboBox8.Value)
merci
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 238
11 mai 2012 à 00:53
11 mai 2012 à 00:53
J'ai un pb, 'projet ou bibliothèque introuvable' pour Format() dans resultat = Format(resultat, "0.00%")
Je ne peux aller plus loin, sans mettre en commentaire cette ligne.
Par contre tu aurais pu préciser le libellé de la combobox, là on est obligé de les cliquer une par une pour trouver que c'est 'Transporteur'.
Liste vide chez moi...
De plus précise TOUTES les saisies à faire pour que ça tourne.
Il n'aime pas que TextBox26 soit vide et j'en ai marre de tatonner, je ne la trouve pas...
eric
Je ne peux aller plus loin, sans mettre en commentaire cette ligne.
Par contre tu aurais pu préciser le libellé de la combobox, là on est obligé de les cliquer une par une pour trouver que c'est 'Transporteur'.
Liste vide chez moi...
De plus précise TOUTES les saisies à faire pour que ça tourne.
Il n'aime pas que TextBox26 soit vide et j'en ai marre de tatonner, je ne la trouve pas...
eric
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
11 mai 2012 à 04:01
11 mai 2012 à 04:01
Bonjour eriiic
Je te remercie de prendre le temps de m'aider
Je te joins le fichier à nouveau et quand tu exécuteras mon usf (réception)
j'ai indiquer en libellé ce qu'il faut mettre dans les cases afin que que ça fonctionne
et le Textbox26
Espérant que c'est ce que tu avais besoin
en te remerciant à l'avance
Mélanie
https://www.cjoint.com/?BEleannFncL
Je te remercie de prendre le temps de m'aider
Je te joins le fichier à nouveau et quand tu exécuteras mon usf (réception)
j'ai indiquer en libellé ce qu'il faut mettre dans les cases afin que que ça fonctionne
et le Textbox26
Espérant que c'est ce que tu avais besoin
en te remerciant à l'avance
Mélanie
https://www.cjoint.com/?BEleannFncL
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
11 mai 2012 à 16:13
11 mai 2012 à 16:13
Bonjour
Je sais pas trop ce qui s'est passé.. J'ai envoyé une réponse et elle a disparue... en tout cas pas grave, je recommence!
Premièrement merci beaucoup pour ton aide.
J'ai mis les lignes de format à la fin dans ma sub Combobox change
dans ma textbox j'ai toujours un nombres avec plusieurs décimales mais ce n'est pas grave, je peux vivre avec..
Pour que ça soit écrit la bonne chose dans ma feuille info j'ai du faire /100 * 100
je ne comprends pas mais ça fonctionne!
.Cells(lign, 89) = (TextBox16.Value) / 100 * 100
Alors merci! ça c'est règlé
Pour mon 2ème problème as-tu une idée?
Aussi je sais pas pourquoi ça ne fonctionne plus car ça fonctionnais avant,
les données de ma combobox 8 (Fournisseur dans frame scierie) ne s'affichent plus dans ma feuil info colonne 8 (H)..
via sub cmdok click
.Cells(lign, 8) = (ComboBox8.Value)
Toutes les autres fonctionne sauf celle là.. des idées?
encore merci c'est vraiment apprécié
Mélanie
Je sais pas trop ce qui s'est passé.. J'ai envoyé une réponse et elle a disparue... en tout cas pas grave, je recommence!
Premièrement merci beaucoup pour ton aide.
J'ai mis les lignes de format à la fin dans ma sub Combobox change
dans ma textbox j'ai toujours un nombres avec plusieurs décimales mais ce n'est pas grave, je peux vivre avec..
Pour que ça soit écrit la bonne chose dans ma feuille info j'ai du faire /100 * 100
je ne comprends pas mais ça fonctionne!
.Cells(lign, 89) = (TextBox16.Value) / 100 * 100
Alors merci! ça c'est règlé
Pour mon 2ème problème as-tu une idée?
Aussi je sais pas pourquoi ça ne fonctionne plus car ça fonctionnais avant,
les données de ma combobox 8 (Fournisseur dans frame scierie) ne s'affichent plus dans ma feuil info colonne 8 (H)..
via sub cmdok click
.Cells(lign, 8) = (ComboBox8.Value)
Toutes les autres fonctionne sauf celle là.. des idées?
encore merci c'est vraiment apprécié
Mélanie
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
11 mai 2012 à 23:29
11 mai 2012 à 23:29
Bonjour Éric
mon format dans ma textbox : 2 décimales : règlé
merci beaucoup
le format de la même donnée dans ma feuille info : règlé
encore merci!
J'ai changé mon type de variable tel que tu me l'a conseillé
:)
Pour ce qui est de mon 2ème problème, je ne comprends pas ce que tu veux dire...
Si elle se met bien, mais tu l'effaces avec :
.Cells(lign, col2) = (TextBox8.Value)
col2=8
Et là je viens de remarquer que si j'empli toutes les cases de mon usf, alors le nom de mon fournisseur apparait dans ma feuille excel dans la colonne 8 tel que supposé mais sinon elle reste vide...
Car à moins que je n'aie rien compris (ce qui reste une possibilité) en déclarant mes variables c'est que je dis : selon le choix fait dans ma Combobox : je saute de 3 colonnes à chaque fois en partant à la colonne 11... non? Alors comment col2 pourrait être égale à 8 si selon moi elle peut pas être en bas de 11...
C'est moi qui comprend pas ?
merci à l'avance
MÉlanie
mon format dans ma textbox : 2 décimales : règlé
merci beaucoup
le format de la même donnée dans ma feuille info : règlé
encore merci!
J'ai changé mon type de variable tel que tu me l'a conseillé
:)
Pour ce qui est de mon 2ème problème, je ne comprends pas ce que tu veux dire...
Si elle se met bien, mais tu l'effaces avec :
.Cells(lign, col2) = (TextBox8.Value)
col2=8
Et là je viens de remarquer que si j'empli toutes les cases de mon usf, alors le nom de mon fournisseur apparait dans ma feuille excel dans la colonne 8 tel que supposé mais sinon elle reste vide...
Car à moins que je n'aie rien compris (ce qui reste une possibilité) en déclarant mes variables c'est que je dis : selon le choix fait dans ma Combobox : je saute de 3 colonnes à chaque fois en partant à la colonne 11... non? Alors comment col2 pourrait être égale à 8 si selon moi elle peut pas être en bas de 11...
C'est moi qui comprend pas ?
merci à l'avance
MÉlanie
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 238
Modifié par eriiic le 12/05/2012 à 00:17
Modifié par eriiic le 12/05/2012 à 00:17
Une combobox sans sélection a pour index -1
-1 * 3 + 11 = ?
Il va falloir que tu apprennes le pas à pas, les espions et les points de blocage pour débugguer plus facilement.
Il ne faut faire les écritures que si il y a eu une saisie sur la ligne, et t'assurer que toutes les saisies obligatoires ont été faites.
Eventuellement alerte si il manque une saisie pour guider l'utilisateur...
Et s'il doit tourner sur plusieurs poste il faudrait eclaircir ce mystère : format() ne marche pas chez moi, et QUE sur ton fichier.
Là je t'avoue ne pas avoir d'idée, mais fait des tests sur plusieurs configurations avant de lancer définitivement le truc.
eric
-1 * 3 + 11 = ?
Il va falloir que tu apprennes le pas à pas, les espions et les points de blocage pour débugguer plus facilement.
Il ne faut faire les écritures que si il y a eu une saisie sur la ligne, et t'assurer que toutes les saisies obligatoires ont été faites.
Eventuellement alerte si il manque une saisie pour guider l'utilisateur...
Et s'il doit tourner sur plusieurs poste il faudrait eclaircir ce mystère : format() ne marche pas chez moi, et QUE sur ton fichier.
Là je t'avoue ne pas avoir d'idée, mais fait des tests sur plusieurs configurations avant de lancer définitivement le truc.
eric
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
12 mai 2012 à 00:33
12 mai 2012 à 00:33
Bonjour Éric,
merci beaucoup. Je sais que je ne connais pas assez les bases.. il faudrait que je me trouve un livre qui explique bien du début à la fin (une brique).. Ce que l'on trouve sur internet aide beaucoup mais ce n'est souvent que des bouts et souvent trop avancé pour moi... Il y a tellement de façon d'écrire les choses et il faut connaitre les bons mots ce qui me manque souvent.. Néamoins les gens comme toi aide énormément et je te remercie.. Je vais continuer de chercher et quand j'aurai trouvé, je metterai mon post résolu
encore merci
MÉlanie
merci beaucoup. Je sais que je ne connais pas assez les bases.. il faudrait que je me trouve un livre qui explique bien du début à la fin (une brique).. Ce que l'on trouve sur internet aide beaucoup mais ce n'est souvent que des bouts et souvent trop avancé pour moi... Il y a tellement de façon d'écrire les choses et il faut connaitre les bons mots ce qui me manque souvent.. Néamoins les gens comme toi aide énormément et je te remercie.. Je vais continuer de chercher et quand j'aurai trouvé, je metterai mon post résolu
encore merci
MÉlanie
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 238
12 mai 2012 à 06:58
12 mai 2012 à 06:58
Mais je t'ai dis le pourquoi ça efface ta valeur :
Une combobox sans sélection a pour index -1
Tu mets :
col2 = (ComboBox5.ListIndex * 3) + 11
Donc si pas de sélection dans ComboBox5 col2 = -1 * 3 + 11 = 8
eric
Une combobox sans sélection a pour index -1
Tu mets :
col2 = (ComboBox5.ListIndex * 3) + 11
Donc si pas de sélection dans ComboBox5 col2 = -1 * 3 + 11 = 8
eric
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
Modifié par lanetmel le 13/05/2012 à 20:35
Modifié par lanetmel le 13/05/2012 à 20:35
Bonjour Eric,
merci! grâce à toi j'ai trouvé une solution. J'ai mis la ligne à la fin pour mon fournisseur.
Tu m'as dit que ma combobox avait une valeur de -1 si elle était vide.. et que j'effaçais ma donnée déjà entrée...
Je sais que quand toutes les cases sont emplies, tout ce met à la bonne place.. Alors au lieu d'emplir mon fournisseur en premier et qu'il s'efface par la suite.. J'ai mis ma combobox en premier alors si elle est vide elle ne met rien dans ma feuille info et si elle est remplie les données vont à la bonne place et après j'ai mis le code pour emplir ma colonne 8.
Alors maintenant ça fonctionne!
merci beaucoup!
Mélanie
merci! grâce à toi j'ai trouvé une solution. J'ai mis la ligne à la fin pour mon fournisseur.
Tu m'as dit que ma combobox avait une valeur de -1 si elle était vide.. et que j'effaçais ma donnée déjà entrée...
Je sais que quand toutes les cases sont emplies, tout ce met à la bonne place.. Alors au lieu d'emplir mon fournisseur en premier et qu'il s'efface par la suite.. J'ai mis ma combobox en premier alors si elle est vide elle ne met rien dans ma feuille info et si elle est remplie les données vont à la bonne place et après j'ai mis le code pour emplir ma colonne 8.
Alors maintenant ça fonctionne!
merci beaucoup!
Mélanie
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 238
13 mai 2012 à 20:53
13 mai 2012 à 20:53
Bonjour,
Pas très propre tout ça, et pas rigoureux du tout. Tu t'exposes a des déconvenues...
Ce que je te disais au post 10 :
Il ne faut faire les écritures que si il y a eu une saisie sur la ligne, et t'assurer que toutes les saisies obligatoires ont été faites.
Eventuellement alerte si il manque une saisie pour guider l'utilisateur...
Mais bon, c'est toi qui voit....
eric
Pas très propre tout ça, et pas rigoureux du tout. Tu t'exposes a des déconvenues...
Ce que je te disais au post 10 :
Il ne faut faire les écritures que si il y a eu une saisie sur la ligne, et t'assurer que toutes les saisies obligatoires ont été faites.
Eventuellement alerte si il manque une saisie pour guider l'utilisateur...
Mais bon, c'est toi qui voit....
eric