Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1680 connectés 

  FORUM HardWare.fr
  Windows & Software
  Logiciels

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2810095
xolth
Ranx.. znort!
Posté le 30-09-2008 à 02:35:26  profilanswer
 

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;

mood
Publicité
Posté le 30-09-2008 à 02:35:26  profilanswer
 

n°2810098
seniorpapo​u
Posté le 30-09-2008 à 08:01:21  profilanswer
 

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
 

n°2810143
Xspawn_Lpc
Posté le 30-09-2008 à 11:00:25  profilanswer
 

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 !
n°2857203
NikoBe
Posté le 04-05-2009 à 18:01:34  profilanswer
 

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

n°2857233
xolth
Ranx.. znort!
Posté le 04-05-2009 à 19:46:05  profilanswer
 

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?

n°2857394
NikoBe
Posté le 05-05-2009 à 09:48:36  profilanswer
 

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.

n°2857611
seniorpapo​u
Posté le 05-05-2009 à 17:22:27  profilanswer
 

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

n°2857749
xolth
Ranx.. znort!
Posté le 05-05-2009 à 22:52:54  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Logiciels

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

 

Sujets relatifs
Question aux pros d'Excel (pourcentages)[Excel] Erreur à l'ouverture du document
Outlook2003 style d'impression en fonction du format de l'email ?Problème Excel: Liaisons
Excel : graph dépendant d'un paramètremon pc met 3 min a afficher la fenêtre pour s'arrêter
[EXcel 2007] Calculer un encadrementproblème formule tableaur excel
[Excel] RechercheV sans ouvrir le fichier source ?Tableau excel Liaison ou pas?
Plus de sujets relatifs à : [excel][format de cellule]: n'afficher les décimale que s'il y en a.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR