XL 2007 format nombre pour une textbox

Nicolas de la bas

XLDnaute Nouveau
Bonjour à tous

Je suis en train de créer une feuille de compta avec un formulaire de saisie via un UF dans le quel je mets bien évidement tout les information dont le débit ou le crédit tous se passe bien seulement je bloc sur une fonction de base. Voila le tableau n'a pas de limite de fin dans le sens ou d'un mois sur l'autre il n'y pas forcement le meme nombre d'entrée du coup pour calculer la somme dans un cellule à coté du tableau je mets =SOMME (G:G) mais rien ne se passe, tout les valeur entre dans la colonne G via le formulaire ne son pas pris en compte en revanche si j'écris directement les valeurs dans les cellules les valeurs sont prises en compte. J'ai essayer e prendre un plage beaucoup plus courte 10 cellule max mais même problème.
Merci pour votre aide
 

Dranreb

XLDnaute Barbatruc
Bonsoir
Si les valeurs viennent de TextBox, il faut en écrire la conversion en nombre, = CDbl(Textbox1.Text)
 
Dernière édition:

Nicolas de la bas

XLDnaute Nouveau
Bonjour à tous

Je suis en train de créer une feuille de compta avec un formulaire de saisie via un UF dans le quel je mets bien évidement tout les information dont le débit ou le crédit tous se passe bien seulement je bloc sur une fonction de base. Voila le tableau n'a pas de limite de fin dans le sens ou d'un mois sur l'autre il n'y pas forcement le meme nombre d'entrée du coup pour calculer la somme dans un cellule à coté du tableau je mets =SOMME (G:G) mais rien ne se passe, tout les valeur entre dans la colonne G via le formulaire ne son pas pris en compte en revanche si j'écris directement les valeurs dans les cellules les valeurs sont prises en compte. J'ai essayer e prendre un plage beaucoup plus courte 10 cellule max mais même problème.
Merci pour votre aide
Je me rend compte au final que mes cellule ou les valeur de mes textebox son renvoyer au format monétaire, sont traiter comme du texte et du coup j aimerais savoir comment fair pour qu elle soit traiter comme des nombres?
 

Dranreb

XLDnaute Barbatruc
Pour des devises je conseille = CCur(TextBox1.Text)
Remarque: ce n'est pas qu'Excel enregistrera réellement la valeur de cellule en Currency, mais il rectifiera s'il y a lieu le format de cellule de façon à savoir qu'il devra aussi la restituer en Currency et non en Double.
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Nicolas de la bas, Bernard, le forum,

Bah avec la propriété .Value pas besoin de convertir :
Code:
[A1] = TextBox1.Value
donne bien le nombre 123 en A1 quand il y a 123 ou 123 € dans TextBox1.

Alors qu'avec CDbl il y a bug si TextBox1 est vide...

A+
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Pourtant TypeName(TextBox1.Value) dit toujours "String". Alors ça doit venir d'un automatisme d'Excel qui tient compte du fait que l'info est transmise via un Variant … automatisme en lequel je n'ai pas confiance. Je préfère savoir ce que je fais.
 

Nicolas de la bas

XLDnaute Nouveau
en faite voila le code de ma textbox
Private Sub TextBox3_AfterUpdate()
TextBox3 = VBA.Format(TextBox3.Value, "00.00 ? ")
End Sub
donc ma textbox me renvoie automatiquement en euro ce que je marque mais excel le traite comme du texte
 

job75

XLDnaute Barbatruc
Re,
Code:
Private Sub TextBox3_AfterUpdate()
TextBox3 = Format(TextBox3, "#0.00 €")
End Sub

Private Sub CommandButton1_Click()
[A1] = Replace(TextBox3, ",", ".")
End Sub
Mettre A1 au format Monétaire ou Comptabilité.

A+
 

Dranreb

XLDnaute Barbatruc
C'est à l'écriture dans la cellule qu'il faut veiller à ce que le texte soit converti en nombre.
(soit en exploitant des habitudes d'Excel que je connais mal, soit en s'en occupant sérieusement)
 

Dranreb

XLDnaute Barbatruc
Je n'en disconviens pas. Simplement je préfère m'occuper moi même d'affecter à la Value d'un Range un Double, un Currency, une Date ou un String plutôt que de m'en remettre à des automatismes de conversion d'Excel qui me semblent plus aléatoires.
 

job75

XLDnaute Barbatruc
l'idée serait de replacer pour une colonne complète
En français ça veut dire quoi ? Peut-être ceci :
Code:
Private Sub TextBox3_AfterUpdate()
TextBox3 = Format(TextBox3, "#0.00 €")
End Sub

Private Sub CommandButton1_Click()
Range("A" & Rows.Count).End(xlUp)(2) = Replace(TextBox3, ",", ".")
End Sub
 

Nicolas de la bas

XLDnaute Nouveau
voici le code de mon bouton de mon bouton sur le quel tu me demande de grefer ton code
Private Sub CommandButton1_Click()
Dim ctrl As Control
Dim Colonne As Integer
Dim Derligne As Integer
Derligne = Sheets("Janvier").Range("B1048576").End(xlUp).Row + 1
For Each ctrl In UserForm1.Controls
Colonne = Val(ctrl.Tag)
If Colonne > 0 Then Sheets("Janvier").Cells(Derligne, Colonne) = ctrl
Next

End
End Sub


Je les mis juste àprès next comme suite
[G6] = Replace(TextBox3,",",".")

ça fonctionne mais à chaqu nouvel entrée ma cellule G6 est modifier alors qu'a la base c'est un fichier compta
 

Nicolas de la bas

XLDnaute Nouveau
En français ça veut dire quoi ? Peut-être ceci :
Code:
Private Sub TextBox3_AfterUpdate()
TextBox3 = Format(TextBox3, "#0.00 €")
End Sub

Private Sub CommandButton1_Click()
Range("A" & Rows.Count).End(xlUp)(2) = Replace(TextBox3, ",", ".")
End Sub
Ton code fonctionne bien merci j'ai remplacer le A par le G mais le soucie si je marque 42 dans ma textbox il me renvoi 42,00€ dans ma cellule et le prend en compte dans les calcules ce que je cherchai a faire merci mais dans la cellule juste en dessous il me marque 42 qui ne serre a rien et si je fait une nouvelle entrée il marque la nouvelle somme par exemple 2 il me marque 2,00€ a Laplace du 42 qui ne serre à rien et me le prend dans le calcule mais dans la cellule juste en dessous il me marque 2 bref je pense que tu à compris
 

Nicolas de la bas

XLDnaute Nouveau
En français ça veut dire quoi ? Peut-être ceci :
Code:
Private Sub TextBox3_AfterUpdate()
TextBox3 = Format(TextBox3, "#0.00 €")
End Sub

Private Sub CommandButton1_Click()
Range("A" & Rows.Count).End(xlUp)(2) = Replace(TextBox3, ",", ".")
End Sub
C'est bon j ai trouver j'ai supprimé du code le (2) et ça marche impec merci
 

Discussions similaires


Haut Bas