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Ω"
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Ω"
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
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.
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.
"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
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é :
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
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é :
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é :
- 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
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.
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.
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
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