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 26/12/2011, 18h05   #1
Invité régulier
 
Femme
Inscription : décembre 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 25
Points : 9
Points : 9
Par défaut Pb avec récupération poucentage

Bonjour.
Je récupère un champ qui contient un pourcentage : 31,7 %.
Je l'ai mis dans du currency.
Quand je regarde le résultat, je récupère 0,317.
J'ai essayé avec d'autres formats, c'est toujours pareil.
Après, quoi que je fasse, je n'arrive pas à retrouver mon chiffre, il est arrondi à 31%.
Je suis désolée si ma question est bête. J'y ai passé des heures et peut-être que j'ai les yeux qui se croisent à force et que je ne vois plus ce qui doit vous paraître évident.
Est-ce que quelqu'un veut bien m'aider ?
Je suis débutante et perdue.
Merci mille fois.
mep1607 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 18h08   #2
Membre chevronné
 
Avatar de defluc
 
Architecte
Inscription : mai 2002
Messages : 1 057
Détails du profil
Informations personnelles :
Âge : 62

Informations professionnelles :
Activité : Architecte

Informations forums :
Inscription : mai 2002
Messages : 1 057
Points : 745
Points : 745
Transmets-nous le code de ta macro pour qu'on puisse t'aider
defluc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 18h59   #3
Invité régulier
 
Femme
Inscription : décembre 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 25
Points : 9
Points : 9
Code :
1
2
3
4
5
6
7
8
9
10
Dim MargeCible As Currency
 
MargeCible = Workbooks(FichierImport).Sheets("Info. Generales").Cells(13, 15)
 
'La cellule que je récupère est en format % mais quand je regarde avec le débogueur, je récupère 0,317
 
Workbooks("BL_SOLUTIONS_TDB encours.xlsm").Sheets("Affaires en cours").Range("G" + CStr(NumLigneProjet)).Select
                Selection.Style = "Percent"
                Selection.NumberFormat = "0,0%"
                Workbooks("BL_SOLUTIONS_TDB encours.xlsm").Sheets("Affaires en cours").Range("G" + CStr(NumLigneProjet)) = MargeCible
J'ai essayé dans tous les sens avec tous les formats, ça fait pareil ...
mep1607 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 20h59   #4
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Je ne comprend pas ton problème, c'est un pourcentage, il est bien exprimé avec une valeur inférieur ou égale à 1.
Pour le stocker, un Double sera bien suffisant. Si ensuite tu veux retrouver ta valeur sous forme 31.7, il te suffit de multiplier par 100 le contenu de ta variable Double (0.317).

Concernant ton code
Plutôt que de sélectionner la cellule, il est préférable de seulement la pointer pour travailler avec, comme ceci

Code :
1
2
3
4
5
with Workbooks("BL_SOLUTIONS_TDB encours.xlsm").Sheets("Affaires en cours").Range("G" + CStr(NumLigneProjet))
       .Style = "Percent"
       .NumberFormat = "0,0%"
       .value = MargeCible
End With
[Edit]
J'ai testé pour comprendre voila une solution à ton problème, ton format n'est pas bon.

Code :
1
2
3
4
5
6
7
8
9
10
11
Sub teste()
Dim MargeCible As Double
 
MargeCible = Range("A1")
 
With Range("B1")
       .Style = "Percent"
       .NumberFormat = "#,#00.0%"
       .Value = MargeCible
End With
End Sub
[/Edit]

++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/12/2011, 22h50   #5
Invité régulier
 
Femme
Inscription : décembre 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 25
Points : 9
Points : 9
Par défaut Merci, merci, merci, merci...

Ca fonctionne !!!
C'est super gentil, j'y ai vraiment passé des heures cet après-midi.
Merci beaucoup.
:-)
mep1607 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h49.


 
 
 
 
Partenaires

Hébergement Web