• 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
60
Deze vraag heb ik eerder gesteld en ik dacht de oplossing gevonden te hebben, nl:

Code:
Sheets("Planning").Select
    ActiveSheet.Range("$A$1:$H$115").AutoFilter Field:=4, Criteria1:=Sheets("Zoektool").Range("G33"), _
        Operator:=xlAnd
    ActiveSheet.Range("$B$1:$H$114").AutoFilter 1, ">" & 1 * Date
    Range("F:H").Find("").Select
    Cells.Interior.ColorIndex = xlColorIndexNone
    ActiveCell.Interior.ColorIndex = 8

Het gaat dan om:

Code:
Range("F:H").Find("").Select
Op zich werkt het goed zo lang er een cel gevonden kan worden die aan alle voorwaardes voldoet. Is dat niet het geval dan wordt er een willekeurige cel geselecteerd. Hoe kan ik voorkomen dat als er geen enkele cel voldoet aan de gestelde voorwaardes dat er dan een willekeurige cel wordt geselecteerd?

Alvast bedankt voor jullie hulp.
 
Laatst bewerkt door een moderator:
plaats dan toch een voorbeeld bestandje, zo is de kans groter dat je het juiste antwoord krijgt.
 
waarom zo ?
Code:
ActiveSheet.Range("$[SIZE=5][COLOR="#FF0000"]A[/COLOR][/SIZE]$1:$H$115").AutoFilter 4
ActiveSheet.Range("$[COLOR="#FF0000"][SIZE=5]B[/SIZE][/COLOR]$1:$H$115").AutoFilter 1
beter
Code:
ActiveSheet.Range("$[SIZE=5][COLOR="#FF0000"]A[/COLOR][/SIZE]$1:$H$115").AutoFilter 4
ActiveSheet.Range("$[COLOR="#FF0000"][SIZE=5]A[/SIZE][/COLOR]$1:$H$115").AutoFilter[COLOR="#FF0000"][SIZE=5] 2[/SIZE][/COLOR]

En plaats even een voorbeeldbestand.

Gokje met de datum in kolom B
Code:
With Sheets("Planning")
    .Range("$A$1:$H$115").AutoFilter 4, Sheets("Zoektool").Range("G33")
    .Range("$A$1:$H$115").AutoFilter 2, ">" & 1 * Date
    
    Set c = .Range("F1:H115").Find("")
    If Not c Is Nothing Then
        Application.Goto c
        .Cells.Interior.ColorIndex = xlColorIndexNone
        c.Interior.ColorIndex = 8
    Else
        .Cells.Interior.ColorIndex = xlColorIndexNone
        MsgBox "geen resultaat."
       .Cells(1).CurrentRegion.AutoFilter
    End If
 End With
 
Laatst bewerkt:
gewist wegens foutje
 
Laatst bewerkt:
met een tussenstapje
Code:
 Set c = Range("F:H").Find("")
     If Not c Is Nothing Then
          c.Interior.ColorIndex = 8
     End If
 
Hallo,

Ik heb geprobeerd jullie opmerkingen te verwerken maar helaas is het mij niet gelukt om eea wekend te krijgen. Ik heb nu bijlages toegevoegd.
 

Bijlagen

  • helpmij.xlsm
    74,5 KB · Weergaven: 5
  • helpmij.docx
    199,9 KB · Weergaven: 3
9 jaar in dit forum en blijkbaar nog nooit gehoord van code tags of een draad gelezen over autofilter.
 
Laatst bewerkt:
zoiets dan ? Je bereik was te groot
Code:
Sub zoeken()
     Set c = Sheets("Planning").Range("$A$1").CurrentRegion     'alleen maar je gegevens (hier was je te ruim)
     c.AutoFilter
     c.AutoFilter 5, Sheets("Zoektool").Range("G33")     'filter op profiel
     c.AutoFilter 2, ">" & 1 * Date          'filter op datum

     Set c1 = c.Columns("F:H")               'kolommen F:H van je bereik
     c1.Interior.ColorIndex = xlNone         'alle kleurtjes weg
     Set c2 = c1.Find("")                    'zoek een lege cel
     If Not c2 Is Nothing Then               'gevonden ?
          c2.Interior.ColorIndex = 8         'kleurtje zetten
          c2.Value = "lege cel !!!!!" 'invullen
     Else
          MsgBox "foutje bedankt"            'foutboodschap
     End If

End Sub
 
Laatst bewerkt:
Om te zien waar het fout ging:
Field:=4 moet zijn Field:=5
Verder onthoud ik me van commentaar.
 
Een ieder bedankt voor de reacties. Vooral met de reacties van cow heb ik de puzzel af kunnen maken. Het werkt nu zoals ik wil.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan