Office - Word, Excel und Co. 9.744 Themen, 41.408 Beiträge

Ich habe eine Frage zu Makros

pappnasen / 7 Antworten / Baumansicht Nickles

Ich habe eine Tabelle mit 4 Arbeitsblättern.

Ich habe ein Makro, dieses soll aber nur in einem Arbeitsblatt ausgeführt werden.

Sub Farbe()
 Worksheets("Ausgaben").Activate
 ActiveCell.Font.ColorIndex = 1
End Sub

Ich mache damit rote Farben schwarz.

Wenn ich das nun in einem anderen Arbeitsblatt starte,  dann öffnet es das Arbeitsblatt "Ausgaben".
Ich möchte aber, dass es dann nicht anspringt.
Kann man das verhindern?

Danke.

bei Antwort benachrichtigen
Borlander pappnasen „Ich habe eine Frage zu Makros“
Optionen
Worksheets("Ausgaben").Activate

Sorgt dafür, dass das Arbeitsblatt ausgaben gewählt wird.

Du könntest mit ActiveSheet prüfen prüfen ob die gewünschte Tabelle aktiv ist.

bei Antwort benachrichtigen
pappnasen Borlander „Sorgt dafür, dass das Arbeitsblatt ausgaben gewählt wird. Du könntest mit ActiveSheet prüfen prüfen ob die ...“
Optionen

Ja, das geht.

Am Anfang:

If ActiveSheet.Name <> "Ausgaben" then end

Danke.

bei Antwort benachrichtigen
mumpel1 pappnasen „Ja, das geht. Am Anfang: If ActiveSheet.Name Ausgaben then end Danke.“
Optionen

Hallo!

"End" ist denkbar schlecht, denn das zerstört das ganze VBA-Projekt, leert also auch alle öffentlichen Variablen. "Exit Sub" wäre besser.

Einfacher wäre es mit dem Tabellenereignis "Worksheet_Change". Oder "Worksheet_BeforeDoubleClick" (Damit kann man das Einfärben per Doppelklick steuern. "Worksheet_Change" dagegen reagiert auf alle Eingaben im Tabellenblatt).

Gruß, René

bei Antwort benachrichtigen
pappnasen mumpel1 „Hallo! End ist denkbar schlecht, denn das zerstört das ganze VBA-Projekt, leert also auch alle öffentlichen Variablen. ...“
Optionen

Hallo mumpel1,

danke für die Hilfe. Das mit dem Exit Sub ist mir neu.
Allerdings hat mich das in anderen VBA-Dateien noch nie beeinflusst.
Ich habe es aber geändert.

"Worksheet_BeforeDoubleClick"
Wie man das anwendet, weiß ich nicht. Ich denke, die Tabelle muss dieses in einer gesonderten Datei vorher laden.
Mein Problem: Schwer sehbehindert und da ist das Programmieren nicht mehr so einfach.
Schwarz auf Weiß kann ich kaum lesen. Und in Excel gibt es keinen Dark Mode.

Gruß

Werner

bei Antwort benachrichtigen
mumpel1 pappnasen „Hallo mumpel1, danke für die Hilfe. Das mit dem Exit Sub ist mir neu. Allerdings hat mich das in anderen VBA-Dateien noch ...“
Optionen
"Worksheet_BeforeDoubleClick" Wie man das anwendet, weiß ich nicht. Ich denke, die Tabelle muss dieses in einer gesonderten Datei vorher laden.

Nein. Das gehört in den Codebereich der Tabelle. Rechtsklick auf den Reiter der gewünschten Tabelle=>"Code anzeigen".

https://www.rholtz-office.de/vbacodes/nickles_beispiel_1.html

bei Antwort benachrichtigen
mumpel1 pappnasen „Hallo mumpel1, danke für die Hilfe. Das mit dem Exit Sub ist mir neu. Allerdings hat mich das in anderen VBA-Dateien noch ...“
Optionen
Schwarz auf Weiß kann ich kaum lesen. Und in Excel gibt es keinen Dark Mode.

Den kannst Du aber selber machen. Im VBA-Editor auf Extras=>Option=>Editorformat. Hintergrund = Hintergrundfarbe, Vordergrund = Schriftfarbe. Für jeden "Texttyp" (Code-Farben) musst Du die Farben separat einstellen.

bei Antwort benachrichtigen
pappnasen mumpel1 „Den kannst Du aber selber machen. Im VBA-Editor auf Extras Option Editorformat. Hintergrund Hintergrundfarbe, Vordergrund ...“
Optionen

Das habe ich bis heute noch nie gewusst.

Recht herzlichen Dank.

Die meisten Programme können das nicht und die bediene ich in der Regel aus dem Gedächtnis.

Für das andere habe ich mir auch schon eine Seite gebookmarkt.

https://macerayarislari.com/300-examples/287-excel-vba-beforedoubleclick-event.html

Ein schönes WE.

bei Antwort benachrichtigen