[excel][format de cellule]: n'afficher les décimale que s'il y en a.

: n'afficher les décimale que s'il y en a. [excel][format de cellule] - Logiciels - Windows & Software

Marsh Posté le 30-09-2008 à 02:35:26    

Bonjour,
Comment faire pour choisir un format à deux décimales qui n'affiche pas les "virgule zéro-zéro" à chaque fois qu'on tombe sur un nombre entier? (exemple: 1,00  :fou: )
Merci;

Reply

Marsh Posté le 30-09-2008 à 02:35:26   

Reply

Marsh Posté le 30-09-2008 à 08:01:21    

Bonjour,
il y a certainement plus simple, mais si tu n'as pas de réponse voici une solution à adapter:
 
Private Sub Worksheet_Change(ByVal Target As Range)
lim = Range("a65000" ).End(xlUp).Row
For i = 1 To lim
Cells(i, 1).Select
Selection.NumberFormat = "0.00"
If Round(Selection) = Selection Then Selection.NumberFormat = "0"
Next i
End Sub
 
attention, la boucle se fait sur toutes les cellules à chaque fois que l'on saisit une donnée dans le tableau. Si tu veux ne le faire que pour la cellule en cours, il faut utiliser target:
Private Sub Worksheet_Change(ByVal Target As Range)
target.Select
Selection.NumberFormat = "0.00"
If Round(Selection) = Selection Then Selection.NumberFormat = "0"
 
End Sub
 

Reply

Marsh Posté le 30-09-2008 à 11:00:25    

Format de cellule -> personnalisé  -> 0.## (ou 0,## selon la config); tu peut rajotuer des # si tes nombres contiennent plus de chiffres après la virgule.

 

Par contre je ne sais pas comment ne pas afficher la virgule (ou le point)

 

Quelques sources :
http://www.ozgrid.com/Excel/CustomFormats.htm
http://itg.unl.edu/resources/docum [...] ormats.pdf


Message édité par Xspawn_Lpc le 30-09-2008 à 11:00:58

---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !
Reply

Marsh Posté le 04-05-2009 à 18:01:34    

La solution de seniorpapou donne le résultat le plus correct (puisque sans virgule).
Néanmoins, il serait bien de pouvoir n'appliquer cette fonction uniquement sur les cellules qui ont un certain format (style numérique). Sinon, pour peux que la feuille Excel comporte d'autre style de donnée, la fonction va vite renvoyer une erreur.
 
D'où ma question : comment tester le formatage d'une cellule
 
If <format cellule = numérique> alors
    ... code de seniorpapou
sinon
    exit
fin

Reply

Marsh Posté le 04-05-2009 à 19:46:05    

seniorpapou a écrit :

Bonjour,
il y a certainement plus simple, mais si tu n'as pas de réponse voici une solution à adapter:
 
Private Sub Worksheet_Change(ByVal Target As Range)
lim = Range("a65000" ).End(xlUp).Row
For i = 1 To lim
Cells(i, 1).Select
Selection.NumberFormat = "0.00"
If Round(Selection) = Selection Then Selection.NumberFormat = "0"
Next i
End Sub
 
attention, la boucle se fait sur toutes les cellules à chaque fois que l'on saisit une donnée dans le tableau. Si tu veux ne le faire que pour la cellule en cours, il faut utiliser target:
Private Sub Worksheet_Change(ByVal Target As Range)
target.Select
Selection.NumberFormat = "0.00"
If Round(Selection) = Selection Then Selection.NumberFormat = "0"
 
End Sub

 


Bonjour pardon pour la réponse tardive, et merci. C'est toujours d'actualité.
Alors oui, seulement pour les cellules spécifiées. Mais où doijs-je entrer ce code? en passant par les macros?

Reply

Marsh Posté le 05-05-2009 à 09:48:36    

Pour encoder cette macro, une fois dans Excel (avec ton fichier ouvert), tape sur ALT+F11. Une fenêtre Visual Basic va s'ouvrir.
Là, dans la fenêtre d'exploration de gauche, tu as une arborescence. Double-cliques sur "Sheet1" (ou "Feuille1" si c'est en français), une fenêtre blanche va s'ouvrir comme fenêtre principale.
Colles-y simplement le code de seniorpapou. Attention, il faut soit coller la première solution, soit la deuxième, mais pas les deux (ou alors commenter l'une des deux en rajoutant une apostrophe devant chaque ligne).
Sauve et ferme. Voilà, la macro est d'application pour chaque cellule que tu changeras.  
Je l'ai testé, et ça fonctionne très bien, sauf justement que la macro ne fait pas de différence entre une cellule de type numérique ou une autre. Donc si tu rentres par exemple "Y" dans une cellule, comme la macro va s'exécuter pour n'importe quelle cellule en cours, la macro va renvoyer une erreur chaque fois qu'on rentre une valeur non numérique.
 
Il existe certainement des fonctions de conversions de types pour pouvoir faire des calculs, mais je ne les connais pas et elles sont certainement moins "certaines" que d'utiliser directement les bons types.

Reply

Marsh Posté le 05-05-2009 à 17:22:27    

Bonsoir,
pour complèter ce qu'à écrit NikoBe, si tu connais le ou les endroits où se trouvent tes données à afficher, on peut te donner la séquence qui teste la ou les colonnes à traiter, et éviter ainsi le soucis des cellues alpha.
Cordialement

Reply

Marsh Posté le 05-05-2009 à 22:52:54    

Ca devient trop compliqué. En tout cas ça montre à quel point on peut aller loin avec Excel.
Sinon j'ai trouvé une alternative: pour faire disparaître les zéros, je mets manuellement la cellule en format "nombre".


Message édité par xolth le 05-05-2009 à 22:53:34
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed