Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1580to1584
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

Array füllen und für If Abfrage verwenden

Array füllen und für If Abfrage verwenden
15.09.2017 11:44:27
Jens
Hallo,
wie kann ich ein Array mit Kürzel (z.b Es) füllen und dann über eine If abfrage einbinden.
Sprich wenn das Kürzel in der array enthalten ist, dann soll etwas bestimmtes gemacht werden.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mit nem Dictionary owt.
15.09.2017 11:52:37
Jack_d
ohne weiteren Text
AW: mit nem Dictionary owt.
15.09.2017 11:54:33
Jens
Ich verstehe es nicht... Kenne mich in Vba nicht so aus
AW: mit nem Dictionary owt.
15.09.2017 12:03:48
Martin
Hallo Jens,
das Dictionary (Suche im Archiv mal nach "Dictionary.Object") bietet sich hervorragend an, um per Schlüsselwort auf Werte zuzugreifen. Wenn Dein Schlüssen "Es" ist, kannst du einen Wert dazu ablegen bzw. abfragen ohne per Schleife alle Einträge abfragen zu müssen. Auch eine einfache "Exist"-Abfrage ist damit möglich.
Viele Grüße, Martin
AW: Array füllen und für If Abfrage verwenden
15.09.2017 12:00:50
Martin
Hallo Jens,
um alle Inhalte eines Array zu durchsuchen kannst du mit einer Schleife
For i = 0 To ubound([ArrayName], [Dimension])

alle Einträge durchsuchen und per
If Instr([ArrayName][Index],"Es"]) > 0 Then

abfragen, ob ein Eintrag das Kürzel "Es" enthält.
Viele Grüße, Martin
Anzeige
AW: Array füllen und für If Abfrage verwenden
15.09.2017 12:02:25
UweD
Hallo
Sub tt()
    Dim arr, Z
    arr = Array("ab", "fr", "es", "ht")
    
    For Each Z In arr
        If Z = "es" Then
            MsgBox "Ja"
        End If
    Next
End Sub

LG UweD
Anzeige
AW: Array füllen und für If Abfrage verwenden
15.09.2017 12:11:16
Jens
Besten Dank.
Wie verbinde ich das nun noch so, dass ich den Inhalt der Zelle A1 mit dem Inhalt des Array vergleiche und dann eben die MSBgob ausführe?

Sub tt()
Dim arr, Z
arr = Array("1", "fr", "es", "ht")
For Each Z In arr
If Cells(1, 1).Value = Z Then
MsgBox "Ja"
End If
Next
End Sub

So geht es nicht
doch, geht so
15.09.2017 12:20:17
Rudi
Hallo,
aber nur wenn in A1 des aktiven Blatts auch was aus dem Array steht.
Gruß
Rudi
also bei mir geht dein Code doch
15.09.2017 12:21:57
Martin
...aber die Groß-/Kleinschreibung muss beschtet werden. Oder mach es so:
Sub tt()
Dim arr, Z
arr = Array("1", "fr", "es", "ht")
For Each Z In arr
If LCase(Z) = LCase(Cells(1, 1).Value) Then
MsgBox "Ja"
End If
Next
End Sub

Anzeige
aber die Groß-/Kleinschreibung muss beachtet...
15.09.2017 12:36:36
Rudi
Hallo Martin,
alternativ zu LCase() Option Compare Text in den Modulkopf schreiben.
Gruß
Rudi
AW: aber die Groß-/Kleinschreibung muss beachtet...
15.09.2017 16:29:22
Jens
Hallo
so nachfolgend mein Code.
Es werden nun alle Zellen roteingefärbt. Auch die Zellen deren Inhalt nicht dem Array entspricht. Warum?

Sub DIN_Kürzel()
Dim arr, Z
arr = Array("BS", "BA", "WA", "WS")
lr = Cells(Rows.Count, "A").End(xlUp).Row
For i = 13 To lr
For Each Z In arr
If Cells(i, 1).Value = Z Then
Cells(i, 4).Interior.Color = RGB(255, 255, 255)
Else
'Cells(i, 4).Interior.Color = RGB(255, 0, 0)
End If
Next
Next
End Sub

Anzeige
AW: aber die Groß-/Kleinschreibung muss beachtet...
16.09.2017 09:28:13
Piet
Hallo Jens
das Problem bi Excel ist, die Twext Auswertung ist "knüppelhart logisch", man darf sich keine Fehler erlauben!!
Bei dir fehlt "Exit For" im Code, denn wenn du auf einen Text gestossen bist, z.B. "BS", aber dann nicht sofort aus der For Each Schleife ausspringst, stimmt der naechste "Z" Wert nicvht mehr, wird die Zelle wieder auf weiss gesetzt! Probier mal den unteren Code.
mfg Piet
    For Each Z In arr
If Cells(i, 1).Value = Z Then
Cells(i, 4).Interior.Color = RGB(255, 0, 0)
Exit For
Else
Cells(i, 4).Interior.Color = RGB(255, 255, 255)
End If

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige