Mettre format de cellule plus valeur dans une variable

28Coco28 Messages postés 24 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 17 mars 2011 - 8 sept. 2010 à 16:31
28Coco28 Messages postés 24 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 17 mars 2011 - 13 sept. 2010 à 10:37
Bonjour,
J'ai une variable qui vas chercher des valeurs dans des cellules sur excel pour les mettrent dans un label.
Le problème est que les valeurs sont parfois des décimals et parfois des pourcentages.
J'ai essayer de déclarer ma variable en integer, long, variant,double mis j'arrive pas avoir ce que je veux.
les pourcentage me sont transformer en décimal fois 10 puissance quelque chose.
Je voudrais que mes chiffres décimal du tableau soit transformer en entier et que les pourcentages soit exprimer comme dans le tableau ( en pourcentage)

J'ai penser à utiliser la commande NumberFormat mais comment faire pour récupérer et le format et la valeur.

le code que j'ai mis est:

vr1 = Range("A1").Value.NumberFormat
ou
vr1 Range("A1").NumberFormat.Value

Mais ni l'un ni l'autre ne marche.
Quelqu'un à t'il une solution?

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 sept. 2010 à 17:45
Salut
Fais une différence entre .Value, .Value2 et .Text
.Value2 renvoie toujours la valeur sans formatage de présentation = valeur brute

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
28Coco28 Messages postés 24 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 17 mars 2011 1
12 sept. 2010 à 14:42
Salut,
A quoi correspond
.value
alors?
parceque
.value
me renvoie toujours la valeur brute avec 9 chiffres après la virgule.
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
13 sept. 2010 à 10:19
bah ???

jack t'a déjà répondu ! .Value2
en lieu et place de .value, devrait résoudre le probleme.

A+
0
28Coco28 Messages postés 24 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 17 mars 2011 1
13 sept. 2010 à 10:37
Ah pardon j'avais pas saisie.

Je viens d'eesayer mais sa m'écris objet requis. j'ai déclaré vr1,vr2 et vr3 comme variant.

Voici le code exact

For x = UserForm1.y To 55
    If Range("B" & x).Value < Range("B" & x - 1).Value And Range("B" & x - 1).Value < Range("B" & x - 2).Value Then
   vr1 = Range("B" & x).NumberFormat.Value2
   vr2 = Range("B" & x - 1).NumberFormat.Value2
   vr3 = Range("B" & x - 2).NumberFormat.Value2
    UserForm2.Show
    End If
Next


j'ai également essayer avec la synthaxe suivante:

 vr1 = Range("B" & x).Value2.NumberFormat
   vr2 = Range("B" & x - 1).Value2.NumberFormat
   vr3 = Range("B" & x - 2).Value2.NumberFormat


mais c'est pareil.
0
Rejoignez-nous