VisualBasic Excel 2007 Makro - Fehler (Neues Blatt)

jackson2340

Cadet 3rd Year
Registriert
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.

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
 
ziemlich am ende quasi ab hier schmeisst er mich raus:

Code:
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
 
uuuh, sorry, dass ich noch ein anderes forum befrage, wenn du jetzt noch ein drittes forum ausfindig machst in dem ich gepostet habe bekommste nen lolli.
:evillol:
 
Darum geht es ja nicht, es geht darum, dass sich verschiedene Leute eine Lösung überlegen (möglicherweise auch eine finden) und du schon längst eine Lösung hast. Somit konnten sich die Leute nicht um die Probleme der anderen User kümmern.

Aber deinen Kommentar mit dem Lolli stufe ich so ein, dass du 14 Jahre alt bist und nicht weißt was du tust.
 

Ähnliche Themen

Zurück
Oben