Hi Frank,
Firstly, your punt-commas (semi-colons in English) are correct - assuming your international settings are Dutch. Also, your If without an explicit Else should work - but will return FALSE when the condition is not met and as you want blank your amended version is better.
Secondly I'm afraid I don't understand what the problem is. I don't know the Dutch Excel but I have done a literal translation (and replaced semicolons with commas) to get this in English:
.Range("D" & rij).Formula = "=date(year(B" & rij & "),month(B" & rij & ")+1,day(B" & rij & "))"
.Range("F" & rij).Formula = "=D" & rij & "-7"
.Range("H" & rij).Formula = "=if(today()>=F" & rij & ",""x"","""")"
and it works fine for me. Obviously I have just used a random value for rij - and wrapped the code in a With ActiveSheet ... End With construct.
Could you expand a little on what the problem is?