OVH Cloud OVH Cloud

Multiplication

5 réponses
Avatar
Denys
Bonjour à tous,

Quelqu'un saurait-il m'expliquer pour quoi le résultat du code suivant me
donne 0 sur la feuille excel ?

Dim Ligne As Long
With ActiveSheet()
.Unprotect "float"
'Ligne = .[C65536].End(xlUp)(2).Row

ActiveCell.Offset(0, 7).Value = TextBox5.Value * 1
ActiveCell.Offset(0, 8).Value = (ActiveCell.Offset(0, 7).Value * 1) *
(Sheet3.Range("K2").Value * 1)

Le range K2 est égal dans de cas-ci à un taux d'intérêt de 1.25%

Dans le textbox 5, c'est un montant. Je prends donc le soin de le multiplier
par un afin de m'assurer qu'Excel le considère comme un nombre.

Alors pourquoi la réponse est toujours $0 dans la cellule de destination?
Ai-je oublié quelque chose?

Merci

Denys

5 réponses

Avatar
michdenis
Bonjour Denys,

As-tu essayé quelque chose comme ceci :


Dim ValText As Double
Dim Ligne As Long

With Worksheets("Feuil1")
.Unprotect "float"
Ligne = .[C65536].End(xlUp)(2).Row
ValText = Cdbl(Textbox5.Value)
.Range("C" & Ligne).Offset(, 7) = ValText
.Range("C" & Ligne).Offset(, 8) = ValText * _
(Sheet3.Range("K2").Value)
End With

P.S. Attention au séparateur décimale dans le textbox !


Salutations!


"Denys" a écrit dans le message de news:
Bonjour à tous,

Quelqu'un saurait-il m'expliquer pour quoi le résultat du code suivant me
donne 0 sur la feuille excel ?

Dim Ligne As Long
With ActiveSheet()
.Unprotect "float"
'Ligne = .[C65536].End(xlUp)(2).Row

ActiveCell.Offset(0, 7).Value = TextBox5.Value * 1
ActiveCell.Offset(0, 8).Value = (ActiveCell.Offset(0, 7).Value * 1) *
(Sheet3.Range("K2").Value * 1)

Le range K2 est égal dans de cas-ci à un taux d'intérêt de 1.25%

Dans le textbox 5, c'est un montant. Je prends donc le soin de le multiplier
par un afin de m'assurer qu'Excel le considère comme un nombre.

Alors pourquoi la réponse est toujours $0 dans la cellule de destination?
Ai-je oublié quelque chose?

Merci

Denys
Avatar
Youky
Salut,
A premiere vue, il est bon de selectionner la bonne cellule au départ
A remplacer
TextBox5.Value * 1
par
TextBox5.Text * 1
Youky



"Denys" a écrit dans le message de news:

Bonjour à tous,

Quelqu'un saurait-il m'expliquer pour quoi le résultat du code suivant me
donne 0 sur la feuille excel ?

Dim Ligne As Long
With ActiveSheet()
.Unprotect "float"
'Ligne = .[C65536].End(xlUp)(2).Row

ActiveCell.Offset(0, 7).Value = TextBox5.Value * 1
ActiveCell.Offset(0, 8).Value = (ActiveCell.Offset(0, 7).Value * 1) *
(Sheet3.Range("K2").Value * 1)

Le range K2 est égal dans de cas-ci à un taux d'intérêt de 1.25%

Dans le textbox 5, c'est un montant. Je prends donc le soin de le
multiplier

par un afin de m'assurer qu'Excel le considère comme un nombre.

Alors pourquoi la réponse est toujours $0 dans la cellule de destination?
Ai-je oublié quelque chose?

Merci

Denys


Avatar
Denys
Bonjour Youky et Denis,

Merci beaucoup pour votre aide..... Petite question pour Denis:
Tu écris

ValText = Cdbl(Textbox5.Value)

Cependant, si j'avais un autre textbox à ajouter, comment devrais-je m'y
prendre?

Pourrais-je faire ValText1 = Cdbl(Textbox7.Value) par exemple?

Merci beaucoup à tous les deux pour votre temps...

Denys



Bonjour à tous,

Quelqu'un saurait-il m'expliquer pour quoi le résultat du code suivant me
donne 0 sur la feuille excel ?

Dim Ligne As Long
With ActiveSheet()
.Unprotect "float"
'Ligne = .[C65536].End(xlUp)(2).Row

ActiveCell.Offset(0, 7).Value = TextBox5.Value * 1
ActiveCell.Offset(0, 8).Value = (ActiveCell.Offset(0, 7).Value * 1) *
(Sheet3.Range("K2").Value * 1)

Le range K2 est égal dans de cas-ci à un taux d'intérêt de 1.25%

Dans le textbox 5, c'est un montant. Je prends donc le soin de le multiplier
par un afin de m'assurer qu'Excel le considère comme un nombre.

Alors pourquoi la réponse est toujours $0 dans la cellule de destination?
Ai-je oublié quelque chose?

Merci

Denys


Avatar
michdenis
Bonjour Denys,

L'utilisation de la fonction de conversion Cdbl() transforme le contenu du textbox en valeur numérique. Si tu regardes dans l'aide
sous "conversion", tu obtiendras la liste ...et le type de données qu'il transforme.

La fonction Cdbl() des données de type "Double" , c'est à dire des chiffres avec décimales

La variable ValText a reçu le type "Double" dans sa déclaration

En conséquence, tu peux ajouter autant de valeur de "textbox" à la variable sans aucun problème

ValText = Cdbl(Textbox1) + cdbl(Textbox2) ....

OU

ValText = ValText + Cdbl(Textbox3)


P.S. Les fonctions de conversion demande que le séparateur décimale utilisé dans les textbox soit celui du système d'exploitation.
Sinon, la fonction Cdbl() utilisé dans cet exemple, ne reconnaît pas la valeur à transformer comme étant une entrée numérique et
cela provoque une erreur.


Salutations!



"Denys" a écrit dans le message de news:
Bonjour Youky et Denis,

Merci beaucoup pour votre aide..... Petite question pour Denis:
Tu écris

ValText = Cdbl(Textbox5.Value)

Cependant, si j'avais un autre textbox à ajouter, comment devrais-je m'y
prendre?

Pourrais-je faire ValText1 = Cdbl(Textbox7.Value) par exemple?

Merci beaucoup à tous les deux pour votre temps...

Denys



Bonjour à tous,

Quelqu'un saurait-il m'expliquer pour quoi le résultat du code suivant me
donne 0 sur la feuille excel ?

Dim Ligne As Long
With ActiveSheet()
.Unprotect "float"
'Ligne = .[C65536].End(xlUp)(2).Row

ActiveCell.Offset(0, 7).Value = TextBox5.Value * 1
ActiveCell.Offset(0, 8).Value = (ActiveCell.Offset(0, 7).Value * 1) *
(Sheet3.Range("K2").Value * 1)

Le range K2 est égal dans de cas-ci à un taux d'intérêt de 1.25%

Dans le textbox 5, c'est un montant. Je prends donc le soin de le multiplier
par un afin de m'assurer qu'Excel le considère comme un nombre.

Alors pourquoi la réponse est toujours $0 dans la cellule de destination?
Ai-je oublié quelque chose?

Merci

Denys


Avatar
Denys
Bonjour Denis,

Tu es un vrai professeur pour moi... Je m'empresse de copier ton explication
et la coller dans ma filière Word !!! Elle ira rejoindre les autres !!!

Merci beaucoup et bonne fin de semaine

Denys


Bonjour Denys,

L'utilisation de la fonction de conversion Cdbl() transforme le contenu du textbox en valeur numérique. Si tu regardes dans l'aide
sous "conversion", tu obtiendras la liste ...et le type de données qu'il transforme.

La fonction Cdbl() des données de type "Double" , c'est à dire des chiffres avec décimales

La variable ValText a reçu le type "Double" dans sa déclaration

En conséquence, tu peux ajouter autant de valeur de "textbox" à la variable sans aucun problème

ValText = Cdbl(Textbox1) + cdbl(Textbox2) ....

OU

ValText = ValText + Cdbl(Textbox3)


P.S. Les fonctions de conversion demande que le séparateur décimale utilisé dans les textbox soit celui du système d'exploitation.
Sinon, la fonction Cdbl() utilisé dans cet exemple, ne reconnaît pas la valeur à transformer comme étant une entrée numérique et
cela provoque une erreur.


Salutations!



"Denys" a écrit dans le message de news:
Bonjour Youky et Denis,

Merci beaucoup pour votre aide..... Petite question pour Denis:
Tu écris

ValText = Cdbl(Textbox5.Value)

Cependant, si j'avais un autre textbox à ajouter, comment devrais-je m'y
prendre?

Pourrais-je faire ValText1 = Cdbl(Textbox7.Value) par exemple?

Merci beaucoup à tous les deux pour votre temps...

Denys



Bonjour à tous,

Quelqu'un saurait-il m'expliquer pour quoi le résultat du code suivant me
donne 0 sur la feuille excel ?

Dim Ligne As Long
With ActiveSheet()
.Unprotect "float"
'Ligne = .[C65536].End(xlUp)(2).Row

ActiveCell.Offset(0, 7).Value = TextBox5.Value * 1
ActiveCell.Offset(0, 8).Value = (ActiveCell.Offset(0, 7).Value * 1) *
(Sheet3.Range("K2").Value * 1)

Le range K2 est égal dans de cas-ci à un taux d'intérêt de 1.25%

Dans le textbox 5, c'est un montant. Je prends donc le soin de le multiplier
par un afin de m'assurer qu'Excel le considère comme un nombre.

Alors pourquoi la réponse est toujours $0 dans la cellule de destination?
Ai-je oublié quelque chose?

Merci

Denys