Plaatjes verwijderen uit een bepaalde range in Excel middels een macro..

Status
Niet open voor verdere reacties.

Robin121

Gebruiker
Lid geworden
4 mei 2011
Berichten
24
Hoi,
Ik heb een werkblad waarop ik een groota aantal plaatjes heb staan. Ieder plaatje is klikbaar middels een eigen macro en plaatst een kopie van het plaatje bovenaan de worksheet.
Ik probeer een macro samen te stellen die alle plaatjes in een range bovenaan de worksheet laat verdwijnen...dat is lastig want de plaatjes zijn geen content van cellen en zweven er eigenlijk boven. Ook shapes heeft me niet geholpen :confused:
Wie kan helpen?
 
Kun je niet via de "topleftcell" property van de shapes bepalen waar ze ongeveer uithangen?
 
Hoi,

ik heb het volgende gebruikt, doet niks

Dim Sh As Shape
With Worksheets("Score Oost")
For Each Sh In ActiveSheet.Shapes
If Not Application.Intersect(Sh.TopLeftCell, .Range("C8:Y12")) Is Nothing Then
If Sh.Type = msoPicture Then Sh.Delete
End If
Next Sh
End With
Maar begrijp de Application.Intersect ook niet echt goed...

Ik weet dus waar de plaatjes 'uithangen' (C8:Y12)...
 
Laatst bewerkt:
om even te testen kun je in je loop even

msgbox(sh.topleftcell.address)

toevoegen en even kijken of de functie waarden teruggeeft die je verwacht.
 
Werkt, maar hij geeft waarden terug van de locatie van de plaatjes onderin het worksheet, dus de 'buttons'.
En herkent kennelijk de geplaatste plaatjes bovenin niet. In ieder geval niet als shapes...
?
 
Bijna..

Als ik gebruik (Microsoft):

Sub WhatAmI()
Dim sTemp As String

sTemp = "You selected this type of object: " & TypeName(Selection)
sTemp = sTemp & vbCrLf
sTemp = sTemp & "It's name is " & Selection.Name
MsgBox sTemp
End Sub

wordt teruggegeven dat het een Picture betreft.
Om alle plaatjes uit de range C8:Y12 te verwijderen, richt ik de macro als volgt in:

Sub Leegmaken()
Dim pt As Picture
With Worksheets("Score")
For Each pt In ActiveSheet.Pictures
If Not Application.Intersect(pt.TopLeftCell, .Range("C8:Y12")) Is Nothing Then
If pt.Type = Picture Then pt.Delete
End If
Next sh
End With
End Sub

Klopt?
 
Houdt er wel rekening mee dat dit alleen werkt als de macro runt terwijl "score" de actieve sheet is. Je kunt weer even met een messagebox controleren of je de juiste resultaten terugkrijgt. Maar volgens mij zou dit moeten werken
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan