Suppression d'image après impression

Clo from Ghost World

XLDnaute Nouveau
Bonjour à tous,

Mon projet VBA est bientôt terminé et je remercie le forum à travers les discussions que j'ai lu et les réponses que vous avez apporté à mes questions.

Toutefois, il me reste un dernier point à régler et je vous demande une petite aide sur ce point qui n'est pas très difficile.

J'ai une feuille "Impression" dans mon classeur Excel qui me permet d'importer toutes les données d'un UserForm (crée sous forme de multipages) pour avoir une seule page avec toutes les infos. Parmi ces infos, il y a une photo que j'aimerais supprimer à chaque fin d'impression ou avant chaque impression pour ne pas que les photos se superposent indéfiniment (surtout qu'elles n'ont souvent pas la même taille).

Après avoir lu plusieurs choses ici, j'ai essayé divers codes du genre :

Code:
ActiveSheet.shapes.Picture.select
Selection.delete

Code:
Activesheet.pictures.delete

ou

Code:
Image.Picture.delete


... mais ça ne marche pas. Une bonne âme sensible peut-elle venir à ma rescousse ?? ;-)

Merci à vous !
 

Clo from Ghost World

XLDnaute Nouveau
Re : Suppression d'image après impression

Mon programme Excel étant plus caractériel que je ne le pensais (parfois il me trouve des bugs mais il suffit que je redémarre le programme et les bugs ne sont bizarrement plus là ! allez savoir !). Tout ça pour dire que le code "activeSheet.pictures.delete" fonctionne très bien même trop bien car du coup, ça m'enlève toutes les images de ma feuille Excel. Or, je veus juste supprimer la photo lié au CV, pas l'image d'en-tête et d'autres images qui restent les mêmes quelque soit le CV.

J'aimerais trouver un code qui dirait quelque chose du genre "If Image <> Image(en tête) then activesheet.Pictures.delete" et faire ça pour toutes les images que je ne souhaite pas effacer.

Est-ce possible ? Pouvez vous m'aider s'il vous plait ?

Merci à vous !
 

vbacrumble

XLDnaute Accro
Re : Suppression d'image après impression

Re


Oui c'est possible, mais il faut identifier la position et le nom de l'image.

Insère une image en A1 puis lance la macro ci-dessous
Code:
Sub nomImage()
    Dim Plg As Range, Shp As Shape
    Set Plg = Range("A1")
    For Each Shp In ActiveSheet.Shapes
        If Intersect(Shp.TopLeftCell, Plg) Is Nothing Then
            '
        Else
            MsgBox Shp.Name
            Exit For
        End If
    Next Shp
End Sub
 
Dernière édition:

vbacrumble

XLDnaute Accro
Re : Suppression d'image après impression

Re



Ici on identifie le Type

Insère en A1 une forme automatique, un rectangle
par exemple
La msgbox dans ce cas ne s'affichera pas
Code:
Sub nomImageII()
    Dim Plg As Range, Shp As Shape
    Set Plg = Range("A1")
    For Each Shp In ActiveSheet.Shapes
        If Intersect(Shp.TopLeftCell, Plg) Is Nothing Then
            '
        Else
        If Shp.Type = 13 Then MsgBox Shp.Name & Chr(13)
            Exit For
        End If
    Next Shp
End Sub
 
Dernière édition:

Statistiques des forums

Discussions
312 195
Messages
2 086 078
Membres
103 112
dernier inscrit
cuq-laet