ik heb de onderstaande code ,
aangepast voor zover alles goed.
maar nu wil ik een 3 tal cellen die verplicht ingevuld moeten zijn
maar ik weet mu nu geen raad, het gaat om de cellen u2 u3 en t9
als ik me niet vergis moet het hier ergen bij komen te staan.
For i = 5 To 15
If Range("j" & i) > 0 And Range("k" & i) = "" Then Fout = Fout + 1 'Meer dan tijden dan activiteiten
If Range("j" & i) = "" And Range("k" & i) <> "" Then Fout = Fout + 1 'Meer activiteiten dan tijden
Next i
If Fout > 0 Then
Range("J5").Select
MsgBox "Er ontbreekt een activiteit of een tijdstip.", _
vbCritical, "Tijdstip en activiteit" 'is aantal tijden en activiteiten niet gelijk, dan melden
End 'stoppen
hier onder is de volledige code
Sub Overbrengen()
Sheets("Uren").Select
If [D2] = "" Then
Range("D2").Select
MsgBox "U moet uw naam nog invullen.", vbCritical, "Wat is uw naam?"
End 'stoppen
End If
If [D4] = "" Then
Range("D4").Select
MsgBox "U moet nog een datum invullen.", vbCritical, "Welke datum?"
End 'stoppen
End If
For i = 5 To 15
If Range("j" & i) > 0 And Range("k" & i) = "" Then Fout = Fout + 1 'Meer dan tijden dan activiteiten
If Range("j" & i) = "" And Range("k" & i) <> "" Then Fout = Fout + 1 'Meer activiteiten dan tijden
Next i
If Fout > 0 Then
Range("J5").Select
MsgBox "Er ontbreekt een activiteit of een tijdstip.", _
vbCritical, "Tijdstip en activiteit" 'is aantal tijden en activiteiten niet gelijk, dan melden
End 'stoppen
End If
Range("A19:I19,M19:R19").Copy 'Kopieer de uren
DezeDatum = [D4].Value 'onthoud de datum in D4
Sheets("Jaar").Select 'Ga naar het andere blad
Set DatumRij = Range("B1:B400").Find(What:=DezeDatum, LookAt:=xlPart) 'zoek deze datum
If DatumRij Is Nothing Then
MsgBox "Ik kan deze datum niet vinden.", vbCritical, "Foutieve datum" 'staat de datum niet in de lijst, dan melden
End
End If
'Anders: plak de uren
Aantal = Application.WorksheetFunction.CountA(DatumRij.Offset(0, 1).Range("A1:I1")) 'Relatief: 15 cellen in kolom B naast de datum
If Aantal > 0 Then 'Als er al uren staan bij die datum, geef dan melding:
DatumRij.Offset(0, 0).Range("A1:J1").Select
Beep
If MsgBox("U hebt deze dag al ingevoerd." & vbCrLf _
& "Gaat u door, dan worden de bestaande uren overschreven." & vbCrLf _
& "Weet u het zeker?", vbYesNo + vbQuestion, _
"Datum is al ingevoerd") = vbNo Then
GoTo Afronden 'Klik je op Nee, dan ga je naar Afronden
End If
End If
'Klik je op Ja, dan worden de uren geplakt
DatumRij.Offset(0, 1).PasteSpecial Paste:=xlValues 'vanaf deze cel 1 kolom naar rechts, en waarden plakken
DatumRij.Offset(0, 0).Range("A1:J1").Select
MsgBox "De uren van deze datum zijn opgeslagen.", _
vbInformation, "Klaar"
Afronden:
Sheets("Uren").Select 'Terug naar blad Uren
Range("D4").Select 'naar cel D4
Application.CutCopyMode = False 'Zet stippellijnen van het kopiëren uit
End Sub
aangepast voor zover alles goed.
maar nu wil ik een 3 tal cellen die verplicht ingevuld moeten zijn
maar ik weet mu nu geen raad, het gaat om de cellen u2 u3 en t9
als ik me niet vergis moet het hier ergen bij komen te staan.
For i = 5 To 15
If Range("j" & i) > 0 And Range("k" & i) = "" Then Fout = Fout + 1 'Meer dan tijden dan activiteiten
If Range("j" & i) = "" And Range("k" & i) <> "" Then Fout = Fout + 1 'Meer activiteiten dan tijden
Next i
If Fout > 0 Then
Range("J5").Select
MsgBox "Er ontbreekt een activiteit of een tijdstip.", _
vbCritical, "Tijdstip en activiteit" 'is aantal tijden en activiteiten niet gelijk, dan melden
End 'stoppen
hier onder is de volledige code
Sub Overbrengen()
Sheets("Uren").Select
If [D2] = "" Then
Range("D2").Select
MsgBox "U moet uw naam nog invullen.", vbCritical, "Wat is uw naam?"
End 'stoppen
End If
If [D4] = "" Then
Range("D4").Select
MsgBox "U moet nog een datum invullen.", vbCritical, "Welke datum?"
End 'stoppen
End If
For i = 5 To 15
If Range("j" & i) > 0 And Range("k" & i) = "" Then Fout = Fout + 1 'Meer dan tijden dan activiteiten
If Range("j" & i) = "" And Range("k" & i) <> "" Then Fout = Fout + 1 'Meer activiteiten dan tijden
Next i
If Fout > 0 Then
Range("J5").Select
MsgBox "Er ontbreekt een activiteit of een tijdstip.", _
vbCritical, "Tijdstip en activiteit" 'is aantal tijden en activiteiten niet gelijk, dan melden
End 'stoppen
End If
Range("A19:I19,M19:R19").Copy 'Kopieer de uren
DezeDatum = [D4].Value 'onthoud de datum in D4
Sheets("Jaar").Select 'Ga naar het andere blad
Set DatumRij = Range("B1:B400").Find(What:=DezeDatum, LookAt:=xlPart) 'zoek deze datum
If DatumRij Is Nothing Then
MsgBox "Ik kan deze datum niet vinden.", vbCritical, "Foutieve datum" 'staat de datum niet in de lijst, dan melden
End
End If
'Anders: plak de uren
Aantal = Application.WorksheetFunction.CountA(DatumRij.Offset(0, 1).Range("A1:I1")) 'Relatief: 15 cellen in kolom B naast de datum
If Aantal > 0 Then 'Als er al uren staan bij die datum, geef dan melding:
DatumRij.Offset(0, 0).Range("A1:J1").Select
Beep
If MsgBox("U hebt deze dag al ingevoerd." & vbCrLf _
& "Gaat u door, dan worden de bestaande uren overschreven." & vbCrLf _
& "Weet u het zeker?", vbYesNo + vbQuestion, _
"Datum is al ingevoerd") = vbNo Then
GoTo Afronden 'Klik je op Nee, dan ga je naar Afronden
End If
End If
'Klik je op Ja, dan worden de uren geplakt
DatumRij.Offset(0, 1).PasteSpecial Paste:=xlValues 'vanaf deze cel 1 kolom naar rechts, en waarden plakken
DatumRij.Offset(0, 0).Range("A1:J1").Select
MsgBox "De uren van deze datum zijn opgeslagen.", _
vbInformation, "Klaar"
Afronden:
Sheets("Uren").Select 'Terug naar blad Uren
Range("D4").Select 'naar cel D4
Application.CutCopyMode = False 'Zet stippellijnen van het kopiëren uit
End Sub