Clever-Excel-Forum

Normale Version: Call beim Öffnen der Datei greift nicht richtig. Bitte um Hilfe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen, ?‍♂️

ich würde mich um Hilfe bei folgender Angelegenheit sehr freuen.

Ich habe eine Tabelle bei der die Zeilen anhand von vorgelegten Kriterien farblich markiert werden.
Das Kriterium zum farblich markieren steht in der Spalte "C" im Tabellenblatt1.
Wenn in der Spalte "O" anschließend etwas eingetragen wird, dann sortiert sich die Tabelle automatisch und zwar alphabetisch anhand des Kriteriums in Spalte "C".
Dies funktioniert auch wunderbar. ?

Wenn in Spalte "P" ein kleines "x" eingetragen und die Tabelle gespeichert wird, dann wird die ganze Zeile beim nächten Öffnen der Datei automatisch ausgeschnitten und ins Tabellenblatt "Erledigt" eingefügt.
Dies klappt ebenfalls.

Im Tabellenblatt "Erledigt" werden aber nicht die Farben und der Rahmen automtisch übernommen.
Wenn dort das Kriterium manuell überschrieben wird, dann werden die Farben und der Rahmen gesetzt. Schön wäres es, wenn dies von alleine geschieht.

Im Internet bin ich auf die Option Call gestoßen. Diese habe ich versucht im Arbeitsblatt unter Private Sub Workbook_Open() einzubauen. Leider klappt es nicht so richtig. Den Call habe ich deswegen in der Musterdatei auskommentiert. Ich vermute dort ist irgendwo Fehler versteckt. 

In der Musterdatei habe ich die Beschreibung mit nummerierten Kommentarfeldern zum besseren Verständnis beschrieben.
Würde mich sehr über Hilfe freuen.  

Danke und Gruß
Thomas
Hallöchen,

ich habe jetzt nicht in die Datei geschaut.
Zitat:Wenn dort das Kriterium manuell überschrieben wird, dann werden die Farben und der Rahmen gesetzt.
So wie es ausschaut, hast Du ein Problem mit Ereignismakros wie Activate, SelectionChange bzw. Change. Dort müsste doch schon irgendwo Dein Call drin stehen?
Hallöchen zurück 78 ,

habe den Code tatsächlich als Change Ereigniss stehen. Ich habe ihn in der Musterdatei ins Modul2 reingepackt.
Habe es jetzt mal versucht ins Tabellenblatt3 "Erledigt" zu setzen. Als Change Ereigniss funktioniert es, wenn man das Kriterium manuell überschreibt.  Der Call aus der Arbeitsmappe greift allerdings nicht beim Öffnen der Datei darauf zurück. Schreibe ich es als Sub Test() im Tabellenblatt3 dann passiert leider nicht. Habe ich evtl. eine falsche Deklaration? Wenn ich versuche den Code in die Arbeitsmappe zu integrieren dann geschieht leider auch nichts bzw. der Code läuft nicht komplett durch. 

Stehe gerade auf dem Schlauch. Was mache ich nur falsch?

Gruß
Thomas
Hallo Thomas,

also, um die Wirkungsweise kennenzulernen könntest Du z.B. die Auslösung und Reihenfolge der einzelnen Aktionen testen.

z.B.
In DieseArbeitsmappe
Code:
Private Sub Workbook_Open()
MsgBox "WbO"
End Sub

in Tabelle3
Code:
Private Sub Worksheet_Activate()
MsgBox "WsA"
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "WsC"
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "WsSC"
End Sub

Wenn Du nun Deinen Call drin hast, könntest Du in diese Zeile(n) einen Haltepunkt setzten. Das Makro stoppt dann und Du kannst es mit F8 schrittweise weiter laufen lassen.
Damit es beim Öffnen passt - da kannst Du ja nicht schnell noch vor Ausführung einen Haltepunkt setzen - fügst Du als Kommando "Stop" in das Makro ein und kannst dann beim nächsten Öffnen von dort aus schrittweise weiter machen.