Hintergrundfarbe vom Masterblatt ins Arbeitsblatt kopieren – nicht den Inhalt

Hintergrundfarbe vom Masterblatt ins Arbeitsblatt kopieren – nicht den Inhalt

Ich frage mich, ob mir jemand helfen kann, ich bin ein Neuling, wenn es um Excel geht. Ich muss eine Tabelle erstellen, die für die Verwaltung von Rechenzentren und die Hardwareverfolgung verwendet wird. Ich habe also ein Hauptarbeitsblatt und ein Blatt pro Rack erstellt. Ich muss erreichen, dass, wenn eine Zelle auf dem Hauptblatt mit einer Hintergrundfarbe (grau) gefüllt ist, die Farbe auf dem entsprechenden Arbeitsblatt geändert wird. Ich bin mir nicht sicher, ob das Sinn macht :)

Master B2:B25 zu Arbeitsblatt 1 B4:B27.. Master D2:D25 zu Arbeitsblatt 2 B4:B27.. Master E2:E25 zu Arbeitsblatt 3 B4:B27..usw.

Ich kann „Kopieren“ nicht verwenden, da dadurch der Inhalt der Zelle kopiert wird, was ich nicht möchte, sondern nur die Hintergrundfarbe.

Antwort1

VBA hat keinFarbwechsel-Ereignisdie erfasst werden können, um den Vorgang vollautomatisch durchzuführen.

Ich beschließe, es zu schaffenbei Doppelklick. Sie doppelklicken auf eine Zelle und die Farbe wird in die entsprechende Zelle in einem anderen Arbeitsblatt kopiert:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim wkb As Workbook
    Set wkb = ThisWorkbook
    total_sheets = wkb.Worksheets.Count
    aff_row = Target.Row
    aff_column = Target.Column
    sheet_used = (aff_column / 2) + 2
    If aff_column > 1 Then
        If Int(sheet_used) = sheet_used Then
            If sheet_used <= total_sheets Then
                wkb.Sheets(sheet_used).Cells(aff_row + 2, 2).Interior.Color = Target.Interior.Color
            End If
        End If
    End If
End Sub

Öffnen Sie Makros / VBA Doppelklicken Sie auf die linke SpalteTabelle 2, fügen Sie den Code auf der rechten Seite ein

Wenn Sie die Farbe einer Zelle ändern, doppelklicken Sie darauf und sie ändert sich folgendermaßen:

Tabelle2 SpalteB -> Tabelle3 SpalteB

Tabelle2 SpalteD -> Tabelle4 SpalteB

Tabelle2 SpalteF -> Tabelle5 SpalteB

Immer 2 Zeilen unterhalb der Originalzeile.

Antwort2

Da Sie sich selbst als Neuling bezeichnen, werde ich Ihnen den richtigen Start ermöglichen ...

  1. Zelle mit Originalstil kopieren: Ctrl+c

  2. Zielzelle auswählen und Inhalt einfügen: Alt+ e+ s+v

  3. Wählen Sie die Option „Formate“, um nur die Formate der kopierten Zelle einzufügen: t+Enter

Antwort3

Wenn Sie alle Arbeitsblätter auswählen (halten Sie die Umschalttaste gedrückt und klicken Sie auf jede Registerkarte), können Sie alle gleichzeitig formatieren. Jede Änderung, die Sie am Quellblatt vornehmen, wird auf den Rest übertragen. Das macht aber nur dann wirklich Sinn, wenn es nur um die Ersteinrichtung Ihres Blattes geht.

Wenn Sie möchten, dass solche Änderungen regelmäßiger und automatisch über die gesamte Lebensdauer der Arbeitsmappe hinweg erfolgen, kann dies nur mit VBA gelöst werden (Visual Basic für Anwendungen, das in den meisten modernen Office-Versionen standardmäßig integriert ist). In diesem Fall müssten Sie Code für das Ereignis Worksheet_Change() hinzufügen:

  1. Merken Sie sich die Hintergrundfarbe Ihrer aktuellen Auswahl

    Dim myColor As Integer myColor = Selection.Interior.ColorIndex

  2. Wählen Sie den neuen Bereich aus, auf den die Farbe angewendet werden soll. Dadurch sollte Ihr aktueller Bereich auf allen sichtbaren Arbeitsblättern ausgewählt werden.

    Worksheets.Select

  3. Wenden Sie Ihre ursprüngliche Hintergrundfarbe auf Ihre neue Auswahl an

    Selection.Interior.ColorIndex = myColor

  4. Wählen Sie nur die Registerkarte erneut aus, an der Sie ursprünglich gearbeitet haben. (Ich gehe davon aus, dass Ihre Masterregisterkarte das erste Blatt ist.)

    Worksheets(1).Select

Hinweis:ohne Änderungen spiegelt dieser Code ALLE Farbänderungen von ALLEN Blättern auf ALLE anderen Blätter, wenn IRGENDEINE Zelle geändert wird, was übertrieben ist. Die Lösung könnte bei Bedarf viel effizienter gestaltet werden.

verwandte Informationen