Hallo,
ich habe in vorhandenen Beiträgen keine Lösung meines Problems gefunden.
Ich rufe aus einem Sub XY() eine weitere Sub AB(c, d, e, f) auf. Im Sub AB möchte ich eine Function TageProMonat(ByVal Jahr as Long, Monat as Long) as Long aufrufen.
Die Function ist korrekt programmiert in einem beliegen Tabellenbaltt kann ich die Funktion nutzen.
Der Aufruf mit AnzahlTage = TageProMonat(Jahr, Monat) klappt jedoch nicht. Es wird mir die Fehlermeldung angezeigt, dass ein Sub oder eine Funktion diesen Namens nicht definiert ist.
Was mache ich falsch?
Gruß
Ralph
Hier der Code des Sub AB:
Und hier der Code der Funktion:
ich habe in vorhandenen Beiträgen keine Lösung meines Problems gefunden.
Ich rufe aus einem Sub XY() eine weitere Sub AB(c, d, e, f) auf. Im Sub AB möchte ich eine Function TageProMonat(ByVal Jahr as Long, Monat as Long) as Long aufrufen.
Die Function ist korrekt programmiert in einem beliegen Tabellenbaltt kann ich die Funktion nutzen.
Der Aufruf mit AnzahlTage = TageProMonat(Jahr, Monat) klappt jedoch nicht. Es wird mir die Fehlermeldung angezeigt, dass ein Sub oder eine Funktion diesen Namens nicht definiert ist.
Was mache ich falsch?
Gruß
Ralph
Hier der Code des Sub AB:
Quellcode
- Sub Datei_neu(ByVal Pfad As String, Dateiname As String, Jahr As Variant, Monat As Variant)
- '
- '#################################################################
- '
- 'Variablen deklarieren
- '
- '#################################################################
- '
- Dim i As Long
- Dim AnzahlTage As Long
- Dim datei As String
- Dim Bereich1 As String
- Dim Bereich2 As String
- '
- '#################################################################
- '
- 'Variablen füllen
- '
- '#################################################################
- '
- datei = Pfad & Dateiname
- '
- '#################################################################
- '
- 'Neue Arbeitsmappe einfügen
- '
- '#################################################################
- '
- Workbooks.Add
- '
- '#################################################################
- '
- 'Neue Arbeitsmappe erstmals abspeichern
- '
- '#################################################################
- '
- With ActiveWorkbook
- .SaveAs (datei)
- '
- '#################################################################
- '
- 'Die Anzhal der Tabellenblätter auf 12 erhöhen
- '
- '#################################################################
- '
- For i = 1 To 12 - .Worksheets.Count
- .Worksheets.Add
- Next i
- '
- '#################################################################
- '
- 'Die Reiter der Tabellen umbenennen
- '
- '#################################################################
- '
- For i = 1 To 12
- Worksheets("Tabelle" & i).Name = MonthName(i)
- Next i
- '
- '#################################################################
- '
- 'Die Tabellenblätter sortieren
- '
- '#################################################################
- '
- Sheets("Januar").Select
- Sheets("Januar").Move Before:=Sheets(1)
- Sheets("Februar").Select
- Sheets("Februar").Move Before:=Sheets(2)
- Sheets("März").Select
- Sheets("März").Move Before:=Sheets(3)
- Sheets("April").Select
- Sheets("April").Move Before:=Sheets(4)
- Sheets("Mai").Select
- Sheets("Mai").Move Before:=Sheets(5)
- Sheets("Juni").Select
- Sheets("Juni").Move Before:=Sheets(6)
- Sheets("Juli").Select
- Sheets("Juli").Move Before:=Sheets(7)
- Sheets("August").Select
- Sheets("August").Move Before:=Sheets(8)
- Sheets("September").Select
- Sheets("September").Move Before:=Sheets(9)
- Sheets("Oktober").Select
- Sheets("Oktober").Move Before:=Sheets(10)
- Sheets("November").Select
- Sheets("November").Move Before:=Sheets(11)
- '
- '#################################################################
- '
- 'Spalten beschriften
- '
- '#################################################################
- '
- For i = 1 To 12
- .Worksheets(MonthName(i)).Select
- With .Worksheets(MonthName(i))
- .Cells(1, 1).Value = "Datum"
- .Cells(1, 2).Value = "Dienstzeit Beginn [h]"
- .Cells(1, 3).Value = "Dienstzeit Beginn [m]"
- .Cells(1, 4).Value = "Dienstzeit Ende [h]"
- .Cells(1, 5).Value = "Dienstzeit Ende [m]"
- .Cells(1, 6).Value = "Dienstzeit-Unterbrechung Anfang [h]"
- .Cells(1, 7).Value = "Dienstzeit-Unterbrechung Anfang [m]"
- .Cells(1, 8).Value = "Dienstzeit-Unterbrechnung Ende [h]"
- .Cells(1, 9).Value = "Dienstzeit-Unterbrechnung Ende [m]"
- .Cells(1, 10).Value = "Pause 30 Min."
- .Cells(1, 11).Value = "Pause 45 Min."
- .Cells(1, 12).Value = "Überstunden"
- .Cells(1, 13).Value = "Nachtstunden"
- .Cells(1, 14).Value = "Samstagstunden nach 13Uhr"
- .Cells(1, 15).Value = "Sonntagsstunden"
- .Cells(1, 16).Value = "Feiertagsstunden"
- End With
- Next i
- '
- '#################################################################
- '
- 'Datum Eintragen
- '
- '#################################################################
- '
- '
- '#################################################################
- '
- 'Die Datenbereiche zu Tabellen formatieren und
- 'Bereiche benennen
- '
- '#################################################################
- '
- For i = 1 To 12
- AnzahlTage = TageProMonat(Jahr, Monat)
- Bereich1 = "A1:P" & AnzahlTage + 1
- Bereich2 = "=" & MonthName(i) & "!" & "R1C1:R" & AnzahlTage + 1 & "C16"
- .Worksheets(MonthName(i)).Select
- With .Worksheets(MonthName(i))
- .Range(Bereich1).Select
- Selection.AutoFormat Format:=xlRangeAutoFormatClassic2, Number:=True, Font _
- :=True, Alignment:=True, Border:=True, Pattern:=True, Width:=True
- ActiveWorkbook.Names.Add Name:=MonthName(i), RefersToR1C1:=Bereich2
- .Range("A1").Select
- End With
- Next i
- End With
- '
- '######################################################################
- '
- 'Sub Ende
- '
- '######################################################################
- '
- End Sub
Und hier der Code der Funktion:
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ralph_hoffmann“ ()