Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/10/2011, 14h34   #1
Invité de passage
 
Homme
Étudiant
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 1
Points : 1
Par défaut nombre à 2 décimales

Bonjour à tous,

Voilà mon problème...
J'ai dans mon code des nombres à additionner (Par exemple, 2.25 + 0.75), or mon problème c'est que je voudrais que le résultat s'affiche comme ceci : 3.00.
En clair, je veux que quelque soient les nombres additionnés, le résultat s'affiche avec AU MOINS 2 décimales, mais ça peut être plus de décimales si le résultat est du type 3.258.

Merci d'avance.
helenaide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 14h37   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 894
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 894
Points : 7 178
Points : 7 178
Bonjour,

Le résultat se trouve dans une cellule ou dans un objet activex (Textbox, label)?
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 11h47   #3
Invité de passage
 
Homme
Étudiant
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 1
Points : 1
Bonjour,

Le contenu se trouve dans une cellule au format texte car le contenu de la cellule est du type :
"Vous paierez 2.50 euros"
helenaide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 12h03   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Et quel est le code que tu utilise?
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 16h16   #5
Invité de passage
 
Homme
Étudiant
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 1
Points : 1
VBA...

pr Excel 2003...
Si ça peut vous aider.
helenaide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 16h24   #6
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Je crois que c'est toi qui cherche l'aide.
Tu as commencé un code ou tu cherches qu'on te donne un code prêt?
Si tu as commencé par écrire ton code, mets le ici pour qu'on puisse t'aider.
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 16h28   #7
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour

Ce que mercatog te demande c'est si tu a fait un code, on ce doute un peu que c'est VBA

Si les valeurs sont des euros, pourquoi chercher les millièmes


Donne le code que tu essais d'utiliser
et dans qu'elle situation


Cordialement
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 16h28   #8
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 894
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 894
Points : 7 178
Points : 7 178
ci dessous une idée de code
Code :
1
2
3
4
5
6
7
8
9
10
11
Dim db As Double
Dim strDB As String
 
db = 2.5
 
If InStr(1, db, Application.DecimalSeparator) <= 2 Then
    strDB = Format(db, "# ###.00")
Else
    strDB = db
End If
Range("A1").Value = "Le montant est " & strDB & " euros"
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 16h47   #9
Invité de passage
 
Homme
Étudiant
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 1
Points : 1
Désolée... Je n'avais effectivement pas compris la question !
Voici une partie du code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
                  If CheckBox8 = True Then
                    Rows("89:91").RowHeight = 15
                    Rows("108:108").RowHeight = 12.75
                    Range("ref") = "Vous recevez"
                    Range("vendeur") = "XXXX"
                    If CheckBox1 = True Or CheckBox3 = True Then
                    Range("Instrument") = "SSS"
                    Range("Payeur") = "EEEE"
                    floor = InputBox("Merci d'indiquer le niveau du floor, "niveau du  floor ?", " ")
                    Cap = InputBox("Merci d'indiquer le niveau du Cap", "niveau du Cap ?", " ")
                    prime = InputBox("Merci d'indiquer le niveau de la prime de cap", "Prime du cap ?", " ")
                    If prime <> 0 Then
                    floor1 = floor + prime
                    cap1 = Cap + prime
                    Range("Structure") = floor1 & "% si " & Index & " < " & floor & "%"
                    Range("Structure2") = Index & " + " & prime & "% si " & Index & " est compris entre " & floor & "% et " & Cap & "%"
                    Range("Structure3") = cap1 & "% si " & Index & " > " & Cap & "%"
                    Else
                    Range("Structure") = floor & "% si " & Index & " < " & floor & "%"
                    Range("Structure2") = Index & " si " & Index & " est compris entre " & floor & "% et " & Cap & "%"
                    Range("Structure3") = Cap & "% si " & Index & " > " & Cap & "%"
                    End If
                    Range("Niveau") = " "
                    Range("Barrière") = " "
                    Range("Structure4") = " "
L'idée étant que le floor1 et le cap1 soient donc sous la forme dont je vous parlais.

Merci encore pour votre aide.
helenaide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 18h13   #10
Invité de passage
 
Homme
Étudiant
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 1
Points : 1
Merci pour la suggestion de code mais je l'ai essayé et ça ne fonctionne pas

- quand le chiffre est inférieur à 1. Pour cela, j'ai trouvé une solution en modifiant légèrement le code comme ceci : - quand il y a plus de deux décimales. Et pour ça, je sèche complètement.

Auriez-vous une autre idée ?
helenaide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 19h22   #11
Futur Membre du Club
 
Homme Jean-Francis BARREAUD
Développeur informatique
Inscription : juin 2011
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme Jean-Francis BARREAUD
Âge : 62
Localisation : France, Ariège (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2011
Messages : 22
Points : 17
Points : 17
Par défaut Format à 2décimales ou plus

Bonjour, voici peut-être une réponse

Il y a deux problèmes:
1- éditer une valeur formatée
2- afficher une valeur numérique dans une cellule

1- pour éditer une valeur numérique avec deux décimales au moins, il suffit de rajouter des # pour les zéros non significatifs:
chez moi...
msgbox format (1.2345,"#,##0.00###") affiche '1,2345'
msgbox format (1.2345,"# ##0.00") affiche '1,23'

Si tu insères le résultat de format() dans une chaine non numérique, ça doit normalement bien se passer

2- lorsqu'on affiche une valeur numérique dans une cellule, même si toi tu utilises une chaine de caractères, cette chaine est convertie en un nombre par excel et, dans la cellule, le résultat est affiché en fonction du numberformat de la cellule.

Pour que le format du nombre affiché corresponde exactement au format que tu as construit, il faut que tu indiques à EXCEL que c'est une chaine, en spécifiant toi-même le format 'texte', ou bien, plus rapidement, en faisant précéder ton nombre d'une apostrophe (elle ne sera pas affichée)
orpheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h17.


 
 
 
 
Partenaires

Hébergement Web