Re bonjour Félix et Claude,
Je viens de tester la macro sur mon ficher Excel :
Sub supp()
With Sheets("Certificat")
.Range("D63:D94").Replace What:="0", Replacement:="", LookAt:=xlWhole
For Each sh In .Shapes
If Not Intersect(.Cells(sh.TopLeftCell.Row, 4), .Range("D63:D94").SpecialCells(xlCellTypeBlanks)) Is Nothing Then
sh.Delete
End If
Next sh
.Range("D63:D94").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
With Sheets("Tableau déperditions")
.Range("D9:D35").Replace What:="0", Replacement:="", LookAt:=xlWhole
For Each sh In .Shapes
If Not Intersect(.Cells(sh.TopLeftCell.Row, 4), .Range("D9:D35").SpecialCells(xlCellTypeBlanks)) Is Nothing Then
sh.Delete
End If
Next sh
.Range("D9:D35").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub
Elle fonctionne, mais quelques problèmes se posent. Elle supprime des images alors que les cellules des lignes correspondantes ne sont pas à zéro, et lorsqu’elle passe sur la page « Tableau déperditions », elle plante.
Le plus simple est que je vous envois le fichier pour que vous puissiez y jeter un œil.
https://www.excel-pratique.com/~files/doc/iyP4qEssai.xls
Pour un probleme de taille de fichier je n'ai pa pu mettre la feuille "Tableau déperditions". Sur cette feuille il n'y a pas d'image, il suffit juste de supprimer les ligne (entre la 9 et la 35) lorque la colonne D est nulle ou égale à zéro.
De plus je n'ai pas pu laisser toute les images. (elle sont remplacées par "image")
En espérant que ca soit assez clair.
Merci pour votre aide
Erwan