Het gebruik van Wildcarts in CountIf

Status
Niet open voor verdere reacties.

masala09

Gebruiker
Lid geworden
6 aug 2012
Berichten
886
Beste allemaal,

Ik wil in de functie CountIf zogeheten Wildcarts gebruiken. De "*" en of de "?".

Hoewel ik het gebruik op zicht wel begrijp, vraag ik mij af wat nu de gebruikte wijze van schrijven is.

Is dat
Code:
    Application.WorksheetFunction.CountIf(SearchFor, "Test_" & "*") 'Heeft gezien de leeswijze mijn voorkeur

of

    Application.WorksheetFunction.CountIf(SearchFor, "Test_*")

De SearchFor is de Range waarin gezocht moet worden. In mijn code kolom 5. Normaal hoeft dit niet, maar ik heb hiervoor bewust gekozen daar ik meerdere mogelijkheden heb. Echter omdat je ook hier meerdere in hebt. Welke? Volgens mij maakt het niets uit en is het enige verschil de lengte van de code.

Code:
    Dim SearchFor As Range
    
    Set SearchFor = Sheets(1).Range("E2", Sheets(1).Range("E2").End(xlDown))

of

    Set SearchFor = Sheets(1).Columns(5)

Voor zover ik heb gecontroleerd kan ik als het goed is: "Application." weglaten
 
Laatst bewerkt:
We hebben het al een keer over 'application' en 'worksheetfunction' gehad.
Code:
 Application.CountIf(SearchFor, "Test_*")
 
Oja dat is waar. Worksheetfunction kon er uit en Application kon blijven staan.

Mijn dank ik weet genoeg.
 
Toch nog heel even terugkomend.

De "*" is voor een teken.
De "?" is voor een tekenreeks.

Wanneer gebruik je nu precies de "*" en wanneer de "?". Het zijn jokertekens dat weet ik, maar ze lijken hetzelfde te doen wat natuurlijk niet zo is. Immers ik kan in mijn code zowel de * als het ? vraagteken gebruiken. In kolom E staan de waarden: Gebruiker_1, Gebruiker_2 of Beheerder_1, Beheerder_2.

Ter extra info: De "_1" of "_2" staat voor de Level van autoriteit.

In de combobox heb ik de keuze: Gebruiker of Beheerder.

Code:
    WorksheetFunction.CountIf(Sheets(1).Columns(5), ComboBox3.Value & "_*")

Ik gebruik deze uiteindelijk om automatisch een definitief en vast gebruikersnummer aan een gebruiker te koppelen. De gebruikers ID. Deze wordt weer in kolom A weggeschreven als zijnde: User_xx of Admin_xx en is niet meer te wijzigen.

Code:
With TextBox1
        Dim X As Long
        
        X = WorksheetFunction.CountIf(Sheets(1).Columns(5), ComboBox3.Value & "_*")
            
        Select Case ComboBox3.Value
            Case Is = vbNullString
                .Value = vbNullString
            Case Is = "Gebruiker"
                .Value = "User_" & X + 1
            Case Is = "Beheerder"
                .Value = "Admin_" & X + 1
        End Select
    End With
 
Laatst bewerkt:
Kijk eens:
Rechtstreeks uit de Help van Excel <> Vba help.
[TABLE="class: collapse"]
[TR="class: trbgeven"]
[TH="class: thhead"]U gebruikt[/TH]
[TH="class: thhead"]Gewenste zoekresultaat[/TH]
[/TR]
[TR="class: trbgodd"]
[TD="class: noborder"]? (vraagteken)[/TD]
[TD="class: noborder"]Eén willekeurig teken
Zo vindt u met smi? bijvoorbeeld 'smit' en 'smid'.[/TD]
[/TR]
[TR="class: trbgeven"]
[TD="class: noborder"]* (sterretje)[/TD]
[TD="class: noborder"]Een willekeurig aantal tekens
Zo vindt u met 'g*d' bijvoorbeeld 'goed' en 'gereed'.[/TD]
[/TR]
[TR="class: trbgodd"]
[TD="class: noborder"]~ (tilde) gevolgd door ?, * of ~[/TD]
[TD="class: noborder"]Een vraagteken, sterretje of tilde
Zo vindt u met fy06~? 'fy06?'.[/TD]
[/TR]
[/TABLE]
 
Huh. Wist je dat ik daar naar heb zitten zoeken, maar ik kreeg dit niet te zien.

Mag ik vragen waar je onder hebt gezocht??

Ik zocht onder: countif
 
Ik op jokertekens.
 
Wat je in ieder geval niet moet doen: zoeken op 'wildcarts'. Tenzij je een fan van Max Verstappen bent natuurlijk
 
HSV. Oke. Ja dan krijg je natuurlijk weer iets anders te zien. Je moet maar op het zoekwoord komen. :o

OctaFish, waarom niet zoeken op wildcarts. Bij mij zijn er niet veel verschillen. Het is of beheerder_x of Gebruiker_x. Meer niet. De x staat voor een nummer van maximaal 1 tot en met 3.

Wat raad jij dan aan in mijn situatie.

Normaal doe ik het zoeken tegenwoordig met Find en dan met matchcase False of True. Ook wil ik wel nog wel eens Match gebruiken, maar omdat in deze het aantal moet tellen om vervolgens een naam met oplopend nummer te geven, gebruik ik CountIf met wildcarts, omdat ik een andere wijze niet ken en omdat van de waarde in de cel het laatste teken alleen verschilt.
 
Laatst bewerkt:
Wat ik aanraad? Zoeken op 'wildcards' :).
 
Zit je mij nu op een typefout de draad te steken??:shocked:
 
Laatst bewerkt:
Zit je mij nu op een typefout de draad te steken?
Een typefout maak je één keer; jij rept consequent van wildcarts. Dat is dan geen typefout meer toch? Dan mag ik daar wel een geintje op maken, vind ik :).
 
He OctaFisch..... we moeten het moreel er toch inhouden of niet? Vind ik wel!

No hard feelings. Keep on going. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan