Leotaxi
Verenigingslid
- Lid geworden
- 18 aug 2014
- Berichten
- 891
Beste helpers,
heb in code hieronder een vraag aan de gebruiker of er verder gegaan moet worden,
er kan dus gekozen worden voor OK of Cancel.
Bij beide antwoorden wordt code wel uitgevoerd zoals zou moeten, maar de Msgbox
komt terug, pas na 2 de maal antwoorden verdwijnt deze.
Waar zie ik weeral overheen ? iemand idee ?
Fragment van hierboven komt uit:
alle hulp welkom
mvg
Leo
heb in code hieronder een vraag aan de gebruiker of er verder gegaan moet worden,
er kan dus gekozen worden voor OK of Cancel.
Bij beide antwoorden wordt code wel uitgevoerd zoals zou moeten, maar de Msgbox
komt terug, pas na 2 de maal antwoorden verdwijnt deze.
Waar zie ik weeral overheen ? iemand idee ?
Code:
antw = MsgBox("Van " & dags & " " & dats & Chr(13) & Chr(13) & "Tot " & dage & " " & daten & Chr(13) _
& Chr(13) & "Aanmaken ?", vbOKCancel)
If antw = vbCancel Then
MsgBox "bewerking werd afgebroken"
GoTo eind
End If
If antw = vbOK Then
Fragment van hierboven komt uit:
Code:
Private Sub Txtjaare_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim dags As String, dage As String, dats As Date, daten As Date, antw As Integer
dags = Format(Me.Txtdags & "/" & Me.Txtmaands & "/" & Me.Txtjaars, "dddd")
dage = Format(Me.Txtdage & "/" & Me.Txtmaande & "/" & Me.Txtjaare, "dddd")
dats = Format(Me.Txtdags & "/" & Me.Txtmaands & "/" & Me.Txtjaars, "dd-mm-yyyy")
daten = Format(Me.Txtdage & "/" & Me.Txtmaande & "/" & Me.Txtjaare, "dd-mm-yyyy")
antw = MsgBox("Van " & dags & " " & dats & Chr(13) & Chr(13) & "Tot " & dage & " " & daten & Chr(13) _
& Chr(13) & "Aanmaken ?", vbOKCancel)
If antw = vbCancel Then
MsgBox "bewerking werd afgebroken"
GoTo eind
End If
If antw = vbOK Then
Dim dat As Date, datVD As Date, naamM As String, naamD As String, naamJ As String, naamDvd As String, _
naamMvd As String, naamJvd As String, lastrow As Long, kolom As Integer, kolom2 As Integer, _
lastrow2 As Long, kol, kol2, onp, wk, wk2
i = 0
dat = dats + i
datVD = dat - 1
naamD = Day(dat) & "-" & Month(dat) & "-" & Right(Year(dat), 2)
naamM = Month(dat) & "-" & Right(Year(dat), 2)
naamJ = Year(dat)
naamDvd = Day(datVD) & "-" & Month(datVD) & "-" & Right(Year(datVD), 2)
naamMvd = Month(datVD) & "-" & Right(Year(datVD), 2)
naamJvd = Year(datVD)
kolom = Day(dat) + 1
kolom2 = Day(datVD) + 1
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets("Dagplanning").Range("a3", "c502").ClearContents
Sheets("Dagplanning").Range("s3", "u502").ClearContents
'controle of dag al niet is gemaakt
Set rFoundCell = Sheets("Dagen").Range("a1")
Set rFoundCell = Sheets("Dagen").Columns(1).Find(What:=naamD, after:=rFoundCell, _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False)
If Not rFoundCell Is Nothing Then
MsgBox "Deze dag is al aangemaakt"
GoTo eind
End If
'controle of maand al aangemaakt is
Set rFoundCell = Sheets("Maanden").Range("a1")
Set rFoundCell = Sheets("Maanden").Columns(1).Find(What:=naamM, after:=rFoundCell, _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False)
If rFoundCell Is Nothing Then
MsgBox "Deze maand is nog niet aangemaakt"
Exit Sub
End If
' weeknummers en controle op even of oneven weken
wk = DatePart("ww", dat - Weekday(dat, 2) + 4, 2, 2)
wk2 = DatePart("ww", datVD - Weekday(datVD, 2) + 4, 2, 2)
onp = wk Mod 2 + 1
'blad aanmaken voor gekozen dag
Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = naamD
'kolomnummers begin en einduur huidige en vorige dag
If onp = 1 Then
kol = Choose(Weekday(dat, 2), 24, 27, 30, 33, 36, 39, 42)
kol2 = Choose(Weekday(datVD, 2), 24, 27, 30, 33, 36, 39, 20)
Else
kol = Choose(Weekday(dat, 2), 2, 5, 8, 11, 14, 17, 20)
kol2 = Choose(Weekday(datVD, 2), 2, 5, 8, 11, 14, 17, 42)
End If
' maand uit jaarmap ophalen
Workbooks.Open (ThisWorkbook.Path & "\" & naamJ & ".xlsx")
Sheets(naamM).Move before:=Workbooks("bezettingsrooster.xlsm").Sheets(1)
' Namen en uren plaatsen
lastrow = Sheets(naamM).Range("a" & Rows.Count).End(xlUp).row
For a = 3 To lastrow
If Sheets(naamM).Cells(a, kolom).Value = "W" Then
Sheets("Dagplanning").Range("a" & Rows.Count).End(xlUp).Offset(1, 0).Value = Sheets(naamM).Cells(a, 1).Value
Sheets("dagplanning").Range("b" & Rows.Count).End(xlUp).Offset(1, 0).Value = Sheets("Uurrooster").Cells(a + 1, kol).Value
Sheets("dagplanning").Range("c" & Rows.Count).End(xlUp).Offset(1, 0).Value = Sheets("Uurrooster").Cells(a + 1, kol + 1).Value
End If
Next
' namen en uren vorige dag
If Month(dat) = Month(datVD) Then
naamMvd = naamM
End If
If Month(dat) <> Month(datVD) Then
Workbooks(naamJ).Activate
Sheets(naamMvd).Move before:=Workbooks("bezettingsrooster.xlsm").Sheets(1)
Workbooks("bezettingsrooster").Activate
End If
lastrow = Sheets(naamMvd).Range("a" & Rows.Count).End(xlUp).row
For a = 3 To lastrow
If Sheets(naamMvd).Cells(a, kolom2).Value = "W" Then
Sheets("Dagplanning").Range("s" & Rows.Count).End(xlUp).Offset(1, 0).Value = Sheets(naamMvd).Cells(a, 1).Value
Sheets("dagplanning").Range("t" & Rows.Count).End(xlUp).Offset(1, 0).Value = Sheets("Uurrooster").Cells(a + 1, kol2).Value
Sheets("dagplanning").Range("u" & Rows.Count).End(xlUp).Offset(1, 0).Value = Sheets("Uurrooster").Cells(a + 1, kol2 + 1).Value
End If
Next
'datum op dag en gegevens naar eigen blad
Sheets("Dagplanning").Range("a1") = dat
Sheets("Dagplanning").Range("s1") = datVD
Sheets(naamD).Range("Z3").Value = Sheets("Dagplanning").Range("Z3")
zzz = Sheets("dagplanning").Range("a" & Rows.Count).End(xlUp).row
Sheets("Dagplanning").Range("a1", "c" & zzz).Copy Destination:=Sheets(naamD).Range("a1")
Sheets(naamD).Range("a1").ColumnWidth = 30
Sheets("Dagplanning").Columns("E:L").Copy Destination:=Sheets(naamD).Range("e1")
'formules van aangemaakte dag verwijderen
Sheets(naamD).Range("F4", "F30").Value = Sheets(naamD).Range("F4", "F30").Value
Sheets(naamD).Range("H4", "H30").Value = Sheets(naamD).Range("H4", "H30").Value
Sheets(naamD).Range("J4", "J30").Value = Sheets(naamD).Range("J4", "J30").Value
Sheets(naamD).Range("L4", "L30").Value = Sheets(naamD).Range("L4", "L30").Value
Sheets(naamD).Range("Z3").Value = ""
'sorteren van vroeg tot laat
With Range("a3", "c304")
ActiveWorkbook.Worksheets(naamD).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(naamD).Sort.SortFields.Add Key:=Range("B2:B300") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
End With
With ActiveWorkbook.Worksheets(naamD).Sort
.SetRange Range("A3:C300")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'markeren dat dag is aangemaakt en nog niet verwerkt
Sheets("dagen").Range("a" & Rows.Count).End(xlUp).Offset(1, 0).Value = "'" & naamD
Sheets("dagen").Range("a" & Rows.Count).End(xlUp).Offset(0, 1).Value = "Nee"
'blad maand en aangemaakte dag naar jaarmap, en jaarmap sluiten
Sheets(naamD).Move before:=Workbooks(naamJ & ".xlsx").Sheets(1)
Workbooks("bezettingsrooster").Sheets(naamM).Move before:=Workbooks(naamJ & ".xlsx").Sheets(1)
If Month(dat) <> Month(datVD) Then
Workbooks("bezettingsrooster").Sheets(naamMvd).Move before:=Workbooks(naamJ & ".xlsx").Sheets(1)
End If
Workbooks(naamJ & ".xlsx").Close True
eind:
Application.CutCopyMode = False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End If
Unload Me
End Sub
alle hulp welkom
mvg
Leo