Effacer les 0 sans supprimer les cellules

tinou63

XLDnaute Nouveau
Bonjour à tous,

J'aimerais connaitre la solution pour effacer et non supprimer à l'aide d'une macro, les 0 dans sur une plage de cellule exp (F8:BA3500).
Merci pour votre aide.
:(
 

Tibo

XLDnaute Barbatruc
Re : Effacer les 0 sans supprimer les cellules

Bonjour,

J'ai un peu de mal à cerner la différence entre "effacer" et "non supprimer".

Tu peux appliquer un format personnalisé de ce type :

Code:
0.00;0.00;


Tu peux également passer par une Mise en Forme Conditionnelle : appliquer une police blanche si contenu cellule est égal à zéro.

@+
 

Etienne2323

XLDnaute Impliqué
Re : Effacer les 0 sans supprimer les cellules

Salut Tinou,Tibo :)
un peu comme notre ami Tibo, j'arrive difficilement à faire la distinction entre "Effacer" et "Supprimer", mais bon ...

Une autre solution serait simplement de faire un "CTRL+H" et de remplacer les 0 par du vide.

À te relire pour plus,

Étienne
 

Victor21

XLDnaute Barbatruc
Re : Effacer les 0 sans supprimer les cellules

Bonjour tinou63, Etienne2323, Tibo

Pour compléter les propositions des intervenants précédents, si les cellules sont issues d'une formule, teste ta formule, pour qu'elle ne renvoie pas de zéro:
Code:
La formule =A3-A2 renverra 0 si A3=A2
mais
Code:
la formule = si(A2=A3;"";A3-A2) te renverra une chaine vide.
Mais sans un petit fichier joint avec quelques unes de tes données en exemple, difficile de te conseiller plus précisément.
:)

Edit : Bonjour, 26/6
 

tinou63

XLDnaute Nouveau
Re : Effacer les 0 sans supprimer les cellules

Bonsoir Tibo,

J'extrais des données et pour qu'une moyenne soit calculée sans les cellules à 0, je filtre et supprime manuellement les quantités à 0.
C'est pour cela que je voudrais me servir d'une macro sur une plage de donnée.
Cdlt.
 

tinou63

XLDnaute Nouveau
Re : Effacer les 0 sans supprimer les cellules

Bonsoir Etienne2323,

Je voudrais éviter de filtrer pour retirer les 0 qui me sert à calculer une réelle moyenne.
Me servir d'une macro pour une plage de cellule qui supprimerai les cellules contant des 0.
Cdlt.
 

hellnar

XLDnaute Junior
Re : Effacer les 0 sans supprimer les cellules

La solution me semble possible sans macro avec une formule du type (si données est la zone des données)
=SOMME.SI(données;"<>0")/NB.SI(données;"<>0")
puisque la moyenne est la division de la somme par le nombre !!
 

hellnar

XLDnaute Junior
Re : Effacer les 0 sans supprimer les cellules

Ok, je n'avais pas compris.
Pour complèter mon message précédent, il y a encore plus simple :=MOYENNE.SI(données;"<>0")
juste pour la culture.
La macro qui supprime tous les zéros d'une feuille est la suivante
Sub ote_zero()

Selection.SpecialCells(xlCellTypeConstants, 1).Select
For Each cellule In Selection
If cellule.Value = 0 Then cellule.Clear
Next

End Sub

La première ligne ne sélectionne que les valeurs numériques puis on teste chacune des cellules et on l'efface si elle est égale à zéro.
Si on veut par exemple conserver une trace on peut mettre autre chose à la place comme un "o" par exemple puis une fois le travail terminé, remettre les zéros en place en remplacant tous les o par 0 !
Sur ce je vais me coucher.
Bonne nuit
 

tinou63

XLDnaute Nouveau
Re : Effacer les 0 sans supprimer les cellules

Bonjour hellnar,

Bien content que cela fonctionne.
Pourrait-ont faire fonctionner cette macro juste à chaque sélection de plage qui sera évidement différente pour chaque traitement.
je te remercie par avance.
Cdlt.
Je viens de mettre en fonction la référence relative sur Excel 2010 cela fonctionne mais il ne faut pas que j'oublie cette manipulation sinon j'aurai certaines cellules avec fonction qui vont sauter.
Je préfère faire fonctionner la macro suite à ma sélection.
Merci pour l'aide
 
Dernière édition:

CB60

XLDnaute Barbatruc
Re : Effacer les 0 sans supprimer les cellules

Bonjour
En modifiant la macro précedente.
Sub ote_zero()
Dim plg As Range
Set plg = Application.InputBox _
("Sélectionner une cellule", , , , , , , 8)
mavariable = plg.Address
'MsgBox mavariable
Range(mavariable).SpecialCells(xlCellTypeConstants, 1).Select
For Each cellule In Selection
If cellule.Value = 0 Then cellule.Clear
Next
[A1].Activate
End Sub
 

Discussions similaires

Réponses
17
Affichages
518

Statistiques des forums

Discussions
312 472
Messages
2 088 710
Membres
103 929
dernier inscrit
Tangerine9