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

Opgelost Textboxen Vergelijken met een rij ?

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.
Ik kom toch terug op mijn verzoek/vraag. Ik heb eerder gezegd dat ik t had opgelost.
Ik gebruik deze code maar het werkt niet meer. Ik weet niet waarom deze code niet meer werkt.
Hopelijk weet iemand een oplossing.

Code:
Dim rngCell As Range
    Dim bMatch As Boolean
    Dim vVal
    Dim cVal
    
    vVal = txtNumber
    cVal = txtID
    bMatch = WorksheetFunction.CountIf(Range("A2:A50"), vVal) <> 0 & WorksheetFunction.CountIf(Range("B2:B50"), cVal) <> 0
        
 If bMatch Then MsgBox ("Is niet aanwezig.")
 
Ik sta nog steeds achter de code die ik in post #15 geplaatst heb.
Plaats anders een voorbeeldbestand dat een exacte weerspiegeling is van de huidige data zodat wij kunnen zien waar het misgaat.
 
op eerste blad staan Unique namen en op sheet1 staan alle namen ook dubbel.
Via textboxen wil kijken of naam en nummer voorkomt.

zie bestandje.
 

Bijlagen

Code:
Private Sub txtID_Change()
    Dim bMatch As Boolean
    Dim vVal
    Dim cVal
    
    vVal = txtNumber
    cVal = txtID
    bMatch = Application.CountIf(Blad2.Range("A2:A50"), vVal) <> 0 & Application.CountIf(Blad2.Range("B2:B50"), Val(cVal)) <> 0
    lblResultaat = bMatch
        
    If bMatch Then MsgBox ("Is niet aanwezig.")
End Sub
 
Een of ander manier wil het maar niet lukken. Uitslag is altijd waar.
 

Bijlagen

  • waar.jpg
    waar.jpg
    3,4 KB · Weergaven: 13
Zoals ik vroeger al gezegd heb, jouw code houd geen steek.

Code:
Private Sub txtID_Change()
    With Sheets("Sheet1")
        evalStr = Evaluate("Match(" & Chr(34) & txtNumber.Value & Chr(34) & "&CHAR(5)&" & Chr(34) & txtID.Value & Chr(34) & "," & _
                        .Range("A2:A50").Address(, , , True) & "&CHAR(5)&" & .Range("B2:B50").Address(, , , True) & ",0)")
        If IsError(evalStr) Then
            lblResultaat.Caption = "False"
            MsgBox "Is niet aanwezig", vbInformation + vbOKOnly
        Else
            lblResultaat.Caption = "True"
        End If
    End With
End Sub
 
Top. Bedankt Warme bakkertje.
Deze code werk prima.
Ik wilde eenvoudige code en dacht oplossing te hebben gevonden. Helaas werkte die code niet.

Over de code hier boven:
Ik zou graag willen weten wat deze stukje code is/doet. "Chr(34)"

Nog een ding als het mag.
Hoe kan ik True/False veranderen in totaal aantal treffers
Bv. Telefoon met nummer 1 komt 3x voor. In plaats van True wordt het dus 3.
 
De Chr(34) is een dubbele quote.
 
Gooi deze er eens tegen.

Code:
Private Sub txtID_Change()

    Dim bMatch As Long

    bMatch = Evaluate("countifs(sheet1!a2:a50,""" & txtNumber & """,sheet1!b2:b50," & txtID & ")")

    lblResultaat.Caption = bMatch
        
End Sub
 
Gooi deze er eens tegen.

Code:
Private Sub txtID_Change()

    Dim bMatch As Long

    bMatch = Evaluate("countifs(sheet1!a2:a50,""" & txtNumber & """,sheet1!b2:b50," & txtID & ")")

    lblResultaat.Caption = bMatch
       
End Sub
Werkt goed, Dank daarvoor. Maar als het nummer toeging heeft bv. Telefoon 1 b, dan krijg ik foutmelding. "Typen komen niet overeen". Ik heb zitten googelen maar kom er niet uit. Is dit op te lossen.
 
Ik heb een extra set Textboxen bijgezet zodat je beide codes (False/True en Aanta)l kunt testen.

PS Heb de Aantal code aangepast want er was inderdaad een aanpassing nodig omdat 1 b een string is en niet enkel een getal.
 

Bijlagen

👍
Zet je de vraag dan nog even op opgelost.
 
Na een een aantal keren te hebben getest kom ik er achter dat een ding niet helemaal goed gaat.
Op het moment dat txtId leegt is, krijg ik 0 in de lblResultaat. Het zou moeten zijn 1. Zou zou t moeten gaan. Als een item geen nummer heeft en het staat op de lijst dan zou je dit ook moeten zien.

Ik heb een bestand bijgedaan voor voorbeeld.
 

Bijlagen

Vervang de code in het bestand van vorige post naar deze.
Er word rekening gehouden met de tabeleigenschappen zodat je je geen zorgen meer moet maken over de bereiken in de code. Nu worden ze automatisch aangepast aan groeiende bereiken.

Code:
Private Sub lMatch()
    Dim bMatch As Long
    With Blad2.ListObjects(1).DataBodyRange
        If txtID <> vbNullString Then
            bMatch = Evaluate("countifs(" & .Columns(1).Address(, , , True) & ",""" & _
                        txtNumber & """," & .Columns(2).Address(, , , True) & "," & txtID & ")")
        Else
            bMatch = Evaluate("countif(" & .Columns(1).Address(, , , True) & ",""" & txtNumber & """)")
        End If
    End With
    lblResultaat.Caption = bMatch
End Sub
 
Bedankt voor het meedenken. Ik heb dat opgelost denk ik door alleen kolom aan te geven, sheet1!A:A.
Die probeer ik fijn te stemmen. Echter ik loop tegen een ding aan.
Op het moment dat alleen txtId is ingevuld en txtNummer niet, dan krijg ik alle resultaten te zien wat niet de bedoeling is. Dit gebeurt niet bij alle items. Bij sommigen items werk de formule goed en bij andere weer niet. Ik ben nu aan het uitzoeken waar dit aanligt.

Het gaat om deze code:
Code:
bMatch = Evaluate("COUNTIF(sheet1!a2:a50,""" & txtNumber & """)")

Ik heb de code die jij hebt gepost geprobeerd en ik krijg hetzelfde probleem.
 
Dit is nu al de 3de maal dat je je vraag wijzigt. :(
Eerst was het een combinatie van beide, dan was het txtNumber alleen en nu kom je weer af met txtId alleen :(
Post een voorbeeldbestand met werkelijke nummers en Id's en met alle voorkomende situaties zodat ik alles ineens kan testen.
 
Ik snap je reactie. Elke keer kom ik met iets anders....

Ik wil je bedanken voor je hulp en ik laat het hierbij.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan