Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Makro automatisch ausführen





Frage

Hallo Ich habe mit VBA ein Makro geschrieben um in einer Excel-Datei die Zellen und die Schriftfarbe eintragsbezogen zu formatieren (Farbe anpassen). Nun muss ich aber dieses Makro immer manuell (mit Alt+F8; Enter) starten. Wie erreiche ich, dass das Makro beim Öffnen oder schliessen der Datei automatisch ausgeführt wird? Ich danke für Eure Hilfe. Gruss Heinz

Antwort 1 von Hajo_Zi

Hallo Heinz,

schreibe es es unter DieserArbeitsmappe unter

Private Sub Workbook_Open()


Gruß Hajo

Antwort 2 von Heinz028

Hallo Hajo

Danke für die schnelle Hilfe. Leider konnte ich noch nicht den gewünschten Erfolg erzielen. Ich möchte, dass ich die Spalte/Zeile nicht markieren muss, um das Makro auszuführen. Das Makro sollte vollautomatisch ausgeführt werden, wenn die Datei (Arbeitsblatt) geöffnet oder geschlossen wird. Alle Daten befinden sich in Spalte "A", Zeile3 bis ca 200

Mein Makro, welches als "Modul1" editiert ist, sieht nun folgendermassen aus:

Option Compare Text
Private Sub Workbook_Open()
Sub Zellenfarbe()
Dim MyCell As Range
For Each MyCell In Selection
If MyCell.Value Like "*Preferred*" Then
MyCell.Interior.Color = RGB(0, 255, 51)
MyCell.Font.Color = RGB(255, 0, 51)
MyCell.Font.Bold = True
ElseIf MyCell.Value Like "*Standard*" Then
MyCell.Interior.Color = RGB(255, 255, 51)
MyCell.Font.Color = RGB(100, 50, 45)
MyCell.Font.Bold = True
ElseIf MyCell.Value Like "*Old*" Then
MyCell.Interior.Color = RGB(255, 0, 51)
MyCell.Font.Color = RGB(255, 255, 255)
MyCell.Font.Bold = True
ElseIf MyCell.Value = "" Then
MyCell.Interior.Color = RGB(255, 255, 255)
End If
Next
End Sub

Ich danke für die tolle Hilfe
Gruss Heinz

Antwort 3 von Primut

Hallo Heinz,

da gab es scheinbar ein paar Mißverständnisse:

1. Du hast ja im Makro angegeben
For Each Cell in Selection
,
allerdings ohne überhaupt etwas im Makro zu selektieren!
Dort musst du einfach den Bereich eintragen:
For Each MyCell In Range("A3:A200")


2. Automatisch beim Öffnen ausführen:
Doppelklick im Projektexplorer auf diese Arbeitsmappe
und dort auswählen
Workbook 
und
 Open

Dieses Makro wird dann beim öffnen aktiviert. Trag dort dein Makro ein und es wird aufgerufen:
Private Sub Workbook_Open()
Zellenfarbe
End Sub

Gleiches gilt für automatisches Ausführen beim Schließen des Workbooks.
Und logisch; das falsch eingefügte
Private Sub Workbook_Open() 
entfernen.

Gruß
    Primut