Rij overslaan bij tekst en geen datum

Status
Niet open voor verdere reacties.

DClewis

Gebruiker
Lid geworden
25 feb 2020
Berichten
46
Het stukje code wat ik hier toon kijkt of er iemand op cursus moet.
Dit doet hij door een vergelijking te maken met de huidige datum op het tabblad PERSONEEL in kolom U en V en de datum in kolom Q2 van het tabblad DATA.
In kolom V staat het aantal dagen tot de cursus ( Cells(cl.Row, 22))

Dit gaat goed zolang er in kolom U een datum staat.
Staat deze er niet geeft hij een foutmelding.

Echter staat in deze kolom U ook wel eens een tekst .
Wat ik wil is dat hij de tekst laat staan en doorgaat naar de cel waar wel weer en datum is ingevoerd en dan weer de msg box weer de melding geeft


Code:
Sub check()

' cursus

For Each cl In Range("U3:U" & Range("U" & Rows.Count).End(xlUp).Row)

    If cl.Value - Date < Sheets("DATA").Range("Q2") Then msgbox "Personeelslid " & Cells(cl.Row, 1).Value & " moet binnen " & Cells(cl.Row, 22) & " dagen op  cursus!"
Next

 

End Sub

Ik hoop dat dit mogelijk is
 
Dan kan je met een select case gepast reageren op de inhoud van je cel.
Vervang de msgbox door wat je wil doen, wil je niets doen, dan schrijf je daar niets
Code:
For Each cl In Range(".....")
      Select Case VarType(cl.Value)
         Case vbEmpty: MsgBox "leeg"
         Case vbDate: MsgBox "datum"
         Case vbString: MsgBox "string"
         Case Else: MsgBox "nog iets anders"
      End Select
   Next
Voor de volledigheid, alle vartypeshttps://docs.microsoft.com/en-us/office/vba/Language/Reference/user-interface-help/vartype-function
 
Code:
For Each cl In Range("U3:U" & Range("U" & Rows.Count).End(xlUp).Row).specialcells(2,1)
lijkt mij iets beter dan on error resume next.

Of de code van @cow18 gebruiken.
 
Laatst bewerkt:
On Error Resume Next is zo goed als nooit aan te bevelen zonder zelf aan fout controle te doen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan