habe ein Problem mit der Funktion "Workbook_Open".
Wenn ich das Makro direkt aus der Visual Basic-Oberfläche starte
läuft das Makro auch richtig ab.
Das Problem:
Beim öffnen der Arbeitsmappe wird das Makro doppelt aufgerufen, scheint jedenfalls so, denn ich ich frage ein Ereignis ab, das mir eine Meldung (MsgBox) anzeigt.Beim öffnen der Arbeitsmappe
muß ich diese Meldung zweimal quittieren, das ist nicht richtig.
Das Makro:
Private Sub Workbook_Open()
Dim datum As String
Dim ursprung As String
Workbooks("Ausgangsdruck.XLS").Activate
ursprung = Range("A1")
If Range("B1") = "0" Then
Exit Sub
End If
For i = 3 To 5000
datum = Cells(i, 1)
If datum = ursprung Then Exit For
Next i
If datum = ursprung Then
box1 = MsgBox("Datum schon vorhanden, Wert überschreiben?", vbYesNo, "Achtung!")
End If
If box1 = vbNo Then
Exit Sub
End If
If box1 = vbYes Then
If Cells(i, 2).Select Then
Range("B1").Select
Selection.Copy
Cells(i, 2).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
End If
End If
If datum = "" Then
Rows("3:3").Select
Selection.Insert Shift:=xlDown
Range("A1:B1").Select
Selection.Copy
Range("A3").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("C4:D4").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("C3:D4"), Type:=xlFillDefault
Range("C3:D4").Select
Range("A2").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C[3]:R[375]C[3])"
Range("B2").Select
ActiveCell.FormulaR1C1 = "=ROUND(SUM(R[1]C[1]:R[375]C[1]),2)"
End If
Range("A3:B20000").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ActiveWindow.ScrollRow = 3
ActiveWindow.SmallScroll Down:=-2
Range("A1").Select
End Sub
Vielen Dank für die Hilfe !!