cs_zeps2
Messages postés61Date d'inscriptionvendredi 9 novembre 2007StatutMembreDernière intervention28 octobre 2011
-
13 avril 2010 à 00:50
cs_zeps2
Messages postés61Date d'inscriptionvendredi 9 novembre 2007StatutMembreDernière intervention28 octobre 2011
-
6 mai 2010 à 11:37
bonjour à tous,
G juste un p'tit pb avec ma textbox : elle me renvoie ds la cellule désirée un format texte alors que je souhaiterais un format numérique :
Sub CommandButton1_Click()
Dim TextBox1 As Currency
./.....
ActiveCell.Offset(0, 7).Value = credit
"credit" étant ma textbox1.
Qu'elle manip pour retrouver ds ma cellule la valeur numérique tapée ds ma textbox1 plutôt que cette même valeur mais sous format texte ?
cs_zeps2
Messages postés61Date d'inscriptionvendredi 9 novembre 2007StatutMembreDernière intervention28 octobre 2011 6 mai 2010 à 11:37
Trouvé !! :
Le seul problème est que ma textbox je l'avais appelé dat.txt, puis txtdat.txt et finalement en l'appelant txtbox ça passe.
Il ne prends pas le format du bios mais celui de la textbox.
Et ça fonctionne pour les formules liées à la textbox
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 avril 2010 à 09:46
Salut
Le contenu d'une TextBox, c'est maTextBox.Text
Ne pas mettre .Text fonctionnera, mais un jour, tu auras des surprises.
Le format d'une cellule est complètement indépendante de son contenu.
Il faut donc revoir le formatage de la cellule après l'insersion d'une valeur.
Exemple de formatage obtenu en enregistrant une macro pendant que je faisais à la main :
Menu Format, Cellule, Nombre avec séparateur de milliers et 2 chiffres après la virgule :
Selection.NumberFormat = "#,##0.00"
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 avril 2010 à 09:51
Outch : j'avais pas vu :
Dim TextBox1 As Currency
Quelle horreur !
Que tu ne nommes pas les objets de la bonne manière (*), c'est toi qui voit, mais appeler une variable avec le nom d'un objet, là, c'est du masochisme !
(*) la norme (notation "à la hongroise") veut que le nom de chaque objet/variable rappelle le type de l'objet, comme :
txtCredit pour une TextBox qui renfermerait une valeur de crédit
cmdOk pour un bouton qui servirait à la validation
...
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_zeps2
Messages postés61Date d'inscriptionvendredi 9 novembre 2007StatutMembreDernière intervention28 octobre 2011 13 avril 2010 à 12:22
Faut pas m'en vouloir je ne maîtrise pas trop !!!.....
Bon, ma difficulté est donc de renvoyer le format pour ma valeur.
dans l'aide xls, il y a t-il un endroit ou je peux voir les propriétés "acceptables" des variables ou des objets ?
Actuellement je bloque toujours pour le renvoie du format.
J'avais fait la manip que tu dis, mais je n'arrive pas à trouver l'endroit pour la faire fonctionner.
* En dessous des déclarations des variables ?
* Ds le code avec :
"ActiveCell.Offset(0, 6).Value = txtdebit
activecell.numbertformat = "#,##0.00""
ça ne fonctionne pas non plus.
Donc je bloque...
Et en essayant de passer par
ActiveCell.Offset(0, 0).Value = xlMultiply * 1
il ne me vide plus la mémoire de la textbox en me mettant toujours la même valeur.
Dur Dur d'être débutant.....
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 avril 2010 à 19:44
@ zeps2
[i]* Ds le code avec :
ActiveCell.Offset(0, 6).Value = txtdebit
activecell.numbertformat = "#,##0.00"
ça ne fonctionne pas non plus/i
Oui, c'est normal :
Tu stockes la valeur (*) dans la cellule située 6 colonnes à droite de la cellule active, puis tu modifies le format de la cellule active.
Donc, tu ne modifies pas le même cellule : normal qu'il n'y ait aucun effet !
--> ActiveCell.Offset(0, 6).NumbertFormat = "#,##0.00"
(*) txtdebit.Text et pas txtdebit seul, prends-en l'habitude
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_zeps2
Messages postés61Date d'inscriptionvendredi 9 novembre 2007StatutMembreDernière intervention28 octobre 2011 14 avril 2010 à 10:06
Non, non, le pb n'est pas là.
Mon format ds xls est correct.
Manuellement il n'y a pas de pb.
Simplement en exécutant la macro il me renvoie un format mm/jj/aa
Et je n'arrive pas à l'inverser !!!
Et si met ds la textbox le n° de la date (35916 pour le 01/05/98) il me l'amène sous le bon format !!!
Mais sous la forme 01/05/98 dans la textbox, il inverse le jour et le mois ==> 05/01/98
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 14 avril 2010 à 17:07
Tout dépend ce que tu as écrit.
Il n'y a aucune raison qu'il modifie le format de date si ce format est déclaré dans la mise en forme de la cellule.
La seule chose que je verrais et qui pourrait expliquer ce changement de format, c'est le passage d'info depuis une base de données, mais d'une TextBox vers une cellule, je ne vois pas trop.
Colle nous ici le bout de code qui fait l'écriture de ta cellule avec le contenu de ta TextBox
Rappelle nous aussi de quelle manière tu dimensionnes tes variables.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_zeps2
Messages postés61Date d'inscriptionvendredi 9 novembre 2007StatutMembreDernière intervention28 octobre 2011 15 avril 2010 à 10:28
Oh, ben il est tout simple :
Sub CommandButton1_Click()
Dim TextBox3 As Date
ActiveCell.Offset(0, 0).Value = dat.Text
Unload UserForm1
End Sub
Les autres lignes n'étant que la même chose pour d'autres textbox.
Si j'enlève le .Text du format valeur, il me renvoie une chaine de caractère (string)
J'ai essayé plein d'autres format en mettant :
ActiveCell.Offset(0, 6).NumberFormat "jj/mm/aa"> il bloque sur "jj" quand j'execute comme pour "dd" du reste
(textbox3, "dd/mm/yyyy")
(date, "dd/mm/yyyy")
Bref, je ne comprends pas.
Normalement, en mettant le format date à la variable (Dim TextBox3 As Date ), il doit afficher le format des paramètres de l'ordi. Et là non ?????????