Makro: Farben finden und ändern

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Makro: Farben finden und ändern
von: Debian
Geschrieben am: 30.07.2015 15:24:07

Auch Office 2011 für Mac
Hallo Zusammen :-)
In folgender Mappe möchte ich gerne in der gesamte Mappe eine bestimmte Farbe ändern, nämlich die der Rahmen und Zwischenzeilen (dieses Graugrün).
https://www.herber.de/bbs/user/98784.xlsm
Ich stelle mir das so vor, das die aktuelle und auch die neu zu ändernde Farbe ganz herkömmlich in zwei bestimmten Zellen im Blatt 'Start' angegeben wird (also einfach entsprechend formatiert wird) und das Makro dann über eine Schaltfläche gestartet wird und sämtliche vordefinierten Zellbereiche quer durch die Mappe findet und in die neue Farbe ändert.
1. Geht das überhaupt so, wie ich das hier gerade beschrieben habe?
2. Wie müsste das als Makro ausschauen?
Für eure Ideen vielen Dank im Voraus:-)
Grüsse
Debian

Bild

Betrifft: AW: Makro: Farben finden und ändern
von: Rudi Maintaire
Geschrieben am: 30.07.2015 16:04:01
Hallo,

Sub Farben()
  Dim lCol1 As Long, lCol2 As Long
  Dim wks As Worksheet, r As Range
  lCol1 = Sheets("Start").Range("L1").Interior.Color
  lCol2 = Sheets("Start").Range("L2").Interior.Color
  Application.ScreenUpdating = False
  For Each wks In Worksheets
    For Each r In wks.UsedRange
      If r.Interior.Color = lCol1 Then r.Interior.Color = lCol2
    Next
  Next
End Sub

Gruß
Rudi

Bild

Betrifft: AW: Makro: Farben finden und ändern/Text in Header
von: Debian
Geschrieben am: 30.07.2015 17:33:18
Ruedi, Hansueli, Ihr seid beide HAMMER!!!! :-) Euer beider Lösungen sind beide super und funktionieren sauber, sogar auf dem Mac Office, wo es ja doch ab und an mal hakt. Ich danke euch vielmals :-)
In der Mustermappe habt ihr im Blatt Start vermutlich auch den Button "Adresse in Header schreiben" bemerkt und die darüberstehende Adresse in den Zellen M1 bis M3 gesehen. Darf ich euch bitten, euch das mal anzuschauen? Meine Idee war, das man in die drei Zellen im Blatt Start die Adresse des Betriebes reinschreibt und mit Knopfdruck diese dann in jedem Blatt der Mappe in den rechten Header geschrieben wird. Leider hakt das bezüglich der Formatierung. Soll heissen, ich müsste im Code die Schriftfarbe, Schriftart etc. am besten aus den Zellen M1 bis M3 mit übernehmen und dann genau so in den Header bringen.
Euch fällt nicht etwas dazu ein?
Lieben Gruss und merci nochmals :-)
Debian

Bild

Betrifft: Weder Button noch Felder ....
von: EtoPHG
Geschrieben am: 30.07.2015 22:34:07
Hallo Debian,
Tut mir leid in deiner Mappe sehe ich weder den Button, noch was du mit den Zellen M1...M3 vorhast.
Gruess Hansueli

Bild

Betrifft: AW: Makro: Farben finden und ändern
von: EtoPHG
Geschrieben am: 30.07.2015 16:21:33
Hallo Debian,
Nichts ist unmöglch. Dieses Makro in ein Modul und einer Schaltfläche zuordnen:

Sub FarbeWieStartA1()
    Static vOldColor As Variant
    Dim ws As Worksheet
    Dim rC As Range
    If ActiveCell.Parent.Name = "Start" And _
       ActiveCell.Address(0, 0) = "A1" Then
       If IsEmpty(vOldColor) Then
           vOldColor = ActiveCell.Interior.Color
           MsgBox "Ändern Sie nun die Farbe in Start!A1" & vbCrLf & _
                  "und starten Sie das Makro erneut!", vbInformation, "Neue Farbe setzen!"
        Else
            If ActiveCell.Interior.Color = vOldColor Then
                MsgBox "Die Farbe wurde nicht geändert!", vbExclamation, "Keine Anpassungen!"
            Else
                Application.Cursor = xlWait
                For Each ws In ThisWorkbook.Worksheets
                    Application.StatusBar = "Farben (" & ws.Name & _
                                ") werden geändert, bitte warten..."
                    For Each rC In ws.UsedRange
                        If rC.Interior.Color = vOldColor Then _
                            rC.Interior.Color = ActiveCell.Interior.Color
                    Next rC
                Next ws
                Application.Cursor = xlDefault
                Application.StatusBar = False
                MsgBox "Die Farben wurden geändert!", vbInformation, "Abschluss"
            End If
            vOldColor = Empty
        End If
    Else
        MsgBox "Das Makro kann nur in Zelle Start!A1 gestartet werden!", vbCritical, "Abbruch"
    End If
End Sub
Gruess Hansueli

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makro: Farben finden und ändern"