[déplacé VB.NET -> VBA] Revoie un format texte

Résolu
cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 octobre 2011 - 13 avril 2010 à 00:50
cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 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 ?

Merci çà tous

11 réponses

cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 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
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 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.....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 octobre 2011
14 avril 2010 à 00:10
OK !! Super je te remercie.

je pensais pouvoir aussi le déclarer en amont du code, après les déclarations des variables, en reprenant le nom des variable = le format

2°) J'ai un format date qui me pose encore un pb : il inverse le jour et le mois ds la cellule :
code :
ActiveCell.Offset(0, 0).Date = jj / mm / aaaa

j'ai essayé plein de truc, rien ni fait !!! sauf en manuel dans le cellule.
Bon, ça me va pas.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 avril 2010 à 09:34
Menu "?" + "Aide sur Microsoft Excel" + le texte "format date"
0
cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 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 ?????????
0
cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 octobre 2011
15 avril 2010 à 10:31
Ah j'oubliais, je suis en W7 et office 2003 pour xls
0
Rejoignez-nous