Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

vba code lege cel zoeken in excel

Anoniem
robwels
12 antwoorden
  • Hallo.
    Ik ben op zoek naar de code om in een kolom in excel zeg vanaf a2 naar beneden te zoeken naar de eerstvolgende lege cel. staan bv 5 getallen en de 6e cel is leeg. Daar moet om een waarde gevraagd worden. Heb al geprobeerd met if activecel > 0 then ActiveCell.Offset(1, 0).Select end if maar dan gaat de cursor 1 cel naar beneden!
    Moet heel makkelik zijn maar deze nieuweling komt er niet uit.
    Alvast bedankt
    Rob
  • Met de volgende code wordt gezocht in de aangegeven rij naar de waarde die in F8 staat op Blad1:
    Selection.Find(What:=Sheets("Blad1";).Range("F8";) - 1, After:=ActiveCell, LookIn:=xlValues, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
    xlNext, MatchCase:=False).Activate
    ActiveCell.Offset(0, 1).Range("A1:A38";).Select
  • bedankt voor je antwoord.
    helaas werkt het niet bij mij.
    komst terug met de melding dat er geen wirth in ingesteld???
  • [code:1:b037977809]Private Function zoek(row As Integer, col As Integer) As Integer
    While (Rows.Cells(row, col) <> "";)
    row = row + 1
    Wend
    zoek = row
    End Function[/code:1:b037977809]
    Roep de functie aan met de rij en kolom waar je wilt beginnen met zoeken. Dan geeft ie de eerste rij terug waar niks in staat.
  • bedankt voor je reaktie. helaas werkt het niet. ik krijg de melding end sub verwacht. maar waar ik die end sub ook zet hij zoekt niet de eerstvolgende lege cel in de kolom…
  • Het is geen sub maar een functie. Je moet bovenstaande direct copieren en plakken. Daarna kun je in je code de functie aanroepen met
    [code:1:27e1716298]leeg=zoek(1,1)[/code:1:27e1716298] Dan zoekt hij naar de eerste lege cel in kolom A en leeg (mag elke variable zijn als het maar een integer of variant is) krijgt de waarde van de rij.
    Het feit dat je een melding krijgt dat hij een end sub mist wil zeggen dat je ergens een sub hebt zonder eind. De bovenstaande functie moet je dus niet in een andere sub of functie plakken. Maar er los onder zetten.
  • Nogmaals bedankt voor jullie reactie. ik heb nu de volgende code :
    Sub Macro2()
    '
    ' Macro2 Macro
    ' De macro is opgenomen op 14/05/2002 door Wels.
    '
    ' Sneltoets: CTRL+i
    '
    Range("a2").Select
    leeg = zoek(1, 1)
    End Sub
    Private Function zoek(row As Integer, col As Integer) As Integer
    While (Rows.Cells(row, col) <> "")
    row = row + 1
    Wend
    zoek = row
    End Function

    Maar de cursor gaat allen van a1 naar a2 en thats it. Eronder staan nog getallen maar hij zoekt niet verder…..
    Wat doe ik verkeerd??????

    Groeten
    Rob
  • Ik hem mijn code nog enigszins aangepast. Probeer maar eens.
    :wink:
    Cells.find _
    (What:="", _
    After:=ActiveCell, _
    LookIn:=xlValues, _
    LookAt:=xlPart, _
    SearchOrder:=xlByRows, _
    SearchDirection:=xlNext, _
    MatchCase:=False) _
    .Activate
  • Het werkt, bedankt. Alleen is de bedoeling dat in kolom a gezocht wordt. Nu gaat de cursor naar links de kolommen af.
    Ik heb xlByRows al vervangen door xlByColums maar dat schijnt zo niet te werken.

    Groeten.
    :-?
  • Verander Colums in Columns dan werkt het bij jou ook! :D :-?
  • Sorry hoor, kolom had ik wel goed in de code staan maar verkeerd in het bericht.
    Ik heb het verandert, maar hij gaat nog steeds zoeken in andere kolommen

    a b
    s c
    d -
    !
    waar het - staat gaat de cursor naartoe terwijl de bedoeling is bij ! in kolom a uit te komen…… Ligt het misschien aan de direction?

    't is wat…..

    Nogmaals bedankt hoor!
  • Dit werkt voor 100%. Zelf getest.
    [code:1:14945f31b1]Sub Lege_Cel()
    leeg = zoek(1, 1)
    Rows.Cells(leeg, 1).Select
    End Sub

    Private Function zoek(row As Integer, col As Integer) As Integer
    While (Rows.Cells(row, col) <> "")
    row = row + 1
    Wend
    zoek = row
    End Function
    [/code:1:14945f31b1]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.