Foutmelding bij zoeken in werkblad

Status
Niet open voor verdere reacties.

tommy75

Gebruiker
Lid geworden
23 okt 2009
Berichten
9
Hallo,

Ik heb een excel werkblad en een formulier om te zoeken met de volgende code erachter:

Code:
Private Sub cmdOk_Click()

Sheets("Basis Techniek").Unprotect Password:="soep"



    With Sheets("Basis Techniek")
        
        .AutoFilterMode = False
        .Range("A2:K150").AutoFilter

        With .AutoFilter.Range

            If txtNaam.Value <> "" Then
                .AutoFilter Field:=1, Criteria1:="*" & txtNaam.Value & "*"
            End If
            
            If txtVoornaam.Value <> "" Then
                .AutoFilter Field:=2, Criteria1:="*" & txtVoornaam.Value & "*"
            End If
            
            If txtStraat.Value <> "" Then
                .AutoFilter Field:=3, Criteria1:="*" & txtStraat.Value & "*"
            End If
            
            If txtPostcode.Value <> "" Then
                .AutoFilter Field:=4, Criteria1:="*" & txtPostcode.Value & "*"
            End If
            
            If txtGemeente.Value <> "" Then
                .AutoFilter Field:=5, Criteria1:="*" & txtGemeente.Value & "*"
            End If
            
            If txtTelefoonnummer.Value <> "" Then
                .AutoFilter Field:=6, Criteria1:="*" & txtTelefoonnummer.Value & "*"
            End If
            
        End With

    End With
Sheets("Basis Techniek").Protect Password:="soep"
UserForm3.Hide
End

Op het werkblad staat een reset knop die alle auto-filtering die toegepast werd op het werkblad door de zoekfunctie ongedaan maakt.

Deze code staat achter de reset-knop:

Code:
Private Sub cmdReset_Click()
With Worksheets("Basis Techniek")
 .Unprotect Password:="soep"
  If .FilterMode Then
    Application.ScreenUpdating = False
    .ShowAllData
    .EnableAutoFilter = True
    Application.ScreenUpdating = True
  Else
    MsgBox "No information is currently filtered!"
  End If
  .Protect Password:="soep"
End With
End Sub

Aan de hand van het zoek formulier kan ik bvb zoeken op naam in het werkblad.
Na de zoekopdracht zo ik graag het auto filteren resetten, zodat ik terug mijn origineel werkblad te zien krijg alvorens ik een nieuwe zoekopdracht uitvoer. Tot nu toe werkt alles nog goed.
Indien ik nu opnieuw een zoekopdracht wil uitvoeren, krijg ik een foutmelding...
Ik denk dat het te maken heeft met het aan en uitzetten van de beveiliging van het werkblad.

Ik krijg de volgende foutmelding:

Code:
Error 91 while executing: 

Objectvariable or blockvariable with is not set...

De vba geeft als fout de volgende lijn code aan:

Code:
With .AutoFilter.Range


Iemand een idee wat ikfout doe?

Bedankt,
Tommy
 
Code:
Private Sub cmdOk_Click()
  Hide
  With Sheets("Basis Techniek")
     .Unprotect "soep"
     .AutoFilterMode = False
     With .Range("A2:K150")
         for j=1 to 6
            .autofilter,j,"*" & Me(choose(j,"xtNaam",txtVoornaam","txtStraat","txtPostcode","txtGemeente","txtTelefonnummer")).Text & "*"
         Next
     End With
    .Protect "soep"
End Sub
Een resetknop is eigenlijk overbodig.
 
Dag snb,

Bedoel je dat ik de code achter de ok knop op het zoekformulier vervang door de code die jij geschreven hebt?

Indien ik bvb een naam ingeef in het tekstvak 'naam' op het zoekformulier, dan krijg ik bij een druk op de OK knop een filtering op die naam. Daarna dient de 'reset' knop voor het ongedaan maken van de zoekopdracht zodat de originele lijst terug getoond wordt.

Ik heb geprobeerd om jouw code achter de ok-knop van het zoekformulier te zetten. Ik krijg echter op de volgende regel een foutmelding:
Code:
.AutoFilter , j, "*" & Me(Choose(j, "txtNaam", "txtVoornaam", "txtStraat", "txtPostcode", "txtGemeente", "txtTelefoonnummer")).Text & "*"

De foutmelding is:

Code:
Fout 1004 tijdens uitvoering
Methode Autofilter van klasse range is mislukt.

In bijlage een voorbeeld. De zoekopdracht zit op het werkblad 'Basis Techniek'.
 

Bijlagen

.autofilter , j .... moet zijn
.autofilter j ....
 
Ik heb dit even getest, maar nu wordt de zoekwaarde in de verkeerde kolom gefilterd...

Bvb Als ik zoek op voornaam 'Jos' dan gaat de autofilter voor Jos toegepast worden op de eerste kolom 'datum' en krijg ik niets te zien als resultaat.

Een testje zit in de bijlage...

gr,
Tom
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan