Excel VBA - Wertebereich definieren

Jacka

Erfahrenes Mitglied
Hi!
Ich bin es schon wieder.. ich weiß, ich nerve mit meinen banalen Fragen.. :)

Also:
Standard Nummer 1 hat einen Index zwischen 1517 und 1521.
Seine Kennnummer lautet 7409.
Standard 2 hat einen Index zwischen 2034 und 2038
Seine Kennzahl lautet 3720.
Nach diesem Wertebereich möchte ich gerne in einer Spalte suchen.

Als erstes startet eine Abfrage, ob Standard 1 oder 2, mit Hilfe der Kennzahl über eine Inputbox. Bei der Eingabe der Zahl 7409 wird Standard 1 genommen etc.
Danach folgt eine If Anweisung:

If Standard = "7409" Then
index = 1519 <----- genau hier soll der Bereich festgelegt werden!
ElseIf Standard = "3720" Then
index = 2036 <----- genau hier soll der Bereich festgelegt werden!
Else
MsgBox ("Keine Index hinterlegt")
End If

Könnt ihr mir sagen, wie ich das definieren kann?

:confused:

Hoffe auf eure Hilfe!!

Grüße,
Jacka
 
Hi!

Keine Antworten.. schade!
Vielleicht muss ich mein Problem noch einmal genauer formulieren...

Mit diesem Code suche ich nach einem Wert in einer Auswahl.

ActiveSheet.Range("C29:C150").Select
For Each Zelle In Selection
If Zelle = index Then
Zelle.Select
Exit Sub

Der Wert nach dem ich suche, steht in einer Variablen namens "index".
Index soll einen Wertebereich von 1517 bis 1521 haben.

Nur wie definiere ich diesen Wertebereich? Direkt in einer If-Schleife?
Mein Versuch:
index = 1517 to 1521 funktioniert nicht.

Alles was ich will, ist doch nur nach einem Variablen zu Wert suchen, das
kann doch nicht so schwer sein oder?

Ich bin schon am verzweifeln... :confused:

Grüße,
Jacka
 
Hi,

im Prinzip hast Du Dir ja selber die Lösung gegeben.

Code:
For index = 1517 to 1521
  For Each Zelle In Selection
    If Zelle = index Then
      Zelle.Select
      Exit Sub
    End If
  Next Zelle
Next index

So in etwa. Prüfe es noch mal genau, da dies ungetesteter (aus dem Kopf geschriebener) Code ist.

Gruß
Das Orakel
 
Hi!
Danke für deine Antwort!

Nur leider funktioniert es nicht so wie es soll. Er markiert mir nur alle, aber sucht nicht, bzw.
markiert nicht die Zelle.

Grüße,
Jacka
 
Hi Jacka,

Jacka hat gesagt.:
Hi!
Nur leider funktioniert es nicht so wie es soll. Er markiert mir nur alle, aber sucht nicht, bzw.
markiert nicht die Zelle.

Wie gesagt war so aus dem Kopf gecodet. Ändere doch mal folgende Zeile
Code:
    If Zelle = index Then

in
    If CInt( Zelle.Value ) = index Then

Gruß
Das Orakel
 
Hi!

Jetzt bekomme ich eine Fehlermeldung, Typen Unverträglichkeit für Zeile
If CInt( Zelle.Value ) = index Then

Grüße,
Jacka
 
Hi,

also hier ein getester Code.
Code:
    Dim nIndex                  As Integer
    Dim oRange                  As Range
    Dim oZelle                  As Range

    Set oRange = Range("A2:D15")
    For nIndex = 120 To 200
        For Each oZelle In oRange
            If CInt(oZelle.Value) = nIndex Then
                oZelle.Interior.ColorIndex = 7
            End If
        Next oZelle
    Next nIndex

Gruß
Das Orakel
 
Hi!

Super! Vielen Dank!

Äh.. ein Problem hätte ich da noch:
Mit dem Wert 1519 funktioniert es, mit dem Wert 1519,354 nicht..
Habe die Variable Integer auch durch andere ausgetausch, passiert aber nichts.
Muss ich bei "For nIndex = 1517 to 1521" noch irgendetwas an den Zahlen ändern?
Komma will er ja nicht, bei einem Punkt macht der nur # dahinter.

:(

Grüße,
Jacka
 
Selbstverständlich must Du da noch einiges ändern.

Code:
    Dim dIndex                  As Double
    Dim oRange                  As Range
    Dim oZelle                  As Range

    Set oRange = Range("A2:G15")
    For dIndex = 120 To 150 Step 0.1
        For Each oZelle In oRange
            If CDbl(oZelle.Value) = CDbl(dIndex) Then
                oZelle.Interior.ColorIndex = 7
            End If
        Next oZelle
    Next dIndex

Gruß
Das Orakel
 

Neue Beiträge

Zurück