jackson2340
Cadet 3rd Year
- Dabei seit
- Nov. 2010
- Beiträge
- 40
servus!
ich habe ein problem mit einem makro für excel 2007 und zwar, wenn
ich auf neues blatt klicke, dann tritt ein fehler auf von dem ich nicht weiß wie ich das problem löse,
da ich noch recht unerfahren bin auf gebiet, vielleicht weiß hier ja jemand rat.
der fehler tritt bei "Call init_DlgNewPjfSheet" auf bzw. wenn ich auf "neues blatt" in der tabelle klicke.
ich habe ein problem mit einem makro für excel 2007 und zwar, wenn
ich auf neues blatt klicke, dann tritt ein fehler auf von dem ich nicht weiß wie ich das problem löse,
da ich noch recht unerfahren bin auf gebiet, vielleicht weiß hier ja jemand rat.
der fehler tritt bei "Call init_DlgNewPjfSheet" auf bzw. wenn ich auf "neues blatt" in der tabelle klicke.
Code:
Option Explicit
Public str_LastName As String
Public str_FirstName As String
Public int_Weeks As Integer
Public bl_CopyPrevious As Boolean
Public str_PlanStart As String
Public int_WeekStart As Integer
Public int_WeekEnd As Integer
Public int_StartOfWeek As Integer
Public str_WeekDay As String
Sub initValues()
str_LastName = tblControl.Evaluate("fd_LastName").Value
str_FirstName = tblControl.Evaluate("fd_FirstName").Value
int_Weeks = tblControl.Evaluate("fd_i_Weeks").Value
bl_CopyPrevious = tblControl.Evaluate("fd_bl_CopyPrevious").Value
str_PlanStart = tblControl.Evaluate("fd_PlanStart").Value
str_WeekDay = tblControl.Evaluate("fd_WeekStart")
Select Case str_WeekDay
Case "Sonntag"
int_StartOfWeek = vbSunday
Case "Montag"
int_StartOfWeek = vbMonday
Case "Dienstag"
int_StartOfWeek = vbTuesday
Case "Mittwoch"
int_StartOfWeek = vbWednesday
Case "Donnerstag"
int_StartOfWeek = vbThursday
Case "Freitag"
int_StartOfWeek = vbFriday
Case "Samstag"
int_StartOfWeek = vbSaturday
End Select
DlgNewPjfSheet.cbCopyPrevious = bl_CopyPrevious
End Sub
Sub btn_NewSheet_BeiKlick()
Call init_DlgNewPjfSheet
DlgNewPjfSheet.Show
End Sub
Sub refresh_DlgNewPjfSheetFields()
Dim int_DateDiff As Integer
'calculate start date of plan
int_DateDiff = DateDiff("d", DlgNewPjfSheet.fd_SheetName.DayOfWeek, int_StartOfWeek, int_StartOfWeek)
Select Case DlgNewPjfSheet.fd_PlanStart
Case "Aktuell"
DlgNewPjfSheet.fd_PlanStartDate = DateAdd("d", int_DateDiff, DlgNewPjfSheet.fd_SheetName)
Case "Folgende"
DlgNewPjfSheet.fd_PlanStartDate = DateAdd("d", 7 + int_DateDiff, DlgNewPjfSheet.fd_SheetName)
Case "Manuell"
End Select
'other fields
int_WeekStart = CInt(VBA.Format(DlgNewPjfSheet.fd_PlanStartDate.Value, "ww"))
int_WeekEnd = int_WeekStart + DlgNewPjfSheet.fd_i_PlanWeeks.Value - 1
If int_WeekEnd < int_WeekStart Then int_WeekEnd = int_WeekStart
DlgNewPjfSheet.fd_i_PlanWeeks = int_Weeks
DlgNewPjfSheet.fd_CW_From = int_WeekStart
DlgNewPjfSheet.fd_CW_To = int_WeekEnd
With DlgNewPjfSheet
If .fd_PlanStart.Value = "Manuell" Then
.fd_PlanStartDate.Enabled = True
Else
.fd_PlanStartDate.Enabled = False
End If
End With
DlgNewPjfSheet.Repaint
End Sub
Sub btn_NewTheme_BeiKlick()
VBAProject.DlgNewTheme.Show
End Sub
Sub btn_NewAppointment_BeiKlick()
VBAProject.DlgNewAppointment.Show
End Sub
Sub btn_ChangeSettings_BeiKlick()
Call init_DlgNewPjfSheet
DlgNewPjfSheet.fd_bl_NewSheet.Value = False
int_Weeks = CInt(ActiveSheet.Cells(1, 2))
DlgNewPjfSheet.fd_i_PlanWeeks.Value = int_Weeks
DlgNewPjfSheet.fd_PlanStart.Value = CStr(ActiveSheet.Cells(2, 3))
DlgNewPjfSheet.fd_SheetName.Value = CDate(ActiveSheet.Name)
DlgNewPjfSheet.fd_PlanStartDate.Value = CDate(ActiveSheet.Cells(2, 2))
DlgNewPjfSheet.Show
End Sub
Sub btn_DeleteSheet_BeiKlick()
ActiveSheet.Delete
End Sub
Sub init_DlgNewPjfSheet()
Call initValues
'Sheet name ist current date
DlgNewPjfSheet.fd_SheetName.Value = Date
'Set initial values
DlgNewPjfSheet.fd_i_PlanWeeks.Value = int_Weeks
DlgNewPjfSheet.fd_PlanStartDate = Date
With DlgNewPjfSheet.fd_PlanStart
.AddItem "Aktuell"
.AddItem "Folgende"
.AddItem "Manuell"
.Text = tblControl.Evaluate("fd_PlanStart").Value
End With
Call refresh_DlgNewPjfSheetFields
End Sub