Laufzeitfehler 1004
24.04.2020 09:16:28
René
Ich habe eine Arbeitsmappe mit 3 VBA welche ich Freigeben möchte.
Makro 1:
Private Sub Workbook_Open()
Worksheets("Tagesleistung").Protect Password:="rprp", UserInterfaceOnly:=True
End Sub
Makro 2:
Option Explicit
Enum Spalten_in_Tagesleistung
stLBound = 0 'Damit wir ggf. von stLBound + 1 iterieren können
stAuftraege = 1 '= 1 kann man weglassen, der nächste Eintrag bekommt immer 1 dazu
stGesamtmenge
stRestmenge 'Die Maschinen sind alle von stRestmenge + 1 bis stUbound - 1
stMaschine1
stMaschine2
stMaschine3
stMaschine4
stMaschine5
stMaschine6
stMaschine7
stMaschine8
stUBound 'Damit wir bis stUBound - 1 iterieren können
End Enum
Sub Restmenge_ermitteln()
Dim i As Long, dRest As Double, dTotal As Double
With Sheets("Tagesleistung")
i = 5 'Starte ab Zeile 5 - man könnte auch nach dem Stichwort "Aufträge" in Spalte A suchen _
lassen
'Nun laufen wir von Zeile 5 hinunter bis wir auf Total stoßen (zur Sicherheit wollen wir nie in _
den Bereich Folieren gelangen!)
Do While .Cells(i, stAuftraege) "Total" And .Cells(i, stAuftraege) "Folieren" ' And Not _
IsEmpty(.Cells(i, stRestmenge))
If .Cells(i, stAuftraege) 0 Then 'Die Nullen in Spalte sollte man möglichst löschen, _
aber wir ignorieren sie erst einmal
'Wenn wir bereits eine Restmenge haben, ziehen wir davon ab, ansonsten starten wir mit _
der Gesamtmenge
dRest = IIf(IsEmpty(.Cells(i, stRestmenge)), .Cells(i, stGesamtmenge), .Cells(i, _
stRestmenge)) _
- Application.WorksheetFunction.Sum(.Range(.Cells(i, stRestmenge + 1), .Cells(i, _
stUBound - 1)))
.Cells(i, stRestmenge) = dRest
dTotal = dTotal + dRest
.Range(.Cells(i, stRestmenge + 1), .Cells(i, stUBound - 1)).ClearContents
End If
i = i + 1
Loop
If .Cells(i, stAuftraege) = "Total" Then .Cells(i, stRestmenge) = dTotal
End With
End Sub
Makro 3:
Public Sub Übertrag()
Dim loLetzteQuelle As Long, loLetzteZiel As Long, loStart As Long
Application.ScreenUpdating = False
With Worksheets("Tagesleistung")
loLetzteQuelle = .Cells(.Rows.Count, "L").End(xlUp).Row
Union(.Range("A5:A" & loLetzteQuelle), .Range("L5:L" & loLetzteQuelle)).Copy
End With
With Worksheets("Statistik")
loLetzteZiel = .Cells(.Rows.Count, "B").End(xlUp).Offset(1).Row
.Range("B" & loLetzteZiel).PasteSpecial Paste:=xlPasteValues
loStart = loLetzteZiel
loLetzteZiel = .Cells(.Rows.Count, "B").End(xlUp).Row
.Range("A" & loStart & ":A" & loLetzteZiel) = Date
End With
Application.CutCopyMode = False
End Sub
Nun mein Problem. Sobald ich die Mappe Freigeben kommt ein "Laufzeitfehler 1004".
Kann mir da jemand Helfen?
Gruss René