Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1668to1672
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

VBA bed. Formatierung vereinfacht übertragen

VBA bed. Formatierung vereinfacht übertragen
16.01.2019 11:35:34
udo
Hallo Forum,
hätte eine Frage zum Thema bedingte Formatierung aus Zeile XXX in einen neuen
Bereich vereinfacht zu übertragen.
Soll heissen, ich habe einen Zeilenbereich 37:20000 , der mir als Hauptbereich dient ( in diesem ändern sich Werte usw. werden ab u zu mal Zeilen eingefügt, welche gelöscht usw.
Damit die Zuweisung der bed.Formatierung immer schön sauber bleibt, würde ich nach jedem Makro welches mir Zeilen einfügt, löscht oder ... dann eine Art Markierungsreset laufen lassen.
Dies würde folgendermaßen von statten laufen.
Vor dem jew. Makro lösche ich im Hauptbereich zunächst mal alle bed.F.
mit :
[37:50000].FormatConditions.Delete
dann würde entspr. Makro ablaufen und zum Schluß würde ich gerne
irgendwas vereinfachtes ( so es denn so mgl. wäre ) wie ...
[36:20000] = [36:36].FormatConditions
ablaufen lassen wollen ( sprich aus meiner üebrgeordneten Bezugszeile 36 - da die bed. Formatierungen nehmen und diese auf meinen Hauptbereich erneut übernehmen.
Leider bringt .FormatConditions natürlich einen Fehler.
Habt ihr eine Idee, oder wisst zufällig die passende Anweisung die hierzu greift ? Git es da eine Möglichkeit dies üebrhaupt so zu lösen ?
Im Moment helfe ich mir mit folgendem Makro :

Sub Makro1()
Application.ScreenUpdating = False
' Hilfsspalte (Markierungen):
[A37:A20000] = "" ' zuerst alle evtl. vorhandenen M. entfernen
Cells(ActiveCell.Row, 1) = "x" ' aktive Zeile Markieren
[37:50000].FormatConditions.Delete ' Hauptbereich alle bed. Formatierungen löschen
[36:36].Copy ' Bezugsbereich für bed. Formatierungen kopieren und dessen F. übertragen ...
[36:20000].PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False,  _
Transpose:=False
Application.CutCopyMode = False ' kopierfunktion abbrechen
' von unten beginnend aufwärts nach Markierung suchen u da hin springen
Dim lz As Integer
Cells(20000, 1).Select
lz = Cells(Rows.Count, 1).End(xlUp).Row
Cells(lz, 1).Select
[A37:A20000] = "" ' alle vorhandenen M. wieder entfernen
Application.ScreenUpdating = True
End Sub
Wäre euch sehr dankbar wenn es eine Möglichkeit gäbe das alles auf sozusagen eine Zeile zu reduzieren in der Art wie ...
[37:50000].FormatConditions.Delete
[36:20000] = [36:36].FormatConditions
?
LG udo

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA bed. Formatierung vereinfacht übertragen
16.01.2019 14:47:56
Torsten
Hallo,
ich denke, dass das so funktioniert. Du musst allerdings auch den Spaltenbuchstaben mit angeben.
hmmm, wie meinst du das genau ...
16.01.2019 15:09:01
udo
Hallo Torsten,
bislang dachte ich dass wenn ich den Bezug [Zahl:Zahl] angebe wird automatisch die ganze Zeile definiert ... und wenn ich dich jetzt richtig verstehe müsste ich jetzt den Bereich stärker umschreiben ( eben mit Spaltenangabe [ABC-Zahl:ABC-Zahl], sprich für ganze Zeile dann [A36:XFD20000]
?
Folgende Ansätze habe ich bereits probiert ohne Erfolg :
[A36:XFD20000] = [A36:XFD36].FormatConditions
Range("A36:XFD20000") = Range("A36:XFD36").FormatConditions
ich vermute es liegt nicht daran wie ich den Bereich definiere ( oder ? ) , sondern vielmehr die Anweisung nach der Klammer .Form....
Da is irgendwie der Wurm noch drin !? Gibt es überhaupt eine Bezeichnung die hier greifen könnte ?
Leider hat meine Recherche bislang auch noch nichts passendes gefunden, hast du / ihr noch evtl. eine Idee das anders zu bezeichnen ?
Lieben Dank schon mal
Udo
Anzeige
AW: VBA bed. Formatierung vereinfacht übertragen
16.01.2019 15:59:06
Rudi
Hallo,
[37:50000].FormatConditions.Delete
[36:36].Copy
[36:20000].Pastespecial xlPasteFormats
Gruß
Rudi
Vieln Dank Rudi - so würde ich es dann ...
16.01.2019 21:41:45
udo
machen, ich hatte so eine leise Ahnung dass es wohl nicht ohne copy / paste geht.
Is nicht dramatisch, ich danke dir wie immer sehr !!
Eine Frage noch dazu, kann ich hinten an, mit Komma... irgendeine Anweisung setzen die die Zeilenhöhe unterbindet, sonst alles an Format aber übrnimmt.
Muss Zeile 36 sonst kuzrzeitig auf die gewünschte Zeilenhöhe 18 aufwerten und danach wieder auf 1 setzen ...
[37:50000].FormatConditions.Delete ' Hauptbereich alle bed. Formatierungen löschen
[36:36].RowHeight = 18
[36:36].Copy ' Bezugsbereich für bed. Formatierungen kopieren und dessen F. übertragen ...
[36:20000].PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False ' kopierfunktion abbrechen
[36:36].RowHeight = 1
Ich würde diesen Block eben so klein wie mgl. halten wollen, da er in versch. Makros eingearbeitet wird , klar könnte auch Appl.run"" nutzen ...
Aber vielen Dank nochmal für deine Hilfe,auch an Torsten nochmal danke
LG udo
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige