Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1316to1320
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hintergrundfarbe zuweisen - mehrere Sheets gleichz

Hintergrundfarbe zuweisen - mehrere Sheets gleichz
13.06.2013 10:39:20
Peter
Guten Tag
Mit nachfolgendem Code fülle ich bestimmte Zeilen mit Hintergrundfarben.
Wenn ich das gleiche manuell mache (ohne VBA), werden die Hintergrundfarben in allen Tabellenblättern übernommen, die gleichzeitig selektiert sind.
Gibt es eine Möglichkeit, dies auch mit VBA zu machen, ohne dass Tabellenblatt für Tabellenblatt abgearbeitet werden muss?
Gruss, Peter
Sub MehrFarbenMarkierung()
Dim i As Integer, iSpA As Integer, iSpE As Integer, iZeA As Integer, iZeE As Integer
iSpA = Range("spLeer").Column: iSpE = Range("spEnde").Column
iZeA = Range("zeStartAll").Row: iZeE = Range("zeEndAll").Row
With Range(Cells(iZeA, iSpA), Cells(iZeE, iSpE))
.Interior.Color = 16777215    '''Keine Füllung
End With
For i = Range("zeStartAll").Row To Range("zeEndAll").Row
Select Case i Mod 6
Case 2
With Range(Cells(i, iSpA), Cells(i, iSpE))
.Interior.Color = 14994616     '''' hell-blaue Füllung
End With
Case 4
With Range(Cells(i, iSpA), Cells(i, iSpE))   ''' hell-gelbe Füllung
.Interior.Color = 10092543
End With
Case 0
With Range(Cells(i, iSpA), Cells(i, iSpE))
.Interior.Color = 11851260    ''' hell-braune Füllung
End With
Case Else
End Select
Next i
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hintergrundfarbe zuweisen - mehrere Sheets gleichz
13.06.2013 11:04:50
Klaus
Hi Peter,
das geht sicherlich auch mit mehreren Sheets gleichzeitig, aber warum so umständlich?
Anbei dein Makro leicht umgeschrieben und drei Beispiele, wie du es für definierte Tabellenblätter callen kannst:
Grüße,
Klaus M.vdT.
Option Explicit
'TABELLENBLATTNAMEN ANPASSEN!
Sub MarkierungOftAufrufen()
'ruft das Makro vier-mal auf, für vier definierte Tabellenblattnamen
Call MehrFarbenMarkierung("Tabelle1")
Call MehrFarbenMarkierung("Tabelle2")
Call MehrFarbenMarkierung("Tabellenblattname")
Call MehrFarbenMarkierung("Name eines Tabellenblattes")
End Sub
Sub MarkierungAufrufenAlleTabellen()
'ruft das Makro für jede Tabelle einmal auf
Dim i As Integer
For i = 1 To Worksheets.Count
Call MehrFarbenMarkierung(Sheets(i).Name)
Next i
End Sub
Sub MarkierungAufrufenAlleTabellenAusserZweien()
'ruft das Makro für jede Tabelle ausser "Tabelle1" und "Datenblatt" auf
Dim i As Integer
For i = 1 To Worksheets.Count
If Sheets(i).Name = "Tabelle1" Or Sheets(i).Name = "Datenblatt" Then
'nix
Else
Call MehrFarbenMarkierung(Sheets(i).Name)
End If
Next i
End Sub
Sub MehrFarbenMarkierung(mywks As String)
'Änderungen: Refernenzierung auf dein dynamisches Tabellenblatt
'beachte den WITH-Rahmen und die Punkte vor .Range und .Cells!
Dim i As Integer, iSpA As Integer, iSpE As Integer, iZeA As Integer, iZeE As Integer
With Sheets(mywks)
iSpA = .Range("spLeer").Column: iSpE = .Range("spEnde").Column
iZeA = .Range("zeStartAll").Row: iZeE = .Range("zeEndAll").Row
With .Range(.Cells(iZeA, iSpA), .Cells(iZeE, iSpE))
.Interior.Color = 16777215    '''Keine Füllung
End With
For i = .Range("zeStartAll").Row To .Range("zeEndAll").Row
Select Case i Mod 6
Case 2
With .Range(.Cells(i, iSpA), .Cells(i, iSpE))
.Interior.Color = 14994616     '''' hell-blaue Füllung
End With
Case 4
With .Range(.Cells(i, iSpA), .Cells(i, iSpE))   ''' hell-gelbe Fü _
llung
.Interior.Color = 10092543
End With
Case 0
With .Range(Cells(i, iSpA), .Cells(i, iSpE))
.Interior.Color = 11851260    ''' hell-braune Füllung
End With
Case Else
End Select
Next i
End With
End Sub

Anzeige
AW: Hintergrundfarbe zuweisen - mehrere Sheets gleichz
13.06.2013 11:21:32
Peter
Hallo Klaus
Vielen Dank!
Trotzdem wäre es mal interessant, wie das mit mehreren Sheets gleichzeitig geht - habe noch nie einen Code gesehen, der alle selektierten Sheets - ohne diese einzeln abzuarbeiten - bearbeitet.
Danke und Gruss, Peter

Code auf X Sheets gleichzeitig
13.06.2013 11:36:51
Klaus
Hallo Peter,
das geht schon - zB so (Makrorekorder)

Sub Macro1()
Sheets(Array("Sheet2", "Sheet3", "Sheet4")).Select
Sheets("Sheet4").Activate
Range("D7:F9").Select
With Selection.Interior
.Color = 65535
.TintAndShade = 0
End With
End Sub

Die "Selection" liegt auf drei Sheets gleichzeitig, und wird gelb gefärbt.
Da bekommt man aber nicht ohne weiteres die "Select" und "Activate" heraus. Ich bin da auch nicht tief genug im Thema, um das besser zu schreiben oder zu beschreiben. Ausserdem vermute ich, dass auch in diesem Beispiel die Blätter Excel-Intern nacheinander abgehandelt werden, kann das allerdings nicht beweisen.
Hast du denn - ausserhalb des gesunden akademischen Interesse - einen triftigen Grund dazu, dass dein/ein Code auf X Blättern gleichzeitig laufen sollte statt hintereinander?
Grüße,
Klaus M.vdT.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige