Objectvariabele of blokvariabele With is niet ingesteld

Status
Niet open voor verdere reacties.

jhonny1990

Nieuwe gebruiker
Lid geworden
14 mei 2018
Berichten
2
Beste,

Ik heb twee macro's in mijn werkblad:

1. Module

Code:
Sub Vernieuwen()

    ' Vernieuw allle objecten
    ActiveWorkbook.RefreshAll

End Sub

2. Microsoft Excel-object

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    ' Controleer of kolom A is gevuld met de hoofdletter L
    If Intersect(Target, Range("A:A")) = "L" Then
    
        ' Selecteer werkblad Logboek indien aan voorwaarde wordt voldaan
        Worksheets("Onderhanden projecten logboek").Select
        
    End If
End Sub

De twee macro's werken afzonderlijk wél, maar zodra ik beide macro's in het werkblad zet en op de knop vernieuwen klik krijg ik de volgende foutmelding:

Fout 91 tijdens uitvoering:

Objectvariabele of blokvariabele With is niet ingesteld

Weet iemand wat ik fout doe?
 
Ik vermoed dat de 'RANGE("A:A")' het probleem is. omdat gezien de constructie, Range op een ander werkblad kan staan dan "TARGET". Maar een klein voorbeeldbestandje doet wonderen om dat de controleren.
 
Bedoel je dit niet?


Code:
If Target.Column = 1 And InStr("L", Target) Then
 
Daarnaast heb je die hele intersect niet nodig en gebruik je de controle erop sowieso verkeerd.

Edit:
Wat SjonR zegt dus, maar dan zonder de Instr ;)
 
Laatst bewerkt:
Als hij alleen actie wil bij een enkele L dan is Instr inderdaad niet nodig. :thumb:
 
Dus:
Code:
If Target.Column = 1 And Target.Value = "L" Then
:)
 
Maar toch ben ik benieuwd hoe de macro dan toch kon werken! Lijkt mij niet namelijk.
 
Alleen als de actieve kolom inderdaad A is.
 
Het probleem is dat je geen Target hebt als je op die knop 'Vernieuwen' klikt.
Target wordt activecell.
 
@HSV: het zijn twee afzonderlijke macro's. Wanneer ik op de knop Vernieuwen klik worden alle tabellen vernieuwd. Deze knop hoeft verder ook niets te doen.

Nu ik de code heb aangepast naar:

Code:
If Target.Column = 1 And Target.Value = "L" Then

Krijg ik de volgende melding:

Fout 13 tijdens uitvoering:

Typen komen niet met elkaar overeen

Ik heb nu net begonnen met VBA. Dit stukje code heb ik voor een deel uit een boek en aangepast. Ik weet niet waarom het nu mis gaat.
 
Als je begint met VBA kun je beter van gebeurtenissencode afblijven.
Neem eerst de eerste 10 hoofdstukken van het boek door zonder een eigen bestand, maar slechts met de voorbeelden uit het boek.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan