Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
852to856
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
852to856
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VB: If Abfrage + Automatische Hintergrundfarbe

VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 08:09:31
Thomas
Hallo,
in Spalte C1 steht zB: "500 - 1000" und in Spalte F1 steht: "1090".
Wie bekomme ich das hin, das er überprüft ob der Wert in F1 innerhalb des Wertes von C1 liegt oder nicht? Und wenn er ausserhalb liegt, soll die Spalte F1 automatisch rot hinterlegt werden.
Jemand eine Idee?
lg thomas

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 08:21:46
Hans
Hallo Thomas,
die Formel für die bedingte Formatierung:
=WENN(UND(F1>=WERT(LINKS(C1;FINDEN(" ";C1)-1));F1<=WERT(RECHTS(C1;LÄNGE(C1)-FINDEN(" ";C1;5))));WAHR;FALSCH)
Da gibt es noch ein paar Eventualitäten, aber das ist bei einem nicht-Excel-gerechten Vorgehen nicht änderbar. Wesentlich einfacher wäre es, wenn der String in Werte gesplittet wäre.
Gruss hans
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 08:27:00
Thomas
Hm, kann man den Wert nicht irgendwie mittels VB Script splitten?
Da ich das in ein vorhandenes VB Script einpflegen möchte, bringt mir eine Excel Formel leider nichts. Trotzdem danke!
lg thomas
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 08:37:00
Hans
Hallo Thomas,
ein Hinweis, dass eine VBA-Lösung gesucht wird, wäre hilfreich gewesen.
Wie folgt (in XL97 nicht lauffähig):

Sub GetColor()
Dim iLow As Integer, iHigh As Integer
Dim sTxt As String
sTxt = Range("C1").Value
iLow = CInt(Left(sTxt, InStr(sTxt, " ") - 1))
iHigh = CInt(Right(sTxt, Len(sTxt) - InStrRev(sTxt, " ")))
With Range("F1")
If .Value >= iLow And .Value 

Gruss hans
Anzeige
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:06:00
Thomas
Hi.
vielen dank schonmal!
Ich erhalte allerdings bei der Zeile "iLow = CInt(Left(sTxt, InStr(sTxt, " ") - 1))" einen Fehler 6 "Überlauf".
lg Thomas
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:08:00
Hans
Hallo Thomas,
wenn die Werte über den Integer-Bereich hinausgehen, sind die Variablen als Long zu dimensionieren.
Gruss hans
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:22:00
Thomas
Hey Hans,
die Variablen umfassen die Werte von 0 bis maximal 39000. Habe die Variablen aber testeshalber mal auf Long dimensioniert, bekomme aber nach wie vor noch den Fehler.
lg Thomas
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:38:00
Hans
... dann wird der exakte String benötigt, bei dem der Fehler auftritt.
Gruss hans
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:41:01
Thomas
Du meinst den Inhalt der Variable sTxt?
Der ist bei meinem Beispiel: "33000 - 39000".
lg thomas
Anzeige
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:44:07
Hans
Hallo Thomas,
Integer geht bis 32.767. Wenn Du alle Integer-Variablen als Long deklarierst, sollte es funktionieren.
Gruss hans
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:48:00
Thomas
Mh, bis auf die 2 hab ich eigtl keine als Integer deklariert. Ich hab hier mal eine test.xls die ich aufs wesentliche gekürzt habe, vll findest du ja dort den Fehler.
lg Thomas
https://www.herber.de/bbs/user/41117.xls
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:52:05
Hans
Hallo Thomas,
Du musst das CInt natürlich auch jeweils gegen ein CLng austauschen.
Teste in solchen Fällen im Schrittmodus, dann kommst Du den Fehlerquellen näher. Übrigens gehört sowas nicht in ein Klassen-, sondern ein Standardmodul.
Gruss hans
Anzeige
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:53:00
Thomas
Arrr natürlich, jetzt machts klick. :-)
Was ist der Schrittmodus? Sagt mir jetzt so nix...
Danke für die Hilfe!
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:55:00
Hans
... Einzelschritt mit F8. Sieh Dir dazu aber das Menü Debuggen an.
Gruss hans
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 10:07:00
Thomas
Ah okay vielen Dank. Das dauert natürlich bei meinem Fall ewig lange, da er in ~20er schritten die Anwendung aufsummiert, bis er auf seine 39000 kommt.
Vll kannst du mir noch bei einem kleinen Problem helfen, dann brauch ich nicht extra nen neuen Post aufmachen. Und zwar habe ich eine CheckBox eingebaut und wenn diese "True" ist, soll ein Teil einer Prozedur übersprungen werden. Ich bekomm das aber irgendwie nicht hin, diese CheckBox anzusprechen, weil ich keine Ahnung habe, wie der Name ist, bzw. wo ich der CheckBox einen Namen gebe.
Dim CheckBox As Object
If ActiveDocument.CheckBox.Value = True Then GoTo Ende
Aber dort bekomme ich immer "Laufzeitfehler 424 - Objekt erforderlich"
Vielen Dank schonmal.
lg Thomas
Anzeige
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 10:13:00
Hans
... das ist ein ganz anderes Thema und hat einen eigenen Thread verdient, sonst werden wir hier nie fertig. Die Fragen und Antworten kommen zu schnell, das taugt nichts, da wird zuwenig drüber nachgedacht.
Gib bei der Frage aber auch an, ob es sich um eine CheckBox aus der Formular-Symbolleiste oder der Steuerelement-Toolbox handelt.
Gruss hans
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:57:05
Thomas
Ach, ich vergaß... Bei manchen Anwendungen stehen keine Referenzwerte. Dort bekomme ich den Fehler "ungültiger Prozeduraufruf oder ungültiges Argument". Kann ich das irgendwie umgehen?
Desweiteren stellt sich die Frage, ob per "such.Range(Cells(5, s), Cells(lsp, s)).ClearContents" auch die Farben resettet werden?
lg thomas
Anzeige
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 10:01:08
Hans
Hallo Thomas,
zu a):
Baue um die Schleife eine Wenn-Abfrage, ob die Zelle leer ist.
Zu b):
Mit ClearContents löschst Du nur den Inhalt, mit Clear alles.
Bitte diesen Thread jetzt nicht fortsetzen, er sprengt den Rahmen. Das Forum eignet sich nicht zum Chatten.
Gruss hans
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 08:31:00
Matthias
Hi,
Es wäre besser, Du teilst die Min-Max-Werte auf zwei Zellen auf.
als Beispiel:
in F1 steht Dein Wert
in C1 steht der Min-Wert
in D1 steht '-
in E1 steht der Max-Wert
Bedingte Formatierung:
=ODER($F$1$E$1)-Format Rot
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 08:34:00
Thomas
Hey Matthias,
danke erstmal. Die Sache ist aber, dass ich das in ein vorhandenes VB Script machen möchte und dazu das ganze in VB Code brauche. Bekommst du das auch hin?
lg Thomas
Anzeige
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:13:00
Matthias
Hab mal Hans seinen Code eingebaut
denn, so wie ich es gelesen habe wolltest Du doch die ganze Spalte rot haben.

Private Sub Worksheet_Change(ByVal Target As Range)
If Application.MoveAfterReturn = True Then Application.MoveAfterReturn = False
If Not Intersect(Target, Cells(1, 6)) Is Nothing Then
Dim iLow As Integer, iHigh As Integer
Dim sTxt As String
sTxt = Range("C1").Value
iLow = CInt(Left(sTxt, InStr(sTxt, " ") - 1))
iHigh = CInt(Right(sTxt, Len(sTxt) - InStrRev(sTxt, " ")))
With Range("F1")
If .Value >= iLow And .Value 
Gruß Matthias
Anzeige
AW: VB: If Abfrage + Automatische Hintergrundfarbe
16.03.2007 09:36:00
Thomas
Hallo Matthias,
da hatte ich mich falsch ausgedrückt, nur das Feld sollte rot gefärbt werden. Allerdings bekomme ich, wie ja in den anderen Posts zusehen ist, immer diesen Überlauf Fehler.
lg Thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige