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 17/08/2011, 10h29   #1
Membre actif
 
Homme
Étudiant
Inscription : août 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : août 2011
Messages : 121
Points : 182
Points : 182
Par défaut Format de cellule :3 chiffres aprés la virgule

Bonjour Forum
Je travaille sous excel-VBA 2000.Je voudrai changer le format d'une cellule le mettre 3 chiffre aprés la virgule et ensuite utiliser le nombre à 3 chiffre aprés la virgule pour faire mes calculs.Sauf que le macro que je fais met le format de la cellule à 3 chiffre apres la virgule mais ne l'utilise pas pour les calculs il utilise plutot le nombre non arrondi à 3 chiffre. Voila le macros que j'ai fait:

Code :
1
2
3
4
5
6
7
Sub Macro1()
 
    Range("D4").Select   ' dans D4 j'ai mis la valeur 1.444444
   Selection.NumberFormat = "0.000"
   Range("A1") = Range("D4").Value * 1
 
End Sub
Dans range A1 je m'attendai a la valeur: 1,444
non pas a la valeur 1,444444
Et pourtat la cellule D4 est bien arrondi quand j'execute le macro à 1,444

Merci d'avance et Vive le Forum
erlerwade est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 10h38   #2
Membre régulier
 
Homme Florian
Étudiant
Inscription : mai 2011
Messages : 44
Détails du profil
Informations personnelles :
Nom : Homme Florian
Âge : 21
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 44
Points : 73
Points : 73
Salut à toi,
En fait, quand tu demandes à Excel le format "0,000" pour la cellule D4, Excel affiche le nombre avec le format demandé, mais la valeur gardée en mémoire est la valeur complète, et ce de façon précisément à garder des calculs exacts.

Donc deux solutions s'offrent à toi :
-soit tu souhaites faire les calculs sur les valeurs exactes et n'afficher que 3 chiffres après la virgule, auquel cas tu peux simplement faire...
Code :
Range("A1").NumberFormat = "0.000"
-soit tu arrondis vraiment la valeur dans D4, dans ce cas au lieu de...
Code :
Range("D4").NumberFormat = "0.000"
tu fais...
Code :
Range("D4").Value = Round(Range("D4").Value, 3)
...et après ça tes calculs utiliseront bien la valeur tronquée puisque c'est celle qui aura été enregistrée en mémoire
Orhleil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/08/2011, 11h02   #3
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 682
Points : 4 682
Bonjour,

Dans ce contexte, tu peux utiliser la propriété Text de l'objet range, et le pouvoir d'interprétation d'Excel ainsi :


Code :
1
2
3
4
5
6
7
Sub Macro1_B()
 
    Range("D4").Select   ' dans D4 j'ai mis la valeur 1.444444
   Selection.NumberFormat = "0.000"
   Range("A1") = Range("D4").Text * 1
 
End Sub
cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/08/2011, 11h13   #4
Membre actif
 
Homme
Étudiant
Inscription : août 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : août 2011
Messages : 121
Points : 182
Points : 182
Merci beaucoup à vous orhleil et Didier toutes les deux solutions sont

pertinentes et adaptées à mon probléme je n'ai que l'embarras du choix

You do so much good pour la communauté !!!!!!!!!!!!!!!!!!!!!!!!

Vive le Forum !!
erlerwade est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h50.


 
 
 
 
Partenaires

Hébergement Web