Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
500to504
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
500to504
500to504
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bedingte Formatierung Code verbessern

Bedingte Formatierung Code verbessern
16.10.2004 16:21:21
Gerhard E.
Hallo,
in der beigefügten Datei kann ich mehr als 3 bedingte Formatierungen verwirklichen. Probleme gibts beim Löschen und Kopieren von markierten Bereichen. Da kommt der Laufzeitfehler 13 -Typen unverträglich-.
Wer könnte diesen Code verbessern? Diese Tabelle wäre dann erst richtig gebrauchsfähig.
https://www.herber.de/bbs/user/12217.xls
P.S. Den Code habe ich aus Forumsbeiträgen "zusammengebaut". Das tiefere Verständnis dafür ist (noch) nicht vorhanden.
Danke für die Hilfe u. Gruß
Gerhard E.

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung Code verbessern
16.10.2004 16:42:19
Hajo_Zi
Hallo Gerhard,
ich habe jetzt die Datei nicht runtergeladen. Schaue mal auf meine Homepage da sind Beispiele, auf der Seite VBA.
Ein Beispiel
http://home.media-n.de/ziplies/gepackt/vba/bedingte_formatierung1.zip
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Home und Excel Version XP 2003 SP1.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro SP2 und Excel Version 2003 SP1.


Anzeige
AW: Bedingte Formatierung Code verbessern
16.10.2004 16:55:23
Gerhard E.
Hallo Hajo,
Danke fürd mithelfen!
Deine HP besuche ich auch regelmäßig und habe dein entspr. Beispiel heruntergeladen.
Meine Version benützt frei wählbare Kürzel "k", "u", "f", ... usw. in nicht begrenzter Anzahl. Diese werden in einem Blatt "Farbindex" eingetragen mit entsprechendem Index.
Für die Begutachtung des Code und evtl. der Datei durch den Profi "Hajo" wäre ich dankbar.
Der benützte Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim var As Variant
If Intersect(Target, Range("S24:AJ144")) Is Nothing Then Exit Sub
'ActiveSheet.Unprotect
var = Application.Match(Target.Value, Worksheets("Farbindex").Columns(1), 0)
If Not IsError(var) Then
Target.Interior.ColorIndex = Worksheets("Farbindex").Cells(var, 2)
End If
If Target = "" Then Target.Interior.ColorIndex = xlNone
'ActiveSheet.Protect
End Sub

Sub FarbenZurücksetzen()
Dim z As Range
If Intersect(Target, Range("S24:AJ144")) Is Nothing Then Exit Sub
For Each z In Selection
With z
If .Interior.ColorIndex <> 15 Then .Interior.ColorIndex = xlNone
.Value = ""
End With
Next z
End Sub
Mit Gruß
Gerhard E.
Anzeige
AW: Bedingte Formatierung Code verbessern
16.10.2004 17:08:45
Hajo_Zi
Hallo Gerhard,
der zweite Code hat nichts mit dem ersten Code zu tun.
Den Fehler kann ich nicht simulieren.

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


AW: Bedingte Formatierung Code verbessern
16.10.2004 17:09:03
Reinhard
Hi Gerhard,
der Fehler kommt durch "Target.Value" wenn mehr als eine Zelle eingefügt wird.
Kannstes ja testen, eine beliebige Zelle markieren, Strg-C, dann einen Bereich mit mehreren Zellen auswählen, Strg-V mit:

Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Value
End Sub

Probier mal diesen Code (ggfs muss man auch noch den Intersect-Aufruf anpassen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim var As Variant
If Intersect(Target, Range("S24:AJ144")) Is Nothing Then Exit Sub
'ActiveSheet.Unprotect
For Each Zelle In Target
var = Application.Match(Zelle.Value, Worksheets("Farbindex").Columns(1), 0)
'If Not IsError(var) Then
Zelle.Interior.ColorIndex = Worksheets("Farbindex").Cells(var, 2)
'End If
If Zelle.Value = "" Then Zelle.Interior.ColorIndex = xlNone
'ActiveSheet.Protect
Next Zelle
End Sub
Gruß
Reinhard
Anzeige
AW: Bedingte Formatierung Code verbessern
16.10.2004 17:18:55
Gerhard E.
Hallo Reinhard,
Kopieren ist damit ok, beim Löschen vom markierten Bereich meldet sich immer noch der Fehler 13
wäre auch das zu beheben? (möglichst "zum Abschreiben" weil mir echtes Verständnis für VBA-Begriffe feht);-)
Gruß
Gerhard E.
AW: Bedingte Formatierung Code verbessern
16.10.2004 17:26:57
Reinhard
Hi Gerhard,
kann den Fehler nicht nachstellen,
gib mal ein konkretes Beispiel wann der Fehler kommt, also du markierst welchen Bereich und wie löschst du? (entf, rechte Maustaste...?)
Gruß
Reinhard
AW: Bedingte Formatierung Code verbessern
16.10.2004 17:55:02
Gerhard E.
Hallo Reinhard, hast noch Geduld?
dies ist meine Original-Datei:
https://www.herber.de/bbs/user/12217.xls
Die 2. Datei hat den von dir veränderten Code. Kopieren und auch Löschen sind dabei möglich. Beim Eintragen der Zellinhalte "u", "k" .. usw. wird die Zellfarbe aber nicht mehr geändert.

Die Datei https://www.herber.de/bbs/user/12224.xls wurde aus Datenschutzgründen gelöscht

Gruß
Gerhard
Anzeige
AW: Bedingte Formatierung Code verbessern
16.10.2004 18:06:21
reinhard
Hi Gerhard,
bitte bezieh dich auf konkrete Zellen wo das auftritt, ich kann die Werte ändern und die Farben ändern sich: U54, U55 AB53, AH53...
Gruß
Reinhard
AW: Bedingte Formatierung Code verbessern
16.10.2004 18:26:54
G
Hallo Reinhard, sorry..
jetzt habe ich kreuz u, quer getestet:
ich trage in Zelle AA24 "v" ein. Farbwechsel erfolgt. Ebenso in allen anderen Zellen.
Ich markiere z.B. AA24 und entferne den Wert durch ENTF-Taste. Fehlermeldung 13.
Ich markiere einen Bereich (AC32:AH36)und drücke ENTF. : Fehler 13
Bei der Fehlermeldung drücke ich BEENDEN dann werden die Zellwerte gelöscht aber die Farben bleiben. Alle leeren Zellen müssten weiss werden!
Gerhard E.
Anzeige
AW: Bedingte Formatierung Code verbessern
16.10.2004 18:40:34
Reinhard
Hi Gerhard,
probier mal das:

Private Sub CommandButton1_Click()
Call FarbenZurücksetzen
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim var
If Intersect(Target, Range("S24:AJ144")) Is Nothing Then Exit Sub
For Each Zelle In Target
If Zelle.Value = "" Then
Zelle.Interior.ColorIndex = xlNone
Else
var = Application.Match(Zelle.Value, Worksheets("Farbindex").Columns(1), 0)
Zelle.Interior.ColorIndex = Worksheets("Farbindex").Cells(var, 2)
End If
Next Zelle
End Sub
Sub FarbenZurücksetzen()
Dim z As Range
If Intersect(Selection, Range("S24:AJ144")) Is Nothing Then Exit Sub
For Each z In Selection
With z
If .Interior.ColorIndex <> 15 Then .Interior.ColorIndex = xlNone
.Value = ""
End With
Next z
End Sub
Gruß
Reinhard
Anzeige
AW: SUPER! 20 x Bedingte Formatierung möglich!
16.10.2004 18:54:19
Gerhard E.
Hallo Reinhard, SUPER!!
alles was ich jetzt getestet habe ist fehlerlos!! Ich denke dass deine Lösung auch als geeignete Antwort/Beispiel für die häufigen Anfragen zu mehr als 3 bedingten Formatierungen nützlich ist.
Danke vielmals! Und wie kann man übers www. Kuchen versenden?
Gruß
Gerhard E.
Kleine Anfaengerfrage dazu
16.10.2004 17:28:51
Johannes
Wie hast du dieses Dropdownfeld (ComboBox) neben den Zellen realisiert?
Bin leider ein zu grosser Anfaenger, um das aus dem VBA Source entnehmen zu koennen.
Vielen Dank fuer jede Antwort.
Gruesse,
Johannes
@Johannes Kleine Anfaengerfrage dazu
16.10.2004 18:02:47
Gerhard E.
Hallo Johannes,
so gehts:
Dropdown ohne VBA:
in Excel: Datei -Gültigkeit -Einstellungen -Zulassen -Liste
vorbereitete Liste eintragen (z.B. a1:a5)
Gruß
Gerhard E.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige