Ciao Tullio,
vedo che oltre la macro z_FORME () hai altre valide macro per un debug del codice. Per risolvere il problema, se è vero che la z_FORME () ti cancella anche le celle di convalida ti consiglierei di usare z_nomi_delle_forme () per vedere se tra gli oggetti che stampi nella finestra immediata riconosci le celle incriminate e notare se queste vengono riconosciute come Shapes.
Se è così, prima di cancellare la forma puoi usare la tecnica che hai usato in Pulsanti_invisibili ():
If Left(nameshp, xx) = "yyyyyy" Then
Non ho potuto provare con celle di convalida, ma penso che, se riesci a capire che tali celle vengano individuate come Shapes, possano essere salvate.
Io ho provato con del semplice testo nel foglio e numerosi tipi di Shapes e non è successo nulla di indesiderato.
Ecco come modificherei la sub z_FORME()
Sub z_FORME()
Dim shp As Shape
Dim nameshp As String
For Each shp In ActiveSheet.Shapes
nameshp = shp.Name
If Left(nameshp, x) <> "yyyyyy" Then
shp.Delete
End If
Next shp
End Sub