Merci pour votre retour,
J'ai testé les deux et ça ne fonctionne pas. Ce que j'ai oublié de vous préciser c'est que j'ai un code qui me créer un enregistrement en pdf après vérifications du remplissage de toutes les cellules importantes dont certaines avec des images.
Je souhaitais donc incrémenter votre code dans celui existant pour qu'en plus de vider les cellules ayant été remplies de supprimer les images. Voici donc l'ensemble du code :
Sub enregistrer()
Vide = 0 ' Variable vaut 1 si une cellule est vide
Tablo = Array([G5], [F7], [F8], [H9], [H8], [H9], [I8], [I9], [J8], [J9], [G12], [A15], [C19], [C21], [C24], [C27], [F19], [F21], [F24], [F27], [G19], [G21], [G24], [G27], [E32:E43], [E50:E58], [D63
71], [A74], [E74], [A84]) ' On définit dans le tableau les cellules qui doivent être non vides
' On vérifie qu'aucune cellule désignée n'est vide
For i = 0 To UBound(Tablo)
For Each cell In Tablo(i)
If cell.Value = "" Then Vide = 1: Exit For
Next cell
' Si Vide =1 donc une cellule vide donc on émet un message et on sort.
If Vide = 1 Then
MsgBox "Veuillez remplir tous les champs." & Chr(10) & "Enregistrement impossible."
Exit Sub
End If
Next i
Chemin = "C:\Users\REDIF\OneDrive - REDIF\REDIF - Documents\Registre d'exploitation\Journalier\" ' Ne pas oublier le "\ à la fin
NomFichier = "Gare 1 - " & Format(Date, "yyyy-mm-dd") & ".pdf"
ChDir Chemin
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & NomFichier _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
' On vide les cellules, à mon avis inutile car ensuite on quitte le fichier sans enregistrer
For i = 0 To UBound(Tablo)
For Each cell In Tablo(i)
cell.Value = ""
Next cell
Next i
For Each s In ActiveSheet.Shapes
If Not Intersect(s.TopLeftCell, Range("$G$1:$J$12")) Is Nothing Then s.Delete
Next s
' On quitte le fichier sans enregistrer
ActiveWorkbook.Close False
End Sub
Quand j'active le code les images se suppriment mais j'ai un code erreur et la partie ci dessous est surligné en jaune:
If Not Intersect(s.TopLeftCell, Range("$G$1:$J$12")) Is Nothing Then s.Delete
Pouvez vous m'aider s'il vous plait ?