• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Hoe verwijder je een plaatje uit een bepaald bereik

Status
Niet open voor verdere reacties.

Atara7

Gebruiker
Lid geworden
13 okt 2008
Berichten
34
Goedendag allen!

Ik zit met een vraag... , joh :rolleyes:
Als je in excel met vba 36 regels copieert, copieert hij de plaatjes mee.
Als je die regels met vba verwijdert, verwijdert hij alles, behalve de plaatjes... ?
Nu heb ik gezocht op internet en heb ik de volgende code gebruikt

Sub Test()
Dim Sh As Shape
With Worksheets("Sheet1")
For Each Sh In .Shapes
If Not Application.Intersect(Sh.TopLeftCell, .Range("C1:C50")) Is Nothing Then
If Sh.Type = msoPicture Then Sh.Delete
End If
Next Sh
End With
End Sub

De met BOLD aangeduide regel geeft nu echter de volgende foutmelding:
Deze eigenschap of methode wordt niet ondersteund door dit object.

Iemand enig idee wat er mis is?
Alvast bedankt! , Aat


PS: Berijk is natuurlijk bereik... :o
 
Laatst bewerkt:
Aat, bij mij werkt hij eigenlijk perfect.
Probeer anders volgende eens

Code:
Sub Verwijderen()
    DeleteShapesInRange Blad1.Range("C1:C50") 'Geef hier het te controleren bereik op
End Sub
Sub DeleteShapesInRange(rng As Range)
    Dim shpTemp As Shape
    Dim lngIndex As Long
    With rng.Parent
        For Each shpTemp In .Shapes
            For lngIndex = .Shapes.Count To 1 Step -1
                If Not Intersect(rng, .Shapes(lngIndex).TopLeftCell) Is Nothing Then
                    If Not Intersect(rng, .Shapes(lngIndex).BottomRightCell) Is Nothing Then
                        .Shapes(lngIndex).Delete
                    End If
                End If
            Next
        Next
    End With
End Sub

Mvg

Rudi
 
Bedankt Rudi! :)
Ik ga het morgen gelijk proberen!
Excel staat op m'n werk dus morgenmiddag laat ik even weten of het gelukt is!

Alvast bedankt :thumb: Aat
 
Sorry, beetje late reactie van mij maar het is helaas nog steeds niet gelukt
Ik gebruik nu:

Sub Test()
Dim Sh As Shape
With Worksheets("Sheet1")
For Each Sh In .Shapes
If Sh.Type = msoPicture Then Sh.Delete
End If
Next Sh
End With
End Sub

Hierdoor worden alle plaatjes van Sheet1 verwijderd.
Vervolgens heb ik, met behulp van een macro, een plaatje uit een ander werkblad (Sheet 2) gecopieerd en op dezelfde plaats in Sheet1 terug gezet en in de formule verwerkt.

Het werkt... maar echt netjes is het niet... :rolleyes:

Als er nog iemand een ander idee heeft?
Groetjes, Aat
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan