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

Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011
- - Dernière réponse : 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
Afficher la suite 

11 réponses

Meilleure réponse
Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 201 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_zeps2
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
62
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
62
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011
0
Merci
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.....
Commenter la réponse de cs_zeps2
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
62
0
Merci
@ 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)
Commenter la réponse de cs_Jack
Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011
0
Merci
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.
Commenter la réponse de cs_zeps2
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
62
0
Merci
Menu "?" + "Aide sur Microsoft Excel" + le texte "format date"
Commenter la réponse de cs_Jack
Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011
0
Merci
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
Commenter la réponse de cs_zeps2
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
62
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011
0
Merci
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 ?????????
Commenter la réponse de cs_zeps2
Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011
0
Merci
Ah j'oubliais, je suis en W7 et office 2003 pour xls
Commenter la réponse de cs_zeps2