Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Franchement je cale - Variable format ??????

2 réponses
Avatar
tip.tiptop
Bonsoir
Je suis loin d'être un expert et franchement je cale sur un problème qui me
paraissait au premier abord assez simple.

Je m'explique:

Via quelques lignes de code comme ci-dessous je recupère dans une variable
des données affichées comme suivant:

367,50 ?
231,00 ?


En_Colonne = ActiveCell.Column - 15
En_Ligne = ActiveCell.Row
Set maCellule = Cells(En_Ligne, En_Colonne)
MontantFac = Cells(En_Ligne, En_Colonne)

pour 367,50E ma variable est affectée de la valeur 367.5 et pour
231,00 ma variable est affectée de la valeur 231

Lorsque ma variable (MontantFac) est de type As String
L'export de cette dernière dans WORD donne 367,5 ou 231 alors que je veux
avoir 367.50 et 231.00

Quand la variable est déclaré (MontantFac) comme As Long
L'export de cette dernière dans WORD donne 368 ou 231 alors que je veux
avoir 367.50 et 231.00

Formater ma variable ne change rien. Mais peut être aussi que je n'utilise
pas le bon code
Comment faire?????????????

Help me je suis vraiment coincé
********************************************
' Insertion du montant de la facture
'*********************************************************
AppWord.ActiveDocument.Content.Find.Execute "XMONTANT", , , , ,
, , , , MontantFac

2 réponses

Avatar
michdenis
Bonjour Tip.Tiptop,

Je ne sais pas comment tu t'y prends pour copier le contenu de ta variable
dans un fichier Word... mais voici un exemple qui fonctionne...

je crée un fichier .txt qui s'appelle Denis.txt et qui contient le contenu
de la cellule A1 et dans le fichier texte, j'ai effectivement 123.00

'-------------------------------
Sub SaveAsTextFile()

Dim fFilename As String
Dim MaVar As String

MaVar = Format(Range("A1"), "#.00")

fFilename = "C:Denis.txt"
Open fFilename For Output As #1
Print #1, MaVar
Close #1
End Sub
'-------------------------------


Salutations!


"tip.tiptop" a écrit dans le message de news: 442c568e$0$21120$
Bonsoir
Je suis loin d'être un expert et franchement je cale sur un problème qui me
paraissait au premier abord assez simple.

Je m'explique:

Via quelques lignes de code comme ci-dessous je recupère dans une variable
des données affichées comme suivant:

367,50 ?
231,00 ?


En_Colonne = ActiveCell.Column - 15
En_Ligne = ActiveCell.Row
Set maCellule = Cells(En_Ligne, En_Colonne)
MontantFac = Cells(En_Ligne, En_Colonne)

pour 367,50E ma variable est affectée de la valeur 367.5 et pour
231,00 ma variable est affectée de la valeur 231

Lorsque ma variable (MontantFac) est de type As String
L'export de cette dernière dans WORD donne 367,5 ou 231 alors que je veux
avoir 367.50 et 231.00

Quand la variable est déclaré (MontantFac) comme As Long
L'export de cette dernière dans WORD donne 368 ou 231 alors que je veux
avoir 367.50 et 231.00

Formater ma variable ne change rien. Mais peut être aussi que je n'utilise
pas le bon code
Comment faire?????????????

Help me je suis vraiment coincé
********************************************
' Insertion du montant de la facture
'*********************************************************
AppWord.ActiveDocument.Content.Find.Execute "XMONTANT", , , , ,
, , , , MontantFac
Avatar
Rai
Bonsoir
Je suis loin d'être un expert et franchement je cale sur un problème qui me
paraissait au premier abord assez simple.

Je m'explique:

Via quelques lignes de code comme ci-dessous je recupère dans une variable
des données affichées comme suivant:

367,50 ?
231,00 ?


En_Colonne = ActiveCell.Column - 15
En_Ligne = ActiveCell.Row
Set maCellule = Cells(En_Ligne, En_Colonne)
MontantFac = Cells(En_Ligne, En_Colonne)

pour 367,50E ma variable est affectée de la valeur 367.5 et pour
231,00 ma variable est affectée de la valeur 231

Lorsque ma variable (MontantFac) est de type As String
L'export de cette dernière dans WORD donne 367,5 ou 231 alors que je veux
avoir 367.50 et 231.00

Quand la variable est déclaré (MontantFac) comme As Long
L'export de cette dernière dans WORD donne 368 ou 231 alors que je veux
avoir 367.50 et 231.00

Formater ma variable ne change rien. Mais peut être aussi que je n'utilise
pas le bon code
Comment faire?????????????

Help me je suis vraiment coincé
********************************************
' Insertion du montant de la facture
'*********************************************************
AppWord.ActiveDocument.Content.Find.Execute "XMONTANT", , , , ,
, , , , MontantFac


Bonjour,


Normalement, tu devrais pouvoir résoudre ton problème assez simplement.

En premier, il te faut déclarer ta variable en string.
Ensuite, il faut se rappeler comment fonctionne Excel au niveau cellule:
- la cellule contient une valeur (123 par exemple) issue
éventuellement d'une fonction (123 obtenu par ¡*B1)
- la cellule affiche un texte (123.00 €) qui souvent est différent de
la valeur.

Donc si tu affecte la valeur à une variable tu obtiendras un chiffre
souvent différent du texte qu'affiche la cellule.
Si bien que si tu affecte le texte d'une cellule à une variable, tu
obtiendras ce qui est affiché

En dernier lieu, il faut se rappeler que le VBA a des propriétés
implicites, pour l'objet Cells (ainsi que Range et d'autres) la
propriété implicite est Value ... donc cells(x,y) est la meême chose que
cells(x,y).value

Par conséquent dans ton code remplace la ligne :
MontantFac = Cells(En_Ligne, En_Colonne)
par
MontantFac = Cells(En_Ligne, En_Colonne).Text


et pour bien faire, il serait intéressant de se débarraser des espaces
intulies :
MontantFac = Trim(Cells(En_Ligne, En_Colonne).Text)

J'ai par contre une question :
Pourquoi écris-tu 'Set maCellule = Cells(En_Ligne, En_Colonne)' ?


Bonne journée

Rai