Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Größer als aber kleiner als VBA

Größer als aber kleiner als VBA
Volker
Hallo zussammen,
ich versuche mittels untenstehendem Code einen Farbwechsel zu erreichen,
im ersten Teil funktioniert es. Kkann mir jemand sagen wo ich den (Denk)Fehler mache?
Event. bin ich ja auf dem Holzweg.... Übrigens... die gehören nicht zum Code :-))
Hier der Code
~f~If TextBox17.Value <= "90" Then~f~
UserForm2.Frame2.BackColor = RGB(0, 255, 0)
UserForm2.Label12.BackColor = RGB(0, 255, 0)
End If
~f~ If TextBox17.Value >"30" and <="60"Then <----- Hier scheint etwas nicht zu stimmen~f~
UserForm2.Frame2.BackColor = RGB(255, 255, 0)
UserForm2.Label12.BackColor = RGB(255, 255, 0)
End If
~f~ If TextBox17.Value <= "30" Then
UserForm2.Frame2.BackColor = RGB(255, 0, 0) '255 255 0, 255,0 0
UserForm2.Label12.BackColor = RGB(255, 0, 0) '255 255 0
End If
Danke fürs lesen,
Gruss Volker
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Größer als aber kleiner als VBA
28.04.2011 18:58:11
MichaV
If TextBox17.Value >"30" and TextBox17.Value
AW: Größer als aber kleiner als VBA
28.04.2011 19:04:22
ransi
Hallo
Aus der Hüfte geschossen und ungetestet:
If TextBox17.Value >"30" and TextBox17.Value <="60"Then
oder
If TextBox17.Value >"30" then
If TextBox17.Value <= "60" then
end if
end if
oder die Standardvorgehendsweise:
Select case TextBox17.Value
case <=30
UserForm2.Frame2.BackColor = RGB(255, 0, 0) '255 255 0, 255,0 0
UserForm2.Label12.BackColor = RGB(255, 0, 0) '255 255 0
case <= 60
UserForm2.Frame2.BackColor = RGB(255, 255, 0)
UserForm2.Label12.BackColor = RGB(255, 255, 0)
case <=90
UserForm2.Frame2.BackColor = RGB(0, 255, 0)
UserForm2.Label12.BackColor = RGB(0, 255, 0)
case else:
MSgbox "Mach was anderes"
end select
ransi
Anzeige
AW: Größer als aber kleiner als VBA
28.04.2011 19:40:56
Daniel
Hi
in dem speziellen Fall (30, 60, 90) kannst du das auch so lösen:
Dim Farbe(3) as long
dim i as long
Farbe(1) = RGB(255,0,0)
Farbe(2) = RGB(255, 255, 0)
Farbe(3) = RGB(0, 255, 0)
i = Worksheetfunction.RoundUp(Textbox17.Value/30, 0)
if i 

Gruß, Daniel
Anzeige
AW: Größer als aber kleiner als VBA
28.04.2011 19:48:55
Volker
Danke an alle, super!!!!!!
Gruß
Volker
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Farbwechsel in VBA: Größer als und kleiner als Bedingungen


Schritt-für-Schritt-Anleitung

Um in VBA einen Farbwechsel basierend auf den Werten einer TextBox zu realisieren, kannst du folgenden Code verwenden:

If TextBox17.Value <= "30" Then
    UserForm2.Frame2.BackColor = RGB(255, 0, 0) ' Rot
    UserForm2.Label12.BackColor = RGB(255, 0, 0)
ElseIf TextBox17.Value > "30" And TextBox17.Value <= "60" Then
    UserForm2.Frame2.BackColor = RGB(255, 255, 0) ' Gelb
    UserForm2.Label12.BackColor = RGB(255, 255, 0)
ElseIf TextBox17.Value > "60" And TextBox17.Value <= "90" Then
    UserForm2.Frame2.BackColor = RGB(0, 255, 0) ' Grün
    UserForm2.Label12.BackColor = RGB(0, 255, 0)
Else
    MsgBox "Wert ist außerhalb des gültigen Bereichs."
End If

Dieser Code überprüft den eingegebenen Wert in TextBox17 und ändert die Hintergrundfarbe des Frames und Labels je nach Bedingung. Bei Werten, die kleiner als oder gleich 30, größer als 30 und kleiner gleich 60, sowie größer als 60 und kleiner gleich 90 sind, wird die entsprechende Farbe eingestellt.


Häufige Fehler und Lösungen

  1. Fehlerhafte Bedingungen

    • Stelle sicher, dass die Bedingungen in Deinem Code korrekt formuliert sind. Zum Beispiel sollte If TextBox17.Value > "30" And TextBox17.Value <= "60" Then verwendet werden, um sicherzustellen, dass beide Bedingungen erfüllt sind.
  2. Falsche Datentypen

    • Achte darauf, dass die Werte in der TextBox als Zahlen interpretiert werden. Du kannst CDbl(TextBox17.Value) verwenden, um sicherzustellen, dass der Wert als Double behandelt wird.
  3. Syntaxfehler

    • Vergewissere Dich, dass Du die korrekte VBA-Syntax verwendest, insbesondere bei End If und anderen Schlüsselwörtern.

Alternative Methoden

Eine andere Möglichkeit, um ähnliche Bedingungen zu prüfen, ist die Verwendung von Select Case:

Select Case TextBox17.Value
    Case Is <= 30
        UserForm2.Frame2.BackColor = RGB(255, 0, 0)
        UserForm2.Label12.BackColor = RGB(255, 0, 0)
    Case Is <= 60
        UserForm2.Frame2.BackColor = RGB(255, 255, 0)
        UserForm2.Label12.BackColor = RGB(255, 255, 0)
    Case Is <= 90
        UserForm2.Frame2.BackColor = RGB(0, 255, 0)
        UserForm2.Label12.BackColor = RGB(0, 255, 0)
    Case Else
        MsgBox "Wert ist außerhalb des gültigen Bereichs."
End Select

Diese Methode kann den Code lesbarer machen, besonders wenn viele Bedingungen überprüft werden müssen.


Praktische Beispiele

Ein Beispiel für die Verwendung von Farben basierend auf der Eingabe könnte so aussehen:

  • Wenn der Benutzer 25 eingibt, wird der Hintergrund rot.
  • Bei 45 ändert sich die Farbe zu gelb.
  • Bei 75 wird die Farbe grün.

Du kannst weitere Farbwerte und Bedingungen hinzufügen, um die Benutzeroberfläche dynamischer zu gestalten.


Tipps für Profis

  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Eingaben abzufangen, z. B. nicht-numerische Werte.
  • Dynamische Anpassung: Überlege, ob du die Werte in einer Tabelle speichern möchtest, um die Farbänderungen einfacher zu verwalten.
  • Verwendung von Konstanten: Definiere die Farben als Konstanten, um den Code klarer und wartungsfreundlicher zu gestalten, z.B. Const Rot As Long = RGB(255, 0, 0).

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Zahlen eingegeben werden?
Du kannst die Eingabe in der TextBox validieren, indem du den KeyPress-Event verwendest, um nur numerische Eingaben zuzulassen.

2. Was mache ich, wenn der Wert außerhalb des erwarteten Bereichs liegt?
Nutze eine MsgBox, um den Benutzer zu informieren, dass der eingegebene Wert nicht im gültigen Bereich liegt, wie im obigen Beispiel gezeigt.

3. Kann ich die Farben individuell anpassen?
Ja, du kannst die RGB-Werte in deinem Code ändern, um die gewünschten Farben für deine Anwendung zu erzielen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige