Merkhilfen für mich und alle, die es interessiert

Schlagwort: Excel

Aktive Zeile in Excel farbig hervorheben

EINSCHRÄNKUNG (am besten gleich vorab):
Beim nachfolgend dokumentierten Code gehen Hintergrundfarben in Deinem Excel-Arbeitsblatt verloren!
Für meine Zwecke reicht er aber aus, da ich ihn für Pivot-Tabellen nutzen will, in denen ich sowieso keine farbigen Hintergründe nutzen will. Das kann man sicher irgendwo abfangen, aber dafür habe ich im Moment (und wohl auch später ;-)) zugegebenermaßen keine Muße

  1. Excel-Sheet als „Excel-Arbeitsmappe mit Makros (*.xlsm)“ speichern. ([F12] drücken, um in den „Speichern unter…“ Dialog zu kommen)
  2. [ALT]+[F11], um in den Entwicklermodus zu kommen
  3. Doppelklick auf „DieseArbeitsmappe“
  4. Folgenden Code einfügen
Private Sub Workbook_SheetSelectionChange( _
	ByVal sh As Object, ByVal Target As Excel.Range)
	Static AlteZelle As Range
	If Not AlteZelle Is Nothing Then
		AlteZelle.EntireRow.Interior.ColorIndex = _
		xlColorIndexNone
	End If
	Target.EntireRow.Interior.ColorIndex = 27
	Set AlteZelle = Target
End Sub


Speichern mit [Strg]+[S] und dann den Entwicklermodus mittels [ALT]+[Q] verlassen. (Oder aber erstmal ausgiebig die Farbcodes (bei mir ist es die 45) ausprobieren.

Quellen:

Code: http://forum.chip.de/office/aktive-zeile-farbig-hervorheben-506054.html#post3170937 (ein paar Beiträge weiter unten jammert ein inzwischen gesperrter User, dass da was nicht läuft, aber seine Alternative funktioniert nicht)

Farbcodes [Update 2021 – inzwischen gibt es viel weniger Farbauswahl beim ColorIndex 🙁 – um RGB kann ich mich grade nicht kümmern ;-)]: https://docs.microsoft.com/de-de/office/vba/api/excel.colorindexhttp://www.mvps.org/dmcritchie/excel/colors.htm

Mehrere Tabellenblätter in Excel auf einen Schlag schützen und wieder entsperren.

Manchmal kann es nötig sein, eine Tabelle zur Bearbeitung weiterzugeben und will sicher stellen, dass Formeln nicht versehentlich geändert werden können. Je nachdem, inwiefern fremde Rechte „geschützt“ werden müssen, ist es erforderlich, das Aufheben der Sperre durch ein Kennwort zu unterstützen. (jaja, nicht jeder lässt sich davon abhalten). Bei umfangreichen Tabellen mit mehreren Blättern kann es ganz schnell ganz lästig werden, jedes Blatt einzeln zu schützen und nach Rückgabe wieder zu entsperren. VBA sei Dank, geht das auch mit einem einfachen Makro:

Option Explicit

Sub schutz()
    Dim i As Integer, Blatt As Worksheet
    Set Blatt = ActiveSheet
    Dim pw As String
    pw = InputBox("Bitte Kennwort zum Schützen eingeben", "Blattschutzkennwort", "KENNWORT eingeben")
    For i = 1 To ActiveWorkbook.Worksheets.Count
        ActiveWorkbook.Worksheets(i).Activate
        ActiveSheet.Cells(1, 1).Select
        ActiveWindow.Zoom = 100
        ActiveSheet.Protect Password:=pw
    Next i
    Blatt.Select
End Sub

Sub freigeben()
    Dim i As Integer, Blatt As Worksheet
    Set Blatt = ActiveSheet
    Dim pw As String
    pw = InputBox("Bitte Kennwort eingeben", "Blattschutzkennwort", "KENNWORT eingeben")
    For i = 1 To ActiveWorkbook.Worksheets.Count
        ActiveWorkbook.Worksheets(i).Activate
        ActiveSheet.Unprotect Password:=pw
        ActiveSheet.Cells(1, 1).Select
        ActiveWindow.Zoom = 95
    Next i
    Blatt.Select
End Sub
 

Achtung! Beim Sperren erfolgt keine Passwortprüfung. Das sollte ich mal bei Gelegenheit noch einbauen.

Hinweis: Für meine Zwecke war es wichtig, dass in jedem Blatt der Cursor auf die Zelle A1 (Zeile 10 bzw. 25) und der Zoom auf bestimmte Werte (Zeile 11 bzw. 26) gestellt wird. In Zeile 5 bzw. 19 wird das gerade aktive Blatt ausgelesen und in Zeile 14 bzw. 28 wird nach Abschluss wieder auf das vor Makroausführung aktive Blatt geschaltet. Man könnte jetzt noch die gerade aktive Zelle auslesen und wieder in diese springen, aber das ist für meinen Anwendungsfall absoluter Overkill – mit A1 bin ich voll zufrieden.

Fundstelle für die Grundidee ist ein inzwischen über 9 Jahre alter Beitrag im Chip-Forum.

© 2021 fortytwo.195

Theme von Anders NorénHoch ↑