OVH Cloud OVH Cloud

Convertir des chiffres en %

7 réponses
Avatar
Daniel
Bonjour, bonsoir amateurs estivaux d'Excel,

Voici mon probl=E8me. J'ai une s=E9rie de chiffres du type :
12
1254
1548

que je voudrais convertir en %.

J'ai fait une petite macro qui met les cellules s=E9lectionner au format
%=2E Sauf que ce format se contente de multiplier par 100 et d'ajouter le
sigle %.

J'obtiens donc :
1200%
125400%
154800%

Alors que je voudrais :
12%
1254%
1548%

L'id=E9e c'est donc de diviser par 100 chaque cellule (=E7a l'id=E9e,
c'est bon, je l'ai !). Mais pour la pratique, je ne sais pas comment
faire : je retombe toujours sur des r=E9f=E9rences circulaires.

Voici le code :

Sub ChiffresEnPourcentages()

Dim Rng As Range
For Each Rng In Selection.Cells
If Rng.HasFormula =3D False Then
Selection.NumberFormat =3D "0%"
ActiveCell.FormulaR1C1 =3D "=3DRC/100"
End If

Next Rng

End Sub
Merci par avance.=20


A+

Kaz

7 réponses

Avatar
Pierre CFI [mvp]
bonjour
ActiveCell = ActiveCell / 100

--
Pierre
MVP Microsoft Access
"Daniel" a écrit dans le message de news:

Bonjour, bonsoir amateurs estivaux d'Excel,

Voici mon problème. J'ai une série de chiffres du type :
12
1254
1548

que je voudrais convertir en %.

J'ai fait une petite macro qui met les cellules sélectionner au format
%. Sauf que ce format se contente de multiplier par 100 et d'ajouter le
sigle %.

J'obtiens donc :
1200%
125400%
154800%

Alors que je voudrais :
12%
1254%
1548%

L'idée c'est donc de diviser par 100 chaque cellule (ça l'idée,
c'est bon, je l'ai !). Mais pour la pratique, je ne sais pas comment
faire : je retombe toujours sur des références circulaires.

Voici le code :

Sub ChiffresEnPourcentages()

Dim Rng As Range
For Each Rng In Selection.Cells
If Rng.HasFormula = False Then
Selection.NumberFormat = "0%"
ActiveCell.FormulaR1C1 = "=RC/100"
End If

Next Rng

End Sub
Merci par avance.


A+

Kaz
Avatar
Yvan
Bonsoir Daniel.

Tu semble vouloir afficher en pourcents et non convertir en %.

Si c'est le cas, tu mets un espace entre le 0 et le % de ton format:
Selection.NumberFormat = "0 %"
C'est bon?

@+

Yvan



"Daniel" a écrit dans le message de news:

Bonjour, bonsoir amateurs estivaux d'Excel,

Voici mon problème. J'ai une série de chiffres du type :
12
1254
1548

que je voudrais convertir en %.

J'ai fait une petite macro qui met les cellules sélectionner au format
%. Sauf que ce format se contente de multiplier par 100 et d'ajouter le
sigle %.

J'obtiens donc :
1200%
125400%
154800%

Alors que je voudrais :
12%
1254%
1548%

L'idée c'est donc de diviser par 100 chaque cellule (ça l'idée,
c'est bon, je l'ai !). Mais pour la pratique, je ne sais pas comment
faire : je retombe toujours sur des références circulaires.

Voici le code :

Sub ChiffresEnPourcentages()

Dim Rng As Range
For Each Rng In Selection.Cells
If Rng.HasFormula = False Then
Selection.NumberFormat = "0%" <- Ici "0 %"
ActiveCell.FormulaR1C1 = "=RC/100"
End If

Next Rng

End Sub
Merci par avance.


A+

Kaz
Avatar
Yvan
Oups!!!

Excuse l'erreur. Le format, c'est "0_%"

Pardon encore!

Yvan


"Daniel" a écrit dans le message de news:

Bonjour, bonsoir amateurs estivaux d'Excel,

Voici mon problème. J'ai une série de chiffres du type :
12
1254
1548

que je voudrais convertir en %.

J'ai fait une petite macro qui met les cellules sélectionner au format
%. Sauf que ce format se contente de multiplier par 100 et d'ajouter le
sigle %.

J'obtiens donc :
1200%
125400%
154800%

Alors que je voudrais :
12%
1254%
1548%

L'idée c'est donc de diviser par 100 chaque cellule (ça l'idée,
c'est bon, je l'ai !). Mais pour la pratique, je ne sais pas comment
faire : je retombe toujours sur des références circulaires.

Voici le code :

Sub ChiffresEnPourcentages()

Dim Rng As Range
For Each Rng In Selection.Cells
If Rng.HasFormula = False Then
Selection.NumberFormat = "0%"
ActiveCell.FormulaR1C1 = "=RC/100"
End If

Next Rng

End Sub
Merci par avance.


A+

Kaz
Avatar
Jo-Soupin
Bonsoir,

et puisque Daniel fait appel à Rng dans sa macro, il peut la corriger
ainsi :

Sub Pcent()
Dim Rng As Range
For Each Rng In Selection
If Rng.HasFormula = False Then
Rng.NumberFormat = "0 %"
Rng = Rng / 100
End If
Next
End Sub



Bonsoir Daniel.

Tu semble vouloir afficher en pourcents et non convertir en %.

Si c'est le cas, tu mets un espace entre le 0 et le % de ton format:
Selection.NumberFormat = "0 %"
C'est bon?

@+

Yvan



"Daniel" a écrit dans le message de news:

Bonjour, bonsoir amateurs estivaux d'Excel,

Voici mon problème. J'ai une série de chiffres du type :
12
1254
1548

que je voudrais convertir en %.

J'ai fait une petite macro qui met les cellules sélectionner au format
%. Sauf que ce format se contente de multiplier par 100 et d'ajouter le
sigle %.

J'obtiens donc :
1200%
125400%
154800%

Alors que je voudrais :
12%
1254%
1548%

L'idée c'est donc de diviser par 100 chaque cellule (ça l'idée,
c'est bon, je l'ai !). Mais pour la pratique, je ne sais pas comment
faire : je retombe toujours sur des références circulaires.

Voici le code :

Sub ChiffresEnPourcentages()

Dim Rng As Range
For Each Rng In Selection.Cells
If Rng.HasFormula = False Then
Selection.NumberFormat = "0%" <- Ici "0 %"
ActiveCell.FormulaR1C1 = "=RC/100"
End If

Next Rng

End Sub
Merci par avance.


A+

Kaz


Avatar
AV
[A1:A10] = [A1:A10/100]
[A1:A10].NumberFormat = "0.00%"

AV
Avatar
Patrick BASTARD
Bonjour, *Daniel*

Sans VBA :
Saisis dans une cellule vide 1.00%, (ou 1,00% selon ton séparateur décimal),
formaté avec 2 zéros après le séparateur.
Ctrl+C (ou édition copier),
Sélectionne les cellules à convertir, Edition, collage spécial,
multiplication.

Cela te convient-il ?

--
Bien amicordialement,
P. Bastard


Bonjour, bonsoir amateurs estivaux d'Excel,

Voici mon problème. J'ai une série de chiffres du type :
12
1254
1548

que je voudrais convertir en %.

J'ai fait une petite macro qui met les cellules sélectionner au format
%. Sauf que ce format se contente de multiplier par 100 et d'ajouter
le sigle %.

J'obtiens donc :
1200%
125400%
154800%

Alors que je voudrais :
12%
1254%
1548%

L'idée c'est donc de diviser par 100 chaque cellule (ça l'idée,
c'est bon, je l'ai !). Mais pour la pratique, je ne sais pas comment
faire : je retombe toujours sur des références circulaires.

Voici le code :

Sub ChiffresEnPourcentages()

Dim Rng As Range
For Each Rng In Selection.Cells
If Rng.HasFormula = False Then
Selection.NumberFormat = "0%"
ActiveCell.FormulaR1C1 = "=RC/100"
End If

Next Rng

End Sub
Merci par avance.


A+

Kaz


Avatar
Daniel
Bonjour à tous,

Merci pour toutes vos réponses. C'est Jo-Soupin qui est le plus proche
de ce que je recherchais, mais toutes les solutions proposées
fonctionnent à merveille.

Au final, voici le code que j'obtiens :

Dim Rng As Range
For Each Rng In Selection
If Rng.HasFormula = False Then
Rng.NumberFormat = "0%"
Rng = Rng / 100
End If
Next
End Sub

Merci encore à Pierre, Yvan, Jo-Soupin, Av et Patrick !

A++

Daniel