Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Bedingte Formatierung umwandeln in Feste Formatierung!
#1
Hallo liebe Excelgemeinde,

ich habe ein Frage, kann man in Excel per VBA Zeilen kopieren auf ein anderes Blatt und dabei die Bedingte Formatierung in Feste Formatierung umwandeln?

Danke
LG
Alexandra
Antworten Top
#2
Hallo Alexandra,

m.W.n. muss man für jede Zelle die aktuelle bedingte Formatierung mit "cells(i,j).DisplayFormat" auslesen und den Farbcode dann im anderen Blatt setzen.

mfg
Antworten Top
#3
Hi Fennek,

das funktioniert, vielen Dank dafür!

Kennt noch jemand eine elegantere/schnellere Lösung?


Danke
LG
Alexandra
Antworten Top
#4
Hallöchen,

schneller wäre wohl nur noch als Bild einfügen Smile
Was besseres als die Sache mit dem DisplayFormat dürfte es nicht geben Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hi Andre, 

danke für dein Beitrag. Habe es auch so getestet und es funktioniert. Wenn der Bereich überschaubar ist dann geht es ja ohne Probleme. Wenn der Bereich aber riesig wird dann wird es wahrscheinlich unangenehm, aber immernoch angenehmer als das manuelle zu machen. :)

LG 
Alexandra
Antworten Top
#6
Hallo,

Dieser Code scheint ok zu sein:
https://stackoverflow.com/questions/4692...ing-static

Ist er schnell genug?

Viele Grüße,
Bernd P
Antworten Top
#7
Hallo Bernd,

ist der nicht etwas umständlich? Zumal der Code, wenn ich nichts übersehen hab, auch jede Zelle einzeln abhandelt. Ich weiß jetzt nicht, seit wann es das DisplayFormat gibt, aber eventuell ist der Code noch von vor der Zeit.

Eventuell kann man die Sache optimieren, wenn man Ranges gleicher Farbe bildet und die dann einfärbt statt einzelne Zellen zu nehmen?
Ich müsste nach wie vor jede Zellfarbe einzeln auslesen, kann aber das Einfärben deutlich beschleunigen. Man sammelt nur die Farben, filtert dann danach und wandelt die sichtbaren Zellen entsprechend um bzw. merkt sich die Bereiche für das Zielblatt und trägt dort die Farben ein.

Im Prinzip so. Hier werden alle sichtbaren Zellfarben übernommen, egal, ob bedingt oder nicht.

Option Explicit

Sub FarbenFixieren()
'by schauan 2019
'Variablendeklarationen
Dim Zellen As Range, iCnt As Integer
Dim colFarben As Collection, colRanges As Collection
'Collection fuer Farben setzen
Set colFarben = New Collection
'Bei Fehler weiter mit nächstem Kommando
'fuer eindeutige Fuellung der Collection
On Error Resume Next
'Schleife ueber alle Zellen im Bereich ...
For Each Zellen In Range("A1:A10")
 'Farbe hinzufuegen
 colFarben.Add Zellen.DisplayFormat.Interior.Color, Str(Zellen.DisplayFormat.Interior.Color)
'Ende Schleife ueber alle Zellen im Bereich ...
Next
'Fehlerbehandlung zuruecksetzen
On Error GoTo 0
'Collection fuer Bereiche setzen
Set colRanges = New Collection
'Bereich fuer Filterung selectieren
Range("A1:A10").Select
'Filter aktivieren
Selection.AutoFilter
'Schleife ueber Anzahl Farben
For iCnt = 1 To colFarben.Count
   'Filter nach sichtbarer Farbe
   ActiveSheet.Range("$A$1:$A$10").AutoFilter Field:=1, Criteria1:=colFarben(iCnt), Operator:=xlFilterCellColor
   'Bereiche in Collection aufnehmen
   colRanges.Add Selection.SpecialCells(xlVisible).Address
'Ende Schleife ueber Anzahl Farben
Next
'Autofilter aufheben
Selection.AutoFilter
'Schleife ueber Anzahl Farben
For iCnt = 1 To colFarben.Count
   'Zellen faerben (5 Spalten offsetiert)
   ActiveSheet.Range(colRanges(iCnt)).Offset(0, 5).Interior.Color = colFarben(iCnt)
'Ende Schleife ueber Anzahl Farben
Next
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
Hallo André,

Du hast recht. Deine Filterung ist clever und lässt sich ggf. auf andere Formatierungen erweitern.

Falls alle möglichen bedingten Formate behandelt werden sollen, könnte man vielleicht Parameter für Teilformatierungen einführen, um die statische Formatierung der Laufzeit wegen auf den gewünschten Teil zu beschränken.

Viele Grüße,
Bernd P
Antworten Top
#9
(24.04.2019, 13:18)cysu11 schrieb: Kann man in Excel per VBA Zeilen kopieren auf ein anderes Blatt und dabei die Bedingte Formatierung in Feste Formatierung umwandeln?

Warum im kopiiertem Arbeitsblatt auf Bedingte Formatierung verzichten ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#10
Hi snb,

sollte eine Art Archiv sein!

@Alle, irgendwo habe ich gelesen, dass es auch anders geht, finde ich aber nicht mehr! :)

Jetzt habe ich das wieder gefunden: http://www.office-loesung.de/ftopic540432_0_0_asc.php
Bei mir ist die Zwischenablage ausgegraut und  leer wenn ich ESC drücke!
Funktioniert also bei mir nicht, kann das jemand bestätigen, ob es funktioniert?

Danke & LG
Alexandra
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste