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

VBA Excel

  • Onderwerp starter Onderwerp starter keb
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

keb

Gebruiker
Lid geworden
20 feb 2011
Berichten
170
Ik heb een tabel met drie kolommen, Ik wil kolom C stap voor stap filteren met met de waarden 1 tot en met .... (tig).
Mijn code veroorzaakt een foutmelding 424: object vereist!

Wat doe ik fout?

Private Sub cmdBijwerken()
'Koppelt het nummer vna de foto aan het inventarisnummer


'Step 1: Declare your Variables
Dim cl, rng As Range
Dim n, lastrow As Integer

'Specify ranges
lastrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).row
Set rng = ActiveSheet.Range(Cells(1, 1), Cells(lastrow, 3)) 'kolom C
MsgBox "Laatste rij =" & lastrow

For n = 1 To lastrow
rng.AutoFilter Field:=1, Criteria1:=n.Value, Operator:=xlAnd

MsgBox n

For Each cl In rng
If cl.EntireRow.Hidden = False Then '' Use Hidden property to check if filtered or not
If c1 <> "" Then MsgBox cl.Offset(0, -1)
End If
Next
Next 'n

End Sub
 
Probeer eens n of cstr(n) ipv n.value.
Als je denkt dat cl als range, en n als integer gedeclareerd wordt, heb je het mis.

Zo wel.
Code:
[I]Dim cl as range, rng As Range
 Dim n as integer, lastrow As Integer[/I]

Maak gebruik van codetags.
 
Hoe eenvoudig kunnen zeer waardevolle tips zijn! Bijzonder bedankt Harry, probleem opgelost.
 
Graag gedaan.

Ik heb het even anders voor je neergezet.
Je zal waarschijnlijk een hoop msg krijgen waar je flauw van wordt, maar wel goed om Vba te leren. ;)
Ook kan je achter 'Next' de variabele schrijven, dus hoef je geen apostrof te zetten.


Code:
[I]Private Sub cmdBijwerken()
 'Koppelt het nummer van de foto aan het inventarisnummer


 'Step 1: Declare your Variables
 Dim cl as range, rng As Range
 Dim n as integer, lastrow As Integer

 'Specify ranges
 lastrow = Cells(Rows.Count, "A").End(xlUp).row
 Set rng = Range(Cells(1, 1), Cells(lastrow, 3))     'kolom C
 MsgBox "Laatste rij =" & lastrow

 For n = 1 To lastrow
    rng.AutoFilter 1, n

    MsgBox n

       For Each cl In rng
        If cl.EntireRow.Hidden = False Then '' Use Hidden property to check if filtered or not
            If c1 <> "" Then MsgBox cl.Offset(0, -1)
            End If
        Next cl
   Next n

 End Sub[/I]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan