Formater un nombre en Ohm (Ω)

Le
Apitos
Bonjour à tous,

Comment avoir un format général pour afficher tout les cas possib=
les de valeurs en ohm ?

- Valeur de x < 1000 = x Ω
- Valeur de x > 1000 et < 10000 = x KΩ
- Valeur de x > 100000 = x MΩ

Une autre condition :

- Si la valeur de x et décimale on affichera x,xx sinon on affichera x=
sans virgule.

Merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #26392689
Bonjour,

Le mieux qu'Excel peut faire en utilisant la fenêtre des formats de
cellules pour un formt personnalisé :

[<1000]##0,##" Ω";[<100000]# ##0,##" KΩ";# ### ##0,##" MΩ";

Le hic, tu auras un affichage de la virgule lorsque le nombre n'a pas de
décimale.

Au-delà de cela, tu devras avoir recours à une macro ou une procédure
événementielle.

MichD
Apitos
Le #26392714
Bonsjour MichD,

Apres testes, voila les résultats obtenus avec le format proposé :

1 => 1, Ω
10 => 10, Ω
13,65 => 13,65 Ω
1200 => 1 200, KΩ
1000000 => 1 000 000, MΩ
pom...pom...pom..
Le #26392718
Bonsjour MichD,
Apres testes, voila les résultats obtenus avec le format proposé :
1 => 1, Ω
10 => 10, Ω
13,65 => 13,65 Ω
1200 => 1 200, KΩ
1000000 => 1 000 000, MΩ
'*************************
il est probable que le browser ait supprimé des espaces

[<1000]0,##" Ω";[<100000]# ##0,##_" KΩ";# ### ##0,##__" MΩ"
pas d'espace devant : " Ω"
un espace devant : " KΩ"
2 espace devant : " MΩ"
Apitos
Le #26392720
Bonjour pom...pom...pom..

Merci pour la rectification.

Reste le probleme, comme à dit MichD, pour l'affichage de la virgule pour les valeurs des chiffres entiers.
pom...pom...pom..
Le #26392726
Bonsour®

"Apitos" a écrit dans le message de groupe de discussion :


Bonjour pom...pom...pom..

Merci pour la rectification.

Reste le probleme, comme à dit MichD, pour l'affichage de la virgule pour les
valeurs des chiffres entiers.

utiliser alors une MEFC : condition : ent(x)=x
HB
Le #26392753
Bonjour,

Plus problématique que la présence ou pas d'une virgule est le respect
de l'unité. Je doute fort qu'un format personnalisé, aussi rusé soit-il,
règle ce problème.

Il faut selon le cas, diviser par 10^3 ou 10^6
puis arrondir si nécessaire avec (au plus ?) deux chiffres après la virgule.

La question initiale est à ce propos un peu imprécise :

Que doit donner 2 300 Ω
2,3 kΩ ou bien 2,30 kΩ ?


Tout dépend à mon avis de l'utilisation future du contenu de la cellule.
Si les valeurs ne doivent pas être utilisées ensuite (ce qui serait
surprenant puisque l'unité sera variable ...) il me semble plus simple
de fabriquer une petite fonction personnalisée qui fabrique du texte
avec la bonne unité :

C'est à mettre dans un module

La fonction fait un test avec VarType() pour vérifier que la valeur
transmise est un nombre ...
Le cas Vartype= 20 n'a de sens que pour les version 64b je pense...
(valeurs de type "longlong")

Pour oméga j'utilise le code unicode.

Public Function Ohm(X As variant) As String

Select Case VarType(X)
Case 2 To 6, 14, 17, 20

If X >= 10 ^ 6 Then
Y = Int(X / 10 ^ 4) / 100
Ohm = CStr(Y) + " M" + ChrW(&H3A9)
ElseIf X >= 1000 Then
Y = Int(X / 10) / 100
Ohm = CStr(Y) + " k" + ChrW(&H3A9)
Else
Y = Int(100 * X) / 100
Ohm = CStr(Y) + " " + ChrW(&H3A9)
End If

Case Else

Ohm = CVErr(xlErrValue)

End Select

End Function


Le 15/03/2016 21:11, MichD a écrit :

Bonjour,

Le mieux qu'Excel peut faire en utilisant la fenêtre des formats de
cellules pour un formt personnalisé :

[<1000]##0,##" Ω";[<100000]# ##0,##" KΩ";# ### ##0,##" MΩ";

Le hic, tu auras un affichage de la virgule lorsque le nombre n'a pas de
décimale.

Au-delà de cela, tu devras avoir recours à une macro ou une procédure
événementielle.

MichD





---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
HB
Le #26392754
Corrections :

- Ajouter 1/2 dans les trois fonctions INT()
pour obtenir la valeur arrondie "au plus proche"


- Déclarer la valeur retournée en Variant
puisque cela peut être une valeur de type "erreur"...


Public Function Ohm(X As variant) As variant

Select Case VarType(X)
Case 2 To 6, 14, 17, 20

If X >= 10 ^ 6 Then
Y = Int(1/2 + X / 10 ^ 4) / 100
Ohm = CStr(Y) + " M" + ChrW(&H3A9)
ElseIf X >= 1000 Then
Y = Int(1/2 + X / 10) / 100
Ohm = CStr(Y) + " k" + ChrW(&H3A9)
Else
Y = Int(1/2 + 100 * X) / 100
Ohm = CStr(Y) + " " + ChrW(&H3A9)
End If

Case Else

Ohm = CVErr(xlErrValue)

End Select

End Function


Bien cordialement,

HB



---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
DanielCo
Le #26392758
Bonjour,
Avec 6 formats conditionnels :
3 pour les entiers :
=ET($A$1<1000;$A$1=ENT($A$1)), format : #" o" (remplacer "o" par "omega"
=ET($A$1>00;$A$1=ENT($A$1);$A$1<1000000) format : #.## " Ko"
=ET($A$1>00000;$A$1=ENT(A1)), format #.## "Mo".
en faire 3 pour les décimales.
Daniel

Bonjour à tous,

Comment avoir un format général pour afficher tout les cas possibles de
valeurs en ohm ?

- Valeur de x < 1000 = x Ω
- Valeur de x > 1000 et < 10000 = x KΩ
- Valeur de x > 100000 = x MΩ

Une autre condition :

- Si la valeur de x et décimale on affichera x,xx sinon on affichera x sans
virgule.

Merci d'avance.
HB
Le #26392776
Bonsoir,

Modifications pour clarifier les histoires d'arrondis :o)


Public Function Ohm(X As Variant) As Variant

Select Case VarType(X)
Case 2 To 6, 14, 17, 20

If X >= 10 ^ 6 Then
Y = WorksheetFunction.Round(X / 10 ^ 6, 2)
Ohm = CStr(Y) + " M" + ChrW(&H3A9)
ElseIf X >= 1000 Then
Y = WorksheetFunction.Round(X / 10 ^ 3, 2)
Ohm = CStr(Y) + " k" + ChrW(&H3A9)
Else
Y = WorksheetFunction.Round(X, 2)
Ohm = CStr(Y) + " " + ChrW(&H3A9)
End If
Case Else

Ohm = CVErr(xlErrValue)

End Select

End Function


Cordialement,

H.B.



---
L'absence de virus dans ce courrier électronique a été và ©rifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Apitos
Le #26392777
Bonjour HB, DanielCo,

Merci pour vos réponses.

Seulement pour les formules, je ne peux avoir le formatage au moment de la saisie. Il faudra une colonne intermédiaire pour l'avoir.

Pour le MFC, j'ai essayé d'appliquer les formules proposées, mais je n' ai pas eu le résultat voulu !

Les essais en PJ :

http://www.cjoint.com/c/FCqsvXxqAs7
Publicité
Poster une réponse
Anonyme