Suppression de photos après avoir généré un pdf

bonjour,

j'ai un fomulaire technique avec du texte et des photos.

j'ai un bouton "générer PDF" relié à une VBA qui fait un reset de toutes les zones textes = OK, mais les photos ne se suppriment pas.

les photos sont insérées via "illsutrations" puis "images" puis "placé dans la celulle" car il y a une VBA pour ajuster la photo au la cellule.

ci dessous la VBA en question:

Sub ExporterEnPDF()
Dim feuilleFormulaire As Worksheet
Dim cheminPDF As String
Dim numeroREX As String
Dim numeroREXFormate As String
Dim shape As shape

' Référence à la feuille "Formulaire REX"
Set feuilleFormulaire = ThisWorkbook.Sheets("Formulaire REX")

' Obtenir le numéro de REX dans la cellule F3 et formater avec 4 chiffres
numeroREX = feuilleFormulaire.Range("F3").Value
numeroREXFormate = Format(numeroREX, "0000") ' Formate avec 4 chiffres, e.g., "0003"

' Définir le chemin du PDF avec le numéro de REX directement comme nom
cheminPDF = "C:\Users\" & Environ("Username") & "\Desktop\" & numeroREX & ".pdf"

' Vérification du répertoire (et affichage du chemin pour débogage)
If Dir("C:\Users\" & Environ("Username") & "\Desktop\", vbDirectory) = "" Then
MsgBox "Répertoire introuvable !", vbCritical
Exit Sub
Else
MsgBox "Chemin du fichier PDF : " & cheminPDF ' Affiche le chemin du PDF pour débogage
End If

' Définir la zone d'impression explicitement pour inclure tout le contenu nécessaire
feuilleFormulaire.PageSetup.PrintArea = "A1:AE44" ' Ajustez cette plage en fonction de votre besoin

' Exporter la feuille active en PDF avant de remettre à zéro les champs
On Error GoTo ErreurPDF
feuilleFormulaire.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=cheminPDF, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
MsgBox "PDF généré avec succès : " & cheminPDF, vbInformation

' Réinitialisation des champs texte et des zones de texte après l'exportation
feuilleFormulaire.Range("B3").Value = "" ' Liste déroulante B3
feuilleFormulaire.Range("B4").Value = "" ' Liste déroulante B4
feuilleFormulaire.Range("B8").Value = "" ' Champ texte B8
feuilleFormulaire.Range("E8").Value = "" ' Champ texte E8
feuilleFormulaire.Range("B9").Value = "" ' Champ texte B9
feuilleFormulaire.Range("B13").Value = "" ' Champ texte B13
feuilleFormulaire.Range("D13").Value = "" ' Champ texte D13
feuilleFormulaire.Range("D14").Value = "" ' Champ texte D14
feuilleFormulaire.Range("F13").Value = "" ' Champ texte F13
feuilleFormulaire.Range("F14").Value = "" ' Champ texte F14
feuilleFormulaire.Range("B16").Value = "" ' Champ texte B16
feuilleFormulaire.Range("Q1").Value = "" ' Zone texte Q1
feuilleFormulaire.Range("Q19").Value = "" ' Zone texte Q19
feuilleFormulaire.Range("I1").Value = "" ' Zone texte I1
feuilleFormulaire.Range("I19").Value = "" ' Zone texte I19
feuilleFormulaire.Range("Y1").Value = "" ' Zone texte Y1
feuilleFormulaire.Range("Y19").Value = "" ' Zone texte Y19

' Réinitialiser la zone de texte "zoneTexte"
On Error Resume Next ' Ignore errors if "zoneTexte" is not found
feuilleFormulaire.Shapes("zoneTexte").TextFrame.Characters.Text = ""
On Error GoTo 0 ' Retour à la gestion d'erreurs standard

' Suppression de toutes les images et formes via la collection Shapes
On Error Resume Next ' Ignore les erreurs si aucune photo n'est trouvée
For Each shape In feuilleFormulaire.Shapes
If shape.Type = msoPicture Or shape.Type = msoLinkedPicture Then
shape.Delete ' Suppression des images et formes graphiques
End If
Next shape
On Error GoTo 0 ' Arrêter d'ignorer les erreurs

Exit Sub

ErreurPDF:
MsgBox "Erreur lors de l'enregistrement du PDF : " & Err.Description, vbCritical
End Sub

auriez vous une idée pour m'aider!!!

merci d'avance.

Bonjour,

C’est cette partie qui pose problème ? En êtes -vous sûr ? En retirant “On Error Resume Next”, quel est le message d’erreur renvoyé. Il faut bien faire attention avec cette instruction, souvent elle cache d’autres erreurs auxquelles on n’a pas pensé.

' Suppression de toutes les images et formes via la collection Shapes
On Error Resume Next ' Ignore les erreurs si aucune photo n'est trouvée
For Each shape In feuilleFormulaire.Shapes
If shape.Type = msoPicture Or shape.Type = msoLinkedPicture Then
shape.Delete ' Suppression des images et formes graphiques
End If
Next shape
On Error GoTo 0 ' Arrêter d'ignorer les erreurs

Dans l’attente de votre confirmation, car à part le titre vous n’avez pas trop décrit le problème.

bonjour,

oui en effet c'est cette partie qui pose probleme aucune photo ne se supprime alors que toute la partie texte fonctionne, et je n'ai aucune erreur qui remonte. c'est comme si la VBA ne trouvait pas les photos!!

j'ai créé des cellules photo en H3/H21/P3/P21/X3/X21

comment pourais je faire pour que les photos se suppriment?

cdlt,

Bonjour,

D'accord, dans ce cas pouvez-vous joindre un fichier d'exemple où l'erreur se produit ?

Ma première intuition est que le code n'arrive pas à "accéder" aux images, mais j'aimerai trouver pourquoi.

probleme résolu,

la photo était dans une cellule ce qui fait que je devais appliquer la meme demande que pour les zones textes!!

merci

Rechercher des sujets similaires à "suppression photos genere pdf"