OVH Cloud OVH Cloud

nombre en texte

2 réponses
Avatar
cousinhub
Bonjour,
par ce code, j'arrive à formater mes valeurs contenues dans la colonne "1"
selon un format particularisé.
Cependant, si pour la première condition, tout fonctionne parfaitement
(nombre de chiffres :13), pour la seconde condition (nombre de chiffres :
9), excel me renvoie l'erreur "nombre stocké sous forme de texte".
Ceci n'est pas gênant en soi, mais pour effectuer un tri, par exemple, un
message d'erreur survient.
Ma question est donc : quelle différence entre ces deux conditions?

Code :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = "1" Then
If Len(Target) = "13" Then
Target = Format(Target, "0000\ 00\ 000\ 0000")
ElseIf Len(Target) = "9" Then
Target = Format(Target, "00\ 000\ 0000")
End If
End If
End Sub

Merci pour tout éclaircissement

2 réponses

Avatar
cousinhub
Re-,
En complément, je me suis rendu compte que si dans mon format personnalisé,
je mets 4 "0" ou plus dans la première chaîne, excel considère la valeur de
la cellule comme un nombre, au dessous, il le considère comme un texte!!!!
Bug?

"cousinhub" a écrit dans le message de news:
uVx$
Bonjour,
par ce code, j'arrive à formater mes valeurs contenues dans la colonne "1"
selon un format particularisé.
Cependant, si pour la première condition, tout fonctionne parfaitement
(nombre de chiffres :13), pour la seconde condition (nombre de chiffres :
9), excel me renvoie l'erreur "nombre stocké sous forme de texte".
Ceci n'est pas gênant en soi, mais pour effectuer un tri, par exemple, un
message d'erreur survient.
Ma question est donc : quelle différence entre ces deux conditions?

Code :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = "1" Then
If Len(Target) = "13" Then
Target = Format(Target, "0000 00 000 0000")
ElseIf Len(Target) = "9" Then
Target = Format(Target, "00 000 0000")
End If
End If
End Sub

Merci pour tout éclaircissement



Avatar
cousinhub
Re-,
après essais, par ce code :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = "1" Then
If Len(Target) = "13" Then
Target.NumberFormat = "0000 00 000 0000"
ElseIf Len(Target) = "9" Then
Target.NumberFormat = "00 000 0000"
Else
Target.NumberFormat = "General"
End If
End If
End Sub
End Sub

tout fonctionne bien.
Si cela peut aider?????
mais toujours pas compris pourquoi excel m'indique une fois "erreur" et
l'autre fois "tout va bien!!!!"


"cousinhub" a écrit dans le message de news:
eaI1%
Re-,
En complément, je me suis rendu compte que si dans mon format
personnalisé, je mets 4 "0" ou plus dans la première chaîne, excel
considère la valeur de la cellule comme un nombre, au dessous, il le
considère comme un texte!!!!
Bug?

"cousinhub" a écrit dans le message de news:
uVx$
Bonjour,
par ce code, j'arrive à formater mes valeurs contenues dans la colonne
"1" selon un format particularisé.
Cependant, si pour la première condition, tout fonctionne parfaitement
(nombre de chiffres :13), pour la seconde condition (nombre de chiffres :
9), excel me renvoie l'erreur "nombre stocké sous forme de texte".
Ceci n'est pas gênant en soi, mais pour effectuer un tri, par exemple, un
message d'erreur survient.
Ma question est donc : quelle différence entre ces deux conditions?

Code :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = "1" Then
If Len(Target) = "13" Then
Target = Format(Target, "0000 00 000 0000")
ElseIf Len(Target) = "9" Then
Target = Format(Target, "00 000 0000")
End If
End If
End Sub

Merci pour tout éclaircissement