• 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.

Foutmelding VBA onderdrukken

Status
Niet open voor verdere reacties.

BertDP

Gebruiker
Lid geworden
9 dec 2009
Berichten
29
Hallo allemaal,

In een excel bestand laad ik via een macro een foto op. Als er geen foto in het archief zit komt er een foutmelding. (Fout 1004 tijdens uitvoering: Eigenschap Insert van klasse Picture kan niet worden opgehaald).

Ik wou de foutmelding onderdrukken via Application.DisplayAlerts = False maar ik blijf de fout krijgen.

Ik zou dus willen dat als er geen foto in het bestand zit, er niets gebeurt.

Enig idee wat ik verkeerd doe? (heb al gezocht op het forum maar vind niet onmiddellijk de juiste oplossing / ben ook geen expert in macro's).

Alvast bedankt voor de tips,


Code:
Private Sub Worksheet_Change(ByVal Target As Range)


If Target.Address = "$J$6" Then

Range("N6").Select 
Dim picname As String
picname = Range("T1") 

ActiveSheet.Pictures.Insert("Q:\Test\" & picname & ".jpg").Select 


With Selection
.Left = Range("N4").Left
.Top = Range("N4").Top
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = 250#
.ShapeRange.Width = 250#
.ShapeRange.Rotation = 0#
End With



End If
End Sub
 
Doe het eens zo:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$J$6" Then
        Range("N6").Select
        
        On Error Resume Next
        ActiveSheet.Pictures.Insert("Q:\Test\" & Range("T1") & ".jpg").Select
        With Selection
            .Left = Range("N4").Left
            .Top = Range("N4").Top
            .ShapeRange.LockAspectRatio = msoFalse
            .ShapeRange.Height = 250
            .ShapeRange.Width = 250
            .ShapeRange.Rotation = 0
        End With
        On Error GoTo 0
    End If
End Sub
Zo ontwijk je ALLE fouten. Dat is niet netjes want je zou per fout moeten reageren, maar in dit geval kan het in dit kleine stukje code wel. En wen jezelf ook aan om inspringpunten op de relevante plaatsen te gebruiken. De # tekens achter de getalwaarden mag je in VBA weg laten.

Tevens de variabele picname verwijderd omdat deze overbodig was.
 
Laatst bewerkt:
Dag Ed,

Bedankt voor de snelle reactie.

Jouw oplossing werkt perfect! Ik begrijp ook de redenering achter jouw oplossing. Het is beter opgebouwd dan mijn eerste aanzet.

Bedankt voor de tip!
 
Graag gedaan :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan