Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1268to1272
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

nur bedingte Formatierung kopieren

nur bedingte Formatierung kopieren
Rosa
Hallo,
ich suche jetzt schon eine weile nach einer Lösung für dieses Problem:
Wir haben viele Tabellen, die manuell grau-weiß-grau-weiß eingefärbt sind.
Diese wollen wir jetzt mit einer bedingten Formatierung hinterlegen, da immer wieder Zeilen hinzukommen.
Ich möchte vermeiden, in jeder Tabelle einzeln die bedingte Formatierung eingeben zu müssen.
Jedoch wenn wir die bedingte Formatierung kopieren, werden auch alle anderen Formateinstellungen überschrieben. Das soll aber nicht. Fett/Normal, Schriftgröße soll in den Tabellen erhalten bleiben und ist jeweils unterschiedlich.
Gibt es eine Möglichkeit, nur die bedingte Formatierung zu kopieren? Ich weiß, mit STRG+ALT+C kann ich das Dialogfenster öffnen aber wenn ich dort alle zusammenführenden bedingten formate wähle, wird dennoch Schriftgröße, Fett etc mitkopiert.
Vielen Dank schon jetzt
AW: nur bedingte Formatierung kopieren
19.07.2012 23:02:12
Matze,Matthias
Hallo Rosa,
mach erst eine Kopie deiner Mappe falls dir die Lösung nicht zusagt.
Jede 2te Zeile im einfärben
1. den Bereich markieren
2. bedingte Formatierung öffnen
3. Formel eingeben =REST(ZEILE();2)=1
4. Farbe auswählen
fettich.
Gruß Matze
AW: nur bedingte Formatierung kopieren
19.07.2012 23:05:24
Rosa
Hallo Matze,
die Formel ist mir bekannt. Nur wollte ich sie nicht in jeder einzelnen Tabelle eintippel, da es sehr viele Tabellen sind, sondern ich wollte eine vorlage machen, aus der man die Formatierung rauskopiert.
AW: nur bedingte Formatierung kopieren
19.07.2012 23:13:06
Matze,Matthias
Hallo Rosa,
Da man ja nicht alle Tabellen gleichzeitig mit bedingter Formatierung bearbeiten kann,
hilft da nur eine VBA Lösung.
Da wiederum müßte man wissen- sehen die Tabellenbereiche alle gleich aus.
Oder kann man sagen:
Ab Zeile bis Zeile u. von Spalte zu Spalte , als wäre es eine DinA4 Seite mit abwechselden Farbreihen.
Nur das Format kann auf der selben Seite mit dem Pinselwerkzeug übertragen werden.
Gruß Matze
Anzeige
AW: nur bedingte Formatierung kopieren
19.07.2012 23:17:44
Rosa
Hallo Matze,
genau das ist ja mein Problem: ich möchte NICHT die gesamte Formatierung übertragen, sondern nur die bedingte Formatierung
AW: nur bedingte Formatierung kopieren
19.07.2012 23:21:06
Matze,Matthias
Hallo Rosa,
du hast meine Fragen nicht beantwortet:
-sehen die Tabellen alle gleich aus ?
-könnte man davon ausgehen einen festen Bereich für alle Tabellen zu nehmen?
-ich bin dabei dir eine Musterdatei zu machen- aber ich kenne den Aufbau deiner Tabellen nicht
Matze
AW: nur bedingte Formatierung kopieren
19.07.2012 23:23:49
Rosa
Hallo Matze,
die Tabellen sind alle unterschiedlich.
Ich hatte überlegt, ob man sich eine Zellenformatvorlage erstellen könnte, aber da finde ich nur die üblichen Formatierungsmöglichkeiten.
Es muss aber eine bedingte Formatierung sein, da oft Zeilen eingefügt werden und grau-weiß-grau-weiß erhalten bleiben soll
Anzeige
Du musst doch nicht wissen wie die Tabellen ...
19.07.2012 23:30:36
Luc:-?
genau aufgebaut sind, Matze,
sondern höchstens die Koordinaten des TabBereichs! Aber auch das kann man nachträglich über eine PgmKonstante variabel änderbar gestalten. Alles andere läuft dann nach dem Schema: Wenn BedFmt in QuellTab vorhanden, dann zellweise (bzw da xl14 → geltungsbereichweise) auslesen und ebenso in ZielTab in analogen Bereich eintragen. Fertig!
Gruß Luc :-?
@Luc, dann uebernimm,...
19.07.2012 23:59:54
Matze,Matthias
du bitte das Ruder, ist für mich wird es zu kompliziert.
Auf deine Lösung bin ich neugierig, denn die werde ich mir dann sichern.
Sowas kann man ja schließlich immer mal gebrauchen.
Gruß Matze
Anzeige
AW: nur bedingte Formatierung kopieren
20.07.2012 10:41:56
JoWe
Hallo ihr 3,
könnte die Bedingte Formatierung in den einzelnen Tabellen über das aktivieren-Ereignis nicht durch ein selbst erstelltes AddIn jeweils neu gesetzt werden? Z.B. so:
Sub setze_Bedingte_Formatierung()
Dim dl As Long
For dl = 1 To ThisWorkbook.Sheets.Count     'hier könnten Bedingungen gesetzt weden
With Sheets(dl).UsedRange
On Error Resume Next
.FormatConditions.Delete
.FormatConditions.Add _
Type:=xlExpression, Formula1:="=REST(ZEILE();2)=0"
.FormatConditions(.FormatConditions. _
Count).SetFirstPriority
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.249946592608417
End With
End With
Next
End Sub

Gruß
Jochen
Anzeige
@JoWe,...
20.07.2012 11:25:19
Matze,Matthias
Hi Jowe,
genau das hatte ich gestern schon im Hinterkopf,war mir aber mit dem UsedRange noch im unklaren
darüber ob Sie sowas braucht.
Noch eine Andere Frage: Die Formel =Rest(Zeile();2)=0 fängt ja immer in der "ersten" Zeile an.
Nun habe ich den UsedRange aber Z.B.: B3:I27 somit würde er mir mit einer "nicht gefärbten Zeile"
beginnen. Wie mache ich das er den Startpunkt des UsedRange als Zeile1 erkennt?
Das ganze muss ja wieder in eine Schleife, da er ja jedes Tabellenblatt nach den UsedRange Startpunkt abfragen muss.
Lösungsansatz in etwas so: ab der Startzeile
Wenn Startpunkt ungerade Zeile dann =Rest(Zeile();2)=1 , wenn gerade dann =Rest(Zeile();2)=0
Ich bekomme das mit dem Startpunkt nicht hin.
Gruß Matze
Anzeige
Codeverbesserung gesucht!
20.07.2012 14:01:50
Matze,Matthias
Hallo @ All,
Nur erstes Sheet wird hier formatiert, wo ist mein Gedankenfehler?
Auf jedem Sheet soll er die erste benutzte Zeile finden und dann den entsprechenden
Code starten um den UsedRange zu formatieren.
Bitte schaut euch den Code mal an ,anbei : https://www.herber.de/bbs/user/81102.xlsm
Dankender Matze
AW: Codeverbesserung gesucht!
20.07.2012 15:12:15
JoWe
Hallo,
vllt so?
Sub setzeBdFg_Gerade()
Dim dl As Long
Dim op As String
For dl = 1 To Sheets.Count     'hier könnten Bedingungen gesetzt weden
Select Case Sheets(dl).Range(Left(Sheets(dl).UsedRange. _
Address, InStr(1, Sheets(dl).UsedRange.Address, ":") - 1)).Row Mod 2
Case Is = 1
op = "=REST(ZEILE();2)=1"
Case Is = 0
op = "=REST(ZEILE();2)=0"
End Select
With Sheets(dl).UsedRange
On Error Resume Next
.FormatConditions.Delete
.FormatConditions.Add _
Type:=xlExpression, Formula1:=op
.FormatConditions(.FormatConditions. _
Count).SetFirstPriority
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.249946592608417
End With
End With
Next
End Sub

Gruß
Jochen
Anzeige
@JoWe; Besten Dank....
20.07.2012 15:41:05
Matze,Matthias
genauso sollte es sein.
allerdings muss ich mir das:
Select Case Sheets(dl).Range(Left(Sheets(dl).UsedRange. _
Address, InStr(1, Sheets(dl).UsedRange.Address, ":") - 1)).Row Mod 2
nochmal genauer ansehen, verstehe das noch nicht genau, daher ein paar Fragen dazu
a) du holst mit Left und InStr die Adresse der ersten "leeren" Zelle?
b) der ":" dient der Trennung des Adressbezuges?
c) Warum -1?
d) InStr(1, ist da Zeile1 gemeint?
AW: @JoWe; Besten Dank....
20.07.2012 16:30:28
JoWe
Hi,
zu a) genau
zu b) korrekt
zu c) der Doppelpunkt soll ja im Adressbezug nicht mehr erscheinen
zu d) nein, die 1 steht die Suche ab dem 1 Zeichen des zu durchsuchenden Strings
mit der Funktion Sheets(dl).Range(Left(Sheets(dl).UsedRange.Address, InStr(1, Sheets(dl).UsedRange.Address, ":") - 1)).Row Mod 2 erhalte ich ein 0 für eine gerade Zeile / eine 1 für eine ungerade Zeile der linken obersten Zelle des UsedRange.
Reicht Dir das?
Gruß
Jochen
Anzeige
AW: noch was...
20.07.2012 16:38:08
JoWe
kürzer:
habe gerade festgestellt dass die instr-Geschichte überflüssig ist, mit .UsedRange.row erhalte ich die Zeile der linken oberen Zelle des UsedRange viel einfacher:
Select Case Sheets(dl).UsedRange.Row Mod 2
Gruß
Jochen
Danke Jochen ,.. owT
20.07.2012 16:49:09
Matze,Matthias

77 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige