848 Aufrufe
Gefragt in Tabellenkalkulation von florian1010 Mitglied (754 Punkte)
Hallo,

hab mal wieder ein Problem, das ich selbst nicht lösen kann.

Hab 2 Makros in einem Sheet.
Das 1. Makro ist eine Funktion in der Spalte J für K. Das funktioniert auch reibungslos.
Das 2. Makro soll eine Zeile ausschneiden, wenn in Spalte M eine Zahl größer 1 steht, in einem anderen Sheet an letzter stelle einfügen und die die Zeile in Sheet 1 löschen. Das funktioniert, jedoch nur, wenn ich im Code bin und dort mit dem Cursor IM Makrotext bin.

Es steht alles in [Tabelle1] mit Abschnittsteilern zwischen den Subs. Makro sieht so aus:


Option Explicit

Option Compare Text


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim vntV As Variant, intIndex As Integer ....

End Sub


Private Sub Workbook_Open()
Dim lngLetzte As Long
Dim lngZeile As Long
With Worksheets("Erledigt")
lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 2)), .Cells(.Rows.Count, 2).End(xlUp).Row, .Rows.Count) + 1
End With
With Worksheets("Übersicht")
For lngZeile = IIf(IsEmpty(.Cells(.Rows.Count, 2)), .Cells(.Rows.Count, 2).End(xlUp).Row, .Rows.Count) To 2 Step -1
If .Cells(lngZeile, 13) >= 1 Then
.Range(.Cells(lngZeile, 1), .Cells(lngZeile, 21)).Cut Worksheets("Erledigt").Cells(lngLetzte, 1)
.Rows(lngZeile).Delete
lngLetzte = lngLetzte + 1
End If
Next lngZeile
End With
End Sub

2 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Florian,

das zweite Makro soll nur beim Öffnen der Arbeitsmappe ausgeführt werden -daher
Private Sub Workbook_Open()
und sollte eigentlich im VBA-Projekt der Arbeitsmappe (hier nachschauen) stehen und nicht im VBA-Projekt des Arbeitsblattes.
Dort wird es nämlich nicht beim Öffnen der Mappe ausgeführt.

Gruß

M.O.
0 Punkte
Beantwortet von florian1010 Mitglied (754 Punkte)
Hallo M.O. ,

hat ein wenig gedauert, bis ich verstanden habe, aber jetzt klappts.

Es stand nämlich in der Arbeitsmappe:


Private Sub Workbook_Open()

End Sub


Hab gedacht, das wäre richtig so. Hab es dann mit dem kompletten Makrotext überschrieben. Und es klappt.

Danke vielmals.


Gruß

Florian
...