Supprimer les cases contenant un 0 avec une macro

Bonjour à tous et merci par avance du temps que vous pourrez consacrer à ma requête !

Alors voila je dispose d'un fichier qui me permet de fusionner plusieurs fichier xls en un (fichier "FusionOptoVierge") . En fichier exemple (fichier "FusionOpto") voici ce que ça donne une fois que j'ai fusionner mes fichier. Ce que je voudrai faire c'est supprimer les cases contenant un "0" (voir exemple sur l'image jointe avec les encadrés en rouge) dans l'intégralité du fichier (sauf celui de la colonne du temps si possible, sinon c'est pas grave si ça le supprime je m'arrangerai autrement).

Avant de demander de l'aide j'ai testeé une petite macro mais elle ne fonctionne pas du tout (fichier "TestOpto" voir la macro Sub DeleteCells) cett emacro peut être modifier ou totalement remplacer peut importe.

Merci et bonne journée !

image
8fusionopto.xlsm (223.81 Ko)
6testopto.xlsm (219.00 Ko)

Bonjour

A priori ce ne sont pas les cellules mais leur contenu que tu veux supprimer

Un cherche et remplace 0 par rien sur les colonnes concernées, avec l'option totalité du contenu de la cellule coché, devrait suffire (manuel ou VBA)

Bonjour,

En fait j'ai dejà essayé en allant dans les options avancés et en décochant "Afficher les zéros" mais j'ai oublié de préciser que je souhaiterai que les valeurs en dessous des zéros remontent (pour ne pas laisser d'espace blanc). Alors que l'option décocher "Afficher les zéros" me laisse des espaces blanc. Donc je pense que c'est supprimer des cellules que je cherche à faire et pas juste leur contenu. C'est vrai que je n'ai pas été assez clair sur mon message précédent.

Merci !

Re

Dans ce cas il faut pour être cohérent supprimer aussi la colonne TimeStamp de ces lignes

Il faut partir du bas de chaque groupe de 4 colonne puis tester si les 3 colonnes contiennent 0 (COUNTIF) et le cas échant utiliser sur le range de 4 cellules un Delete Shift:=xlUp

Bonjour, çà ce complique Si on supprime les cellules à zéro sans supprimer l'info Time stamp en même temps

tout va être décalé.

Oups Chris pense à la même chose je vois bonjour Chris.

J'ai modifié un peu le code et maintenant quand je fusionne j'ai retirer les colonnes(voir fin du code ou j'ai rajouter 3*4 ligne avant le end sub) "Time stamp" qui ne me servait à rien mais pour le zéro ( voir fichier "exemple" ) je n'arrive pas à supprimer les cellules et faire remonter les résultats du dessous.

15exemple.xlsm (172.72 Ko)

RE

With Feuil1
    x = 3
    Do
    Set Plage = .Cells(1, x).CurrentRegion
    If Plage.Cells.Count = 1 Then Exit Do
    For i = Plage.Rows.Count To 1 Step -1
        If WorksheetFunction.CountIf(.Range(Cells(i, x), Cells(i, x + 3)), 0) = 3 Then _
        .Range(Cells(i, x), Cells(i, x + 3)).Delete Shift:=xlUp
    Next i
    x = x + 4
    Loop
End With

Cela fonctionne merci beaucoup !!

Rechercher des sujets similaires à "supprimer cases contenant macro"