Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
196to200
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
196to200
196to200
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Workbook_Open

Workbook_Open
07.01.2003 11:09:07
Holger Meinert
Hallo Forum
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 !!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Workbook_Open
07.01.2003 11:18:19
Hajo_Zi
Hallo Holger

ich habe mal den Code bereinigt und meinen Kommentar dazu geschrieben.


Option Explicit

Private Sub Workbook_Open()
Dim datum As String
Dim ursprung As String
Dim I As Integer
' **** wird das Makro in einer anderen Datei als der geöffneten ausgeführt
Workbooks("Ausgangsdruck.XLS").Activate
ursprung = Range("A1")
If Range("B1") = "0" Then Exit Sub
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!")
If box1 <> vbYes Then Exit Sub
If Cells(I, 2).Select Then
Range("B1").Copy
Cells(I, 2).PasteSpecial Paste:=xlValues, Operation:=xlNone
Application.CutCopyMode = False
End If
If datum = "" Then
Rows("3:3").Insert Shift:=xlDown
Range("A1:B1").Copy
Range("A3").PasteSpecial Paste:=xlValues, Operation:=xlNone
Application.CutCopyMode = False
Range("C4:D4").AutoFill Destination:=Range("C3:D4"), Type:=xlFillDefault
Range("A2").FormulaR1C1 = "=SUM(R[1]C[3]:R[375]C[3])"
Range("B2").FormulaR1C1 = "=ROUND(SUM(R[1]C[1]:R[375]C[1]),2)"
End If
Range("A3:B20000").Sort Key1:=Range("A3"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ActiveWindow.ScrollRow = 3
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Hajo

Anzeige
Re: Workbook_Open
07.01.2003 11:24:51
Holger Meinert
Hallo Hajo,
Das Makro befindet sich in der geöffneten Arbeitsmappe.
Die Aufgaben die dieses Makro abarbeiten soll befinden sich in einer ausgeblendeten Arbeitsmappe.

Holger

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige