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

set range: foutmelding 91

Status
Niet open voor verdere reacties.

Bakkerken

Gebruiker
Lid geworden
14 dec 2014
Berichten
46
Collega Excel fanaten,

probleempje met onderstaande code:
[Dim rng As range
Set rng = Columns(3).Find(Sheets("menu").range("date").Value, LookIn:=xlValues)
rng.Select]

Hij zoekt een datum die in een cel staat in tabblad menu, celnaam = "date"
Dit doet hij perfect wanneer celeigenschap op "datum" staat, en dan de datum met het sterretje erbij = *14/03/2012 (dit staat er momenteel)

Om verscheidene redenen dient dit aangepast te worden naar een andere celeigenschap, vb 03/14/2012, of 14 maart 2012
Wanneer ik de celeigenschap aanpas in zowel de kolom waar gezocht wordt als in de cel waar de datum staat krijg ik het volgende
"Foutmelding 91 objectvariabele of blokvariabele with is niet ingesteld"

Ik heb het internet al uitgekamd maar kom niet tot een oplossing, hopelijk kan iemand me verder helpen.
 
Een datum is een getal in Excel. De presentatie kan je aanpassen. Dus wat het probleem is mag je inderdaad even illustreren met een bestandje.
 
Klopt, alweer tijdje geleden sinds mijn laatste vraag en wist niet meer hoe de code te voorzien.

Hierbij alvast een voorbeeldbestandje = eerste test werkt OK, maar na aanpassing test 2 NOK.

Hopelijk hebben jullie de oplossing.

Bedankt
 

Bijlagen

  • test.xlsm
    20 KB · Weergaven: 30
Maak er dit van:
Code:
Sub test()
    Dim rng As range
    Set rng = Columns(1).Find(Sheets("menu").range("date").Value, LookIn:=[COLOR="#FF0000"]xlFormulas[/COLOR])
    rng.Select
End Sub

Sub test2()
    Dim rng As range
    Set rng = Columns(2).Find(Sheets("menu").range("date2").Value, LookIn:=[COLOR="#FF0000"]xlFormulas[/COLOR])
    rng.Select
End Sub

Tip:
Gebruik nooit een bestaand object als naam van een variabele.
In dit geval dus Dim range as range.
 
Het gebruik van Match kan veel beter omgaan met exotische opmaken.
Code:
Sub test()
Dim r As Range
Set r = Cells(Application.Match(Range("date"), Columns(1), 0), 1)
r.Select
End Sub

Sub test2()
Dim r As Range
Set r = Cells(Application.Match(Range("date2"), Columns(2), 0), 2)
r.Select
End Sub
 
Laatst bewerkt:
Zolang de datum aanwezig is wel zonder foutafhandeling in de code.
Je kan het ook zo schrijven.
Code:
Sub test()
 Cells(Application.Match(range("date"), Columns(1), 0), 1).Select
End Sub


Sub test2()
 Cells(Application.Match(range("date2"), Columns(2), 0), 2).Select
End Sub

Ook geen foutafhandeling trouwens.

Met foutafhandeling wordt het zo.
Code:
Sub test()
Dim r
 r = Application.Match(range("date"), Columns(1), 0)
 If Not IsError(r) Then Cells(r, 1).Select
End Sub
Of:
Code:
Sub test()
Dim r
 r = Application.Match(range("date"), Columns(1), 0)
 If IsNumeric(r) Then Cells(r, 1).Select
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan