Supprimer la virgule si zéro après ? [Excel] - Logiciels - Windows & Software
Marsh Posté le 13-08-2007 à 16:09:17
Lmarco a écrit : Bonjour, |
Salut
Tes nombres sont-ils tous positifs et sont-ils classés par ordre croissant?
Marsh Posté le 13-08-2007 à 16:22:33
TAM136 a écrit : |
Oui, tous positifs. En colonne verticale, mais pas d'ordre croissant. Ca donne par exemple :
3,
2,2
1,5
6,
4,
Etc
Marsh Posté le 14-08-2007 à 08:45:17
J'ai une solution qui n'est pas forcément la plus simple.Il y a surement plus simple mais en attendant, je te la propose.Il s'agit de la macro suivante:
Sub DeleteDoubleZero()
For i = 1 To 8
'Tu remplaces 8 par ta dernière ligne
For j = 1 To 1
'Je suppose que tu n'as qu'une colonne
Cells(i, j).Select
If Cells(i, j) = 3# Or Cells(i, j) = 6# Or Cells(i, j) = 4# Then
'Tu continues bien sûr Or Cells(i, j) = 7,8...
Selection.NumberFormat = "0"
End If
Next j
Next i
End Sub
Je suppose que tes cellules sont au format nombre et que tu as donc: 3,00 par exemple.
Marsh Posté le 14-08-2007 à 10:44:50
TAM136 a écrit : J'ai une solution qui n'est pas forcément la plus simple.Il y a surement plus simple mais en attendant, je te la propose.Il s'agit de la macro suivante: |
Merci
Pb :
"Référence de variable de contrôle incorrecte dans next" (il souligne en jaune la première ligne si je met rien entre les parenthèses".
Si je veux appliquer ça à toute la colonne "D", je remplace "I" par "D", ou rien à voir ?
(Je suis inculte en Visual Basic ^^)
Marsh Posté le 14-08-2007 à 12:32:18
Lmarco a écrit : |
i représente la ligne
Par exemple For i=1 To 8 signifie de la ligne 1 à la ligne 8
Quand tu dis toute la colonne D, tu veux vraiemnt dire toute la colonne D ou de la ligne 1 à une autre ligne
j représente la colonne
For j=1 To 1 représnte la colonne 1
For j=4 to 4 représente la colonne 4 ou D
Je considère que ton 1er chiffre (3,00 si la cellule est bien au format nombre à 2 décimales) est en D1. Mais comme je te l'ai dit, je pense qu'il doit y avoir une autre solution d'auant plus que le code est imparfait et ne permet pas de convertir tous les nombres: il faut je pense une instruction du type For Each Cell In Column (D:D) ou Range ("D:D" )...mais là je sèche. Par contre,je ne comprends pas ton erreur.Tu n'as rien à mettre entre les parenthèses sur la 1ère ligne Sub...
Au fait comme me l'a suggéré Senior en MP, quel est le format de tes données?
Marsh Posté le 14-08-2007 à 13:56:59
tu mets ta colonne en format "standard" et ça devrait te les virer
Marsh Posté le 14-08-2007 à 14:34:29
Je ne pouvais pas mettre en forme standard car je n'avais pas que les chiffres brut mais une abbréviation après. Donc format de cellule 0,#" abbréviation"
Mais la macro semble fonctionner, merci beaucoup
Marsh Posté le 14-08-2007 à 15:39:01
Lmarco a écrit : Je ne pouvais pas mettre en forme standard car je n'avais pas que les chiffres brut mais une abbréviation après. Donc format de cellule 0,#" abbréviation" |
De rien.
Marsh Posté le 14-08-2007 à 15:55:38
En fait ça marche, mais ça retire aussi l'abbréviation quand il y a un "0" après la virgule ^^
Marsh Posté le 18-08-2007 à 10:17:09
Lmarco a écrit : En fait ça marche, mais ça retire aussi l'abbréviation quand il y a un "0" après la virgule ^^ |
Désolé mais je ne pense pas que j'aurai le temps de voir ça dans l'immédiat car je suis en vacances sous un soleil de plomb Je vais voir, si je peux faire quelque chose mais je ne te promets rien.
Marsh Posté le 13-08-2007 à 15:55:34
Bonjour,
Je fais en sorte qu'une colonne n'affiche les décimales après la virgule que si ce ne sont pas des zéros. Problème, cela m'affiche par exemple "6,, "7,". Bref, je voudrais que la virgule ne s'affiche que si la décimale n'est pas un zéro.
Merci