lussen vermijden

Status
Niet open voor verdere reacties.

willema

Gebruiker
Lid geworden
26 aug 2005
Berichten
320
Dag allemaal,

een erfenis vanuit mijn begindagen met VBA: ik gebruik nogal wat lussen om waarden op te zoeken in één kolom of rij. Bijvoorbeeld:

Code:
    For x = 3 To LaatsteRij - 1
[COLOR="#008000"]'LaatsteRij is eerder bepaald en is de laatste rij als Integer
[/COLOR]        If Not Cells(x, 1).Value = "ST" Then
        CelCnt = Cells(x, 1).Value & Cells(x, 2).Value
            For y = x + 1 To LaatsteRij
                If CelCnt = Cells(y, 1).Value & Cells(y, 2).Value Then
                    Range(Cells(y, 1), Cells(y, 2)).Select
                    MsgBox "SC. " & CelCnt & " is meerdere keren ingevoerd." & vbNewLine & "Gelieve de Basis van Aflevering " & Aflevering & " aan te passen." & vbNewLine & vbNewLine & "De macro wordt hier gestopt.", vbExclamation, "TH BASIS"
                    Exit Sub
                End If
            Next y
        End If
    Next x

Eentje kan wellicht geen kwaad, maar nu heb ik iets geautomatiseerd waarin tientallen van dit soort lussen voorkomen.
Dat kan wellicht sneller en beter met bvb. .Find. Hoe pak je dit best aan ?

Dankjewel alvast voor alle tips.
 
Code:
Sub M_snb()
    msgbox Application.CountIf([A1:A20], "aa1")
End Sub
 
Dankjewel snb, dit is inderdaad een veeeeeeeeeeeeeeeeel korte manier :D

Maar het is niet alleen tellen. Soms wordt ook een waarde opgezocht om daar dan verder iets mee te doen. Ik vroeg me dus af hoe je op een korte manier dan met een lus een waarde kunt zoeken.
 
Mijn antwoord gaf al aan dat voor verschillende situaties verschillende methoden het meest geëigend zijn.
Soms met autofilter, soms met advancedfilter, soms met application.match, soms met .Find, etc.

Hoe specifieker je vraag (met voorbeeld), hoe specifieker het antwoord.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan