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
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
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
allerdings ohne überhaupt etwas im Makro zu selektieren!
Dort musst du einfach den Bereich eintragen:
2. Automatisch beim Öffnen ausführen:
Doppelklick im Projektexplorer auf diese Arbeitsmappe
und dort auswählen
Dieses Makro wird dann beim öffnen aktiviert. Trag dort dein Makro ein und es wird aufgerufen:
Gleiches gilt für automatisches Ausführen beim Schließen des Workbooks.
Und logisch; das falsch eingefügte
Gruß
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