Foutmelding formulier

Status
Niet open voor verdere reacties.

Willem99

Gebruiker
Lid geworden
8 feb 2012
Berichten
55
Ik heb een vraagje over mijn code. Met mijn code kan ik mbv een formulier een waarde zoeken in een lange lijst.
Het formulier ziet er als volgt uit:
zoeken.png

Als de zoekwaarde is gevonden gaat hij naar het volgende formulier:
gevonden.png

Alles aan de code werkt, op 1 functie na...
Wanneer er een foute waarde ingegeven wordt in mijn formulier wil ik dat ik opnieuw een waarde in kan voeren.
Ik heb het geprobeerd met de dikgedrukte tekst uit de code, maar ik krijg het echter niet voor elkaar om de code aan te passen...

Kan iemand me helpen??



Code:
Sub Zoeken_Click()

    If TextBox1 <> "" Then
        Application.Goto Sheets("AFNEMERS").Range("A2:A" & Sheets("AFNEMERS").Range("A" & Rows.Count).End(xlUp).Row).Find(TextBox1)
        rij = Sheets("AFNEMERS").Range("A2:A" & Sheets("AFNEMERS").Range("A" & Rows.Count).End(xlUp).Row).Find(TextBox1).Row
        maxrij = Sheets("AFNEMERS").Range("A" & Rows.Count).End(xlUp).Row
        Unload Me
        Gevonden.Show
   
        Else
            If TextBox1 = "" Then
            MsgBox "Vul zoekwaarde in"
            Else
[B]   
                If TextBox1 Is Nothing Then
                MsgBox "Prijslijst is niet aanwezig"
                End If
[/B]
            End If
        End If

End Sub
 
Willem,

Het moet je toch eigenlijk niet ontgaan zijn dat helpers niets met plaatjes kunnen, en er weinig voor voelen om iets te gaan nabootsen.
 
Wat bedoel je met een foute waarde?

Want als ik je code leest staat is:
If: Er is iets ingevuld,
Anders: If: Er is niet is ingevuld, Anders: If IsNothing.
 
Willem bedoeld onderstaande.
Code:
set c =  Sheets("AFNEMERS").Range("A2:A" & Sheets("AFNEMERS").Range("A" & Rows.Count).End(xlUp).Row).Find(TextBox1)
if not c is nothing then
Application.Goto c
......
else
msgbox ...
Maar ik ga niet alles reproduceren, en de meesten met mij (op een enkeling na) ben ik al achter.
 
Laatst bewerkt:
Zonder voorbeeldbestand niet te testen, maar je kan deze eens proberen.
Code:
Sub Zoeken_Click()
    If Textbox1 = vbNullString Then MsgBox "Vul zoekwaarde in": Exit Sub
    With Sheets("AFNEMERS")
        fRow = Application.Match(Textbox1.Text, .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row), 0)
        If Not IsError(fRow) Then
            Application.Goto .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row).Find(Textbox1)
            maxrij = .Range("A" & Rows.Count).End(xlUp).Row
            rij = fRow
            Unload Me
            Gevonden.Show
        Else
            MsgBox "Prijslijst is niet aanwezig"
        End If
    End With
End Sub
 
Excuses voor het ontbreken van een voorbeeld bestand. Bij deze alsnog een voorbeeldje.
Ik heb hier het de laatste oplossing van warme bakkertje aan toegevoegd.

Bekijk bijlage test 1.xlsm

Wat nog niet helemaal lekker gaat is dat hij nu alleen exacte waarde uit tabblad afnemers zoekt in de rijen.
Dus wanneer alleen de eerste 3 letters ingegeven worden dan krijg je geen resultaat.
Dit is wel de bedoeling.

PS: ik heb een vraag over dit onderwerp ook al eens gesteld op worksheet.nl, maar hier heb ik toen niet het juiste antwoord op gekregen.
 
Maar wat ga je dan doen als je 2 of meer identieke klantnamen hebt zoals in je voorbeeld ?
Wat je dan ook intypt (geheel of gedeeltelijk), je gaat steeds de 1st gevonden naam in de lijst krijgen.
Ik zou dan eerder een Listbox met alle gevonden overeenkomsten gebruiken en daar dan de juiste uit selecteren. Het is een extra stap, maar mi onvermijdelijk bij een niet unieke lijst namen.
De juiste klant uitfilteren wordt natuurlijk makkelijker als je per klant een unieke identifier hebt.
 
Laatst bewerkt:
Een listbox is inderdaad een goede zoekoplossing.
Ik heb in mijn bestand een listbox toegevoegd.
Alleen krijg ik hem nog niet werkend..

Zie bijlage

Bekijk bijlage test 1.xlsm

Als ik bij het zoeken "Peter" in tik, dan geeft hij aan dat deze niet aanwezig is.
Terwijl hij wel in de lijst staat ... Iemand een idee?
 
Laatst bewerkt:
Geduld is een schone deugd.
Vergeet niet dat wij hier allemaal vrijwillige helpers zijn die hun vrije tijd besteden aan het helpen van anderen. Het is dus niet zo dat wij de ganse dag niets anders te doen hebben dan aan onze pc te zitten en vragen te beantwoorden.
Was er tussendoor al mee bezig geweest, maar heb wel een en ander moeten aanpassen om een beetje logica te krijgen.
Bij het openen v/h formulier typ je dus enkele beginletters in de TB. Als er resultaten gevonden worden krijg je deze te zien in de LB (naam en gemeente).
Door hier dan een naam aan te klikken krijg je in je 2de UF de gezochte gegevens. Klik je op Klaar sluit dit form en kom je terug bij de namen uit de 1ste selectie.
Wil je een andere naam opzoeken klik je op Opnieuw en typ je andere beginletters in de TB.
 

Bijlagen

Rudi, bedankt voor het helpen.
Sorry dat ik zo gehaast was/ben, het is namelijk een spoed oplossing.
En op het forum kun je niet zien of er iemand mee bezig is...
In ieder geval erg bedankt dat je zo snel reageert.

Ik ga nu kijken of ik het in mijn databasebestand kan krijgen,
je oplossing ziet er in ieder geval erg goed uit.
Hier was ik nooit op gekomen
 
Ik heb hem aangepast naar eigen wensen en hij werkt perfect!

Bedankt voor je hulp
 
Graag gedaan. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan