Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
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] Bedingte Formatierung mit mehreren Bereichen

[VBA] Bedingte Formatierung mit mehreren Bereichen
01.03.2016 19:21:56
Nils
Hallo zusammen!
Ich habe eine recht umfangreiche bedingte Formatierung in VBA realisiert. Sie funktioniert auf jeden Fall, nur frage ich mich, ob es nicht viel viel leichter geht?
Hier meine Datei:
https://www.herber.de/bbs/user/104015.xlsm

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: [VBA] Bedingte Formatierung mit mehreren Bereichen
01.03.2016 21:07:56
Piet
Hallo Nils
meine Programmierkenntnisse stammen noch aus der alten Excel 97 Zeit!
Darüber können die Profi Programmierer im Forum nur die Nase rümpfen.
Um Target habe ich bisher immer einen grossen Bogen gemacht.
Ein teil meines bescheidenen Könnens liegt darin mir Aufgaben genau anzusehen,
und wenn sie mich ernsthaft interessieren, sie direkt in der Praxis auszutesten.
Als ich das "Supermakro" sah, bin ich echt laufen gegangen!
Target, Colzahl Intersect, das ist absolut nicht meine Welt!!
Mir fiel aber beim nachdenken und überlegen um zu verstehen was da im Programm ablaeuft auf,
das hier offenbar über Target schlicht und simpel -eine einfache Eingabe- in eine Zelle erfolgt.
Sorry, ich bin nicht klügste Programmier, aber verarschen lasse ich mich von Programmen nicht!
Erkenne ich das es fiel simpler und einfacher geht, suche ich nach einer -Simpel Lösung-
Das ist ja m.E. hier gefordert: geht das einfacher! Schau dir meine Makro Lösung an.
Ich ermittle über Sp die Columne, und den Farbcode in Zeile 1
Dann bekommt die aktive Zelle den gleichen Farcode wie oben.
Das ist alles ....
Wird kein "x" eingegeben, oder mehrere Zellen angesprochen,
laueft das alte Original Programm weiter, genau so wie vorher!
Du musst ins Original nur meine Zeilen "Simpel Lösung" kopieren.
mfg Piet
Private Sub Worksheet_Change(ByVal Target As Range)
'Piets Simpel Makro zur Problemlösung
If Target.Rows.Count = 1 And Target.Columns.Count = 1 Then
If Target.Value = "x" Then
Sp = Target.Column
FCode = Cells(1, Sp).Interior.ColorIndex
Target.Interior.ColorIndex = FCode
Exit Sub
End If
End If
'ab hier funktioniert das -unveraenderte Originalmakro- so wie ich es vorfand

Anzeige
AW: [VBA] Bedingte Formatierung mit mehreren Bereichen
01.03.2016 21:30:16
Nils
Hallo Piet,
danke für Deine Hilfe, aber ich suche mehr eine Möglichkeit da ganze stark einzukochen. Das ist zu viel Code, geht doch sicherlich mit schleifen, oder?

AW: [VBA] Bedingte Formatierung mit mehreren Bereichen
01.03.2016 22:44:07
Piet
Hallo Nis,
ich glaube du hast meine Lösung nicht richtig verstanden. Zum besseren Verstaendnis.
Wenn meine Lösung klappt, kannst du alles andere danach löschen! Im Klartext:
Alles hinter meinem Code, wo ich kommentiert habe, ab hier steht der Original Code
ist überflüssig.
Ich habe ihn nur gelassen für den Fall, das ich Funktionen übersehen haben könnte.
Ansonsten reichen die 10 Zeilen völlig aus.
Andere Frage:
was ist bei einer Fehl Eingabe, wenn das "x" wieder zurückgesetzt werden soll.
Ich habe gesehen das die Markierung auch im Original Programm bleibt. Ist das richtig?
Sollte die Zelle dann nicht auf grau zurückgesetzt werden? War aber nicht gefordert.
mfg Piet

Anzeige
AW: [VBA] Bedingte Formatierung mit mehreren Bereichen
01.03.2016 23:05:21
Daniel
Hi
so gehts ganz ohne VBA:
markiere den kompletten Zellbereich (alle Zellen, Zelle A1 ist aktiv) und richte für ihn für jede der 7 Farben eine Bedingte Formatierung mit einer Formel als Regel nach diesem Schema ein:
cyan (A): =Und(A$1="A";oder(Zeile()=1;A1="x"))
rot (B): =Und(A$1="B";oder(Zeile()=1;A1="x")
usw für die restlichen Farben.
die Zelle wird dann immer in der entsprechenden Farbe gefärbt, wenn die Zelle nicht leer ist und in Zeile1 derselben Spalte der entsprechende Buchstabe steht.
somit brauchst du für die zwischenbereiche keine gesonderte Formatierung, sondern das Format kann einheitlich für alle Zellen gelten.
als Makro würde ich das so schreiben:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Dim Zelle1 As Range
For Each Zelle In Target
Set Zelle1 = Zelle.Offset(1 - Zelle.Row, 0)
If Zelle1.Value Like "[A-G]" Then
If Zelle.Value = "x" Then
Zelle.Interior.Color = Zelle1.Interior.Color
Else
Zelle.Interior.Color = 15921906
End If
End If
Next
End Sub

hierbei wird die Farbe aus der jeweiligen Zelle in Zeile 1 genommen.
Gruß Daniel

Anzeige
Das ist KEINE BedingtFormatierung, ...
02.03.2016 03:38:25
Luc:-?
…Nils,
sondern eine ereignisgesteuerte DirektFormatierung in Abhängigkeit von im Pgm formulierten Bedingungen. Bedingte Formatierung ist ein klar definierter Xl-Terminus, der nicht für anderes missbraucht wdn sollte!
Würdest du eine echte BedingtFormatierung einrichten, hättest du auch das von Piet angesprochene FarbZurücksetzen-Problem nicht! Eine derartige Formatierung kann man natürlich auch per VBA anlegen (allerdings schlagen Piet und Daniel auch nur eine Direkt­Formatierung per VBA vor). Wie man das machen kann, verrät dir idR der MakroRecorder! Die EreignisProzedur würde man auch nur für evtl Erweiterungen des Geltungsbereichs der BedFormatierung benötigen; ansonsten kann sie einmalig angelegt wdn.
Feedback erwünscht! Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Wie macht man BedingtFormatierung ?
02.03.2016 10:01:28
Piet
Hallo Luc,
ich freue mich das du bei meinem bescheidenen Wissen auf das FARB Rücksetz Problem eingegangen bist.
Ich bin bei einer anderen Beispiel Datei auf das Thema Bedingte Formatierung gestossen,
konnte keine Formel, kein Makro erkennen, und frage mich wie Zellen faerben funktioniert?
Ich hatte selbst noch nie damit zu tun, würde aber gerne wissen wie das geht?
Man kann ja bei jedem Thread noch etwas neues dazulernen. Danke im voraus ...
mfg Piet

Klick auf den entsprd Xl-Kopf-Button bzw ...
02.03.2016 17:36:38
Luc:-?
…bemühe die xlHilfe, Piet;
siehe auch Daniels Beschreibung! Beachte aber, dass sich das mit Xl12-14/2007-2010 stark verändert hat!
Luc :-?

Anzeige
AW: Das ist KEINE BedingtFormatierung, ...
02.03.2016 10:19:35
Daniel
Naja Luc,
wenn die Formatierung aufgrund von bestimmten Bediungungen erfolgt, dann ist das schon eine bedingte Formatierung.
man kann diese bedingte Formatierung in Excel jetzt in der Regel über zwei verschiedene Wege realisieren:
a) über die Excel-Formatierungsfunktion "bedingte Formatierung"
b) direktFormatierung per VBA gesteuert durch autoamtisch ablaufende Eventmakros.
bzw falls es dir nicht aufgefallen sein sollte, ich habe in meinem Beitrag für beide Möglichkeiten eine Lösung aufgezeigt, nicht nur für die Direktformatierung per VBA, sondern auch für die Excelfunktion "Bedingte Formatierung"
Gruß Daniel

Anzeige
Aber nicht per VBA, sondern manuell, ...
02.03.2016 14:19:08
Luc:-?
…Daniel,
also sollte sich Piet den Teil mal ansehen! Mir ging es aber um BedingtFormatierung per VBA, wie unschwer aus meinem Text zu erkennen sein dürfte…
Deine Behauptung, dass das auch eine bedingte Formatierung wäre, ist kontraproduktiv, denn sie vermischt einen exakt definierten FachTerminus mit einem Allerweltsbegriff! Wenn man nicht aneinander vorbeireden will, ist eine gewisse Präzision auf jedem Fachgebiet erforderlich. Dafür wdn diese Termini ja geschaffen. Die echte BedingtFormatierung ist ein kompletter PgmAblauf, der in beide Richtungen fktioniert, also dynamisch. Was hier mit VBA gemacht wird ist aber statisch! Hinzu kommt, dass sich die BedingtFormatierung auf (ein) andere(s) Objekt(e) bezieht als die DirektFormatierung.
Ich hatte ja eine exakte Definition dessen, was hier geschieht angeboten. Das musst du nun ja nicht mit deinem Beharren auf dem Allerweltsbegriff verwässern wollen. Passt gar nicht zu deinen sonstigen ausführlich(st)en Erläuterungen… :-]
Gruß, Luc :-?

Anzeige
AW: natürlich manuell, ...
02.03.2016 15:18:18
Daniel
denn warum sollte man die Bedingte Formatierung per VBA einrichten?
da man das in der Regel ja nur einmalig machen muss, ist es doch aufwendiger, hierfür einen Code zu entwickeln.
Gruß Daniel

Kommt immer darauf an, VBA kann's ja. owT
02.03.2016 15:55:21
Luc:-?
:-?

AW: Kommt immer darauf an, VBA kann's ja. owT
02.03.2016 16:31:03
Daniel
ist Ok mein Oberleher Luc.
das ist naürlich ein überzeugendes Argument.

Tja, kommste nich selba uff 'n' E-Fall?! :->
03.03.2016 02:09:01
Luc:-?
Und falls du in Gestalt deines 2. oder 3. Ichs wieder Streit suchen solltest — man kann auch diese Ichs löschen… :-]
Luc :-?

AW: Tja, kommste nich selba uff 'n' E-Fall?! :->
03.03.2016 12:44:44
Daniel
Luc, dann zeig doch einfach mal die Lösung, die du dir vorstellts
das würde dem Fragesteller am meisten helfen.
Gruß Daniel

Anzeige
Warum? Der hat doch seine und nicht ...
06.03.2016 03:55:10
Luc:-?
…nochmal nachgefragt!
Luc :-?

AW: Warum? Der hat doch seine und nicht ...
07.03.2016 09:39:38
Daniel
naja, ausser dasa man die Bedingte Formatierung mit dem Recorder aufzeichnen kann (was aber eine Selbstverständlichkeit ist), hast du auch nichts hilfreiches zum Thema beigetragen.

Deine Meinung ist geschenkt! :-> owT
07.03.2016 14:16:57
Luc:-?
:-?

AW: Deine Meinung sowieso.
07.03.2016 14:24:32
Daniel

Ha, da hat d.'Sockenpuppe' mir's aber gegeben! orT
07.03.2016 14:39:55
Luc:-?
Da stimmen nur deine Fans zu! Wieviele hast du…? :-]]
Luc :-?

AW: Ha, da hat d.'Sockenpuppe' mir's aber gegeben! orT
07.03.2016 15:04:49
Daniel
Weiss ich nicht, interessiert mich auch nicht.
ist für dich wichtig, wieviele Fans du hier hast?
Gruß Daniel

AW: Oho, Colonia Duett, aber wer ist das Ei?
07.03.2016 18:53:59
Piet
Hallo ihr beiden
ihr erinnert mich beide an das Kölner Colonia Duett,
Hans Süper und Zimmermään, bekannt als "dat Ei..!"
Die haben sich auch gerne auf der Bühne gezankt.
Wenn ihr es in den Kölner Gürzenich verlegt ist Ruhe im Forum
und ihr könnt beide eure Fans endlich einmal persönlich sehen.
Ich mach jetzt mal Pause im Forum, aber den Spruch konnte ich mir nicht verkneifen
Warte auf Johannes Koch "Datensatz bereinigen", aber der meldet sich nicht mehr...
mfg Piet

Anzeige
AW: Oho, Colonia Duett, aber wer ist das Ei?
07.03.2016 18:54:00
Piet
Hallo ihr beiden
ihr erinnert mich beide an das Kölner Colonia Duett,
Hans Süper und Zimmermään, bekannt als "dat Ei..!"
Die haben sich auch gerne auf der Bühne gezankt.
Wenn ihr es in den Kölner Gürzenich verlegt ist Ruhe im Forum
und ihr könnt beide eure Fans endlich einmal persönlich sehen.
Ich mach jetzt mal Pause im Forum, aber den Spruch konnte ich mir nicht verkneifen
Warte auf Johannes Koch "Datensatz bereinigen", aber der meldet sich nicht mehr...
mfg Piet

Tja, mag sein, Piet, nur diesem D. scheint ...
08.03.2016 01:41:42
Luc:-?
…das wichtig zu sein, wobei nicht mal seine Identität 100%ig sicher ist, weshalb ich diesen INet-Foren-Begriff, der eigentlich unerwünschte MehrfachIdentitäten meint, etwas großzügiger ausgelegt habe. Die 3fache Ironie bei der Fan-Frage, ich hätte auch Followers schreiben können, wollte oder konnte er nicht bemerken… ;-]
Gruß, Luc :-?

367 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige