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

Macro om eerste lege cel te zoeken in verschillende kolommen

Status
Niet open voor verdere reacties.

amarob

Gebruiker
Lid geworden
23 feb 2014
Berichten
68
Hallo,

Is het mogelijk om met een macro de eerste lege cel te selecteren in verschillende kolommen?
Zo ja, hoe ziet die macro er dan uit als er gezocht moet worden in de kolommen E, F en G?

Alvast bedankt voor jullie hulp.
 
Bijvoorbeeld voor kolom E
Code:
For Each cell In ActiveSheet.Columns(5).Cells
        If IsEmpty(cell) Then Application.Goto cell: Exit For
 Next cell
 
Albert,

Bedankt voor je snelle reactie. Het is juist de bedoeling dat die in meerdere kolommen kijkt en dan de eerste lege cel ophaalt. Ik zal er een plaatje bij plakken.zoeken.PNG

De eerste lege cel is dan de gele cel en dat moet er als resultaat uitkomen.
 
Laatst bewerkt:
Dan is het voor mij een raadsel wat je dan wilt bereiken.
Leg eens uit.
 
Dan is het voor mij een raadsel wat je dan wilt bereiken.
Leg eens uit.

Het is voor een afspraken planner om zodoende de eerste plek te kunnen vinden. Zodra die cel is geselecteerd kan daar de afspraak worden vastgelegd.
 
Met deze zou dat moeten lukken:
Code:
laatste = Range("E:G").Find("*", , , , , 2).Row
For Each cell In Range("E1:G" & laatste + 1)
  If IsEmpty(cell) Then Application.Goto cell: Exit For
Next cell
 
Met deze zou dat moeten lukken:
Code:
laatste = Range("E:G").Find("*", , , , , 2).Row
For Each cell In Range("E1:G" & laatste + 1)
  If IsEmpty(cell) Then Application.Goto cell: Exit For
Next cell

Bijna. Omdat deze onderdeel is van een onderdeel van een macro werkt het nog net niet helemaal goed omdat er al bepaalde filters zijn aangezet. De volledige macro is nu:

Sub zoeken2()
'
' zoeken2 Macro
'

'
Sheets("Planning").Select
On Error Resume Next
ActiveSheet.ShowAllData
Sheets("zoektool").Select
Range("G25").Select
Selection.Copy
Range("G26").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Zoektool").Select
Range("G22").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Planning").Select
ActiveSheet.Range("$A$1:$G$115").AutoFilter Field:=4, Criteria1:=Sheets("Zoektool").Range("G26"), _
Operator:=xlAnd
laatste = Range("E:G").Find("*", , , , , 2).Row
For Each cell In Range("E1:G" & laatste + 1)
If IsEmpty(cell) Then Application.Goto cell: Exit For
Next cell

End Sub

En op deze manier wordt niet de eerste lege cel gevonden. Welke aanpassing zou ik nu nog kunnen doen?
 
Laatst bewerkt:
Zo:
Code:
Sub ZoekLegeRijen()
    Dim rijE As Long, rijF As Long, rijG As Long
    rijE = Range("E1").End(xlDown).Row + 1
    rijF = Range("F1").End(xlDown).Row + 1
    rijG = Range("G1").End(xlDown).Row + 1
    MsgBox "rij E: " & rijE & vbCrLf & _
     "rij F: " & rijF & vbCrLf & _
     "rij G: " & rijG
End Sub

Oeps, werkt niet goed op gefilterde sheet.
 
Laatst bewerkt:
Deze werkt inderdaad niet. Wel fijn dat je er naar hebt gekeken. Dank daarvoor.
 
Moet vanaf de eerste rij gezien altijd de eerste lege cel gevonden ongeacht het filter, of kunnen zich dankzij het filter ook lege cellen boven de gewenste cel bevinden?
Verder is de macro Zoeken2 die je hebt geplaatst een beetje rommelig.
Filter op sheet Planning wordt uitgezet.
G25 op sheet Zoeken wordt gekopieerd naar G26
Dan wordt G22 op sheet Zoektool gekopieerd naar nergens.
Vervolgens wordt kolom D op sheet Planning gefilterd met de waarde uit G26 op sheet Zoektool, dat had dus net zo goed G25 kunnen zijn?
 
Hallo,

Ik heb de oplossing gevonden:

Range("E:G").Find("").Select

En zover ik kan beoordelen werkt het.

Een ieder bedankt voor het meedenken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan