tommylik
Goto Top

Mit einem Button Text und Farbe einer Zelle ändern

Hallo,

Ich habe folgendes Problem:

Im Bereich D12 bis J20 (der Bereich kann auch größer sein) habe ich in den Zellen unterschiedlich Inhalte.

z.B.

"F/U" mit der Hintergrundfarbe grün, "F/K" mit der Hintergrundfarbe rot oder "F/G" mit der Hintergrundfarbe gelb.

Über einen Button möchte ich die Inhalte und die Hitergrundfarben dieser Zellen auf einmal ändern können.

Alle Inhalte in dem genannten Bereich sollen dann F/A lauten und die Hintergrundfarbe soll grau sein.

Wenn man den Button ein zweites Mal betätigt sollen die alten Werte wieder in den Zellen stehe.

Ich gehe davon aus das man dies mit VBA lösen muss.

Ich habe schon mal mit der Hitergrundfarbe probiert, aber wenn ich es wieder zurück ändere ist die Zelle weiß.

Private Sub CommandButton1_Click()
If ActiveCell.Interior.ColorIndex = 15 Then
         ActiveCell.Interior.ColorIndex = xlNone
     Else
         ActiveCell.Interior.ColorIndex = 15     
End If
End Sub

Könnte mir einer von Euch helfen?

Vielen Dank im vorraus.

Mfg Tommylik

Content-ID: 374762

Url: https://administrator.de/contentid/374762

Ausgedruckt am: 17.11.2024 um 11:11 Uhr

emeriks
emeriks 24.05.2018 um 08:23:19 Uhr
Goto Top
Hi,
warum ist Dein Text so irre lang ohne Inhalt am Ende? Korrigiere das bitte mal.
Ich habe schon mal mit der Hitergrundfarbe probiert, aber wenn ich es wieder zurück ändere ist die Zelle weiß.
Na klar. genau genommem ist sie transparent, denn Du setzt ja explizit "xlNone". Wenn Du die vorherige Farbe wieder haben willst, dann musst Du diese zwischenzeitlich irgendwo zwischenspeichern. z.B. auf einem anderen, ausgeblendeten Formular, wo Du der Zelle mit den gleichen Koordinaten dort die aktuelle Farbe des Zelle im Zielblatt gibst. Oder Du könntest die Farbe im Zell-Kommentar speichern.

Schon mal was von bedingten Formatierungen gehört?

E.
Tommylik
Tommylik 24.05.2018 um 19:34:10 Uhr
Goto Top
Hallo emeriks,

Vielen Dank für deine Antwort.
Also muß ich mir die bedingte Formatierung anschauen. Das mit dem Zwischenspeichern ist ein zu großer Aufwand. Wenn sich ein Wert ändert auf der Hauptseite sagen wir von F/U nach F/G dann muss man das ja auf der Seite wo man Zwischenspeichern möchte auch ändern.

Mein Beispiel mit dem xlnone ist Blödsinn von mir gewesen. Aber kann man den Code nicht so abändern das zwischen 2 Farben hin und her geschaltet wird?

Vielen Dank nochmal für deine Hilfe

Mfg Tommylik
emeriks
emeriks 25.05.2018 aktualisiert um 08:31:25 Uhr
Goto Top
Also muß ich mir die bedingte Formatierung anschauen.
Musst nicht. Es ist nur eine Alternative.

Das mit dem Zwischenspeichern ist ein zu großer Aufwand. Wenn sich ein Wert ändert auf der Hauptseite sagen wir von F/U nach F/G dann muss man das ja auf der Seite wo man Zwischenspeichern möchte auch ändern.
Nein., musst man nicht.

Angenommen Du hast eine zweite, versteckte Tabelle "TabelleX":
Private Sub CommandButton1_Click()
  If ActiveCell.Interior.ColorIndex = 15 Then
          'Farbe der aktuellen Zelle aus der Zwischenspeicherung wiederherstellen  
         ActiveCell.Interior.ColorIndex = ActiveWorkbook.Sheets("TabelleX").Range(ActiveCell.Address).Interior.ColorIndex  
     Else
          'zwischenspeichern der Farbe der aktuellen Zelle  
         ActiveWorkbook.Sheets("TabelleX").Range(ActiveCell.Address).Interior.ColorIndex  = ActiveCell.Interior.ColorIndex  
          'Farbe der aktuellen Zelle ändern  
         ActiveCell.Interior.ColorIndex = 15     
  End If
End Sub