Herbers Excel-Forum - das Archiv

Vergleichen mit Liste in Array

Bild

Betrifft: Vergleichen mit Liste in Array
von: Hans-Jörg
Geschrieben am: 29.11.2003 23:02:59
Hallo,
Habe eine Abfrage die in eine Zelle einen Wert schreibt wenn....
Frage: wie kann ich dies eleganter Lösen?
z.B. wenn ich eine Liste in einem Parameterblatt anlege ?
Jan - 01
Feb - 02
Mrz - 03
usw....

Danach diese liste in ein Array packe und zum Vergleich verwende.

Jetzt habe ich folgenden Weg:



Sub bereichSuche
If InStr(1, strfile, "March") > 1 Then Monat = "03"
If InStr(1, strfile, "march") > 1 Then Monat = "03"
If InStr(1, strfile, "April") > 1 Then Monat = "04"
If InStr(1, strfile, "april") > 1 Then Monat = "04"
If InStr(1, strfile, "May") > 1 Then Monat = "05"
If InStr(1, strfile, "may") > 1 Then Monat = "05"
If InStr(1, strfile, "June") > 1 Then Monat = "06"
If InStr(1, strfile, "june") > 1 Then Monat = "06"
If InStr(1, strfile, "July") > 1 Then Monat = "07"
If InStr(1, strfile, "july") > 1 Then Monat = "07"
If InStr(1, strfile, "Aug") > 1 Then Monat = "08"
If InStr(1, strfile, "aug") > 1 Then Monat = "08"
If InStr(1, strfile, "Sep") > 1 Then Monat = "09"
If InStr(1, strfile, "sep") > 1 Then Monat = "09"
If InStr(1, strfile, "Okt") > 1 Then Monat = "10"
If InStr(1, strfile, "okt") > 1 Then Monat = "10"
End Sub


strfile = Dateiname
Ist dies vieleich mit einem Dreizeiler machbar?
Vielen Dank
Hans-Jörg
Bild

Betrifft: AW: Vergleichen mit Liste in Array
von: Ramses
Geschrieben am: 29.11.2003 23:12:59
Hallo

zumindest eine Halbierung mit der Anweisung

If InStr(1, UCase(strfile), "MARCH") > 1 Then Monat = "03"

Mit UCase wandelst du den String in Grossbuchstaben um, damit entfällt die prüfung auf die Kleinschreibung.

Die Frage ist für mich:
Wo kommen diese Strings her ? Allenfalls liese sich das ganze noch viel einfacher lösen.

Gruss Rainer
Bild

Betrifft: AW: Vergleichen mit Liste in Array
von: hans-Jörg
Geschrieben am: 29.11.2003 23:27:10
Hallo Rainer,
vielen Dank.
Damit sind tatsächlich 50% erschlagen.
Hans-Jörg
Bild

Betrifft: AW: Vergleichen mit Liste in Array
von: RAnton
Geschrieben am: 29.11.2003 23:20:11
Hallo Jörg,

ich hab zwar dein Problem nicht ganz verstanden, aber vielleicht hielft folgender Ansatz.



Sub test()
Dim TestClasses As New Collection
Dim s As String
TestClasses.Add "03", "march"
TestClasses.Add "04", "april"
s = TestClasses.Item("March")
End Sub



Gruß
RAnton
Bild

Betrifft: AW: Da komm ich jetzt auch nicht mit
von: Hans-Jörg
Geschrieben am: 29.11.2003 23:40:29
Hallo Anton,

Mein Problem ist:
Ich lade alle Excelmappen eines Verzeichnisses nacheinander, ziehe mir die relevanten Datensätze heraus und packe diese in eine Sammelmappe.
Jeder Dateiname enthält den Monat in dem diese Datei erstellt wurde.
ich muß diesen Monat im Dateiname finden und als Zahl in eine Zelle der Datensätze schreiben. Dabei kann der erste Buchstabe des Monats mal klein mal groß geschrieben sein.
Mein Gedanke:
wenn ich eine Liste erstelle indem ich schreibe
Jan = "01"
Feb = "02"
usw.
dies in ein Array packe. Könnte ich doch den Dateiname mit der Liste in diesr ArrayVariable vergleichen und den numerischen Wert übergeben oder??
Hans-Jörg
Bild

Betrifft: AW: Da komm ich jetzt auch nicht mit
von: RAnton
Geschrieben am: 30.11.2003 00:23:05
Hallo Jörg,
wie gesagt, hatte dein Problem nicht gleich verstanden.
Aber wie wärs mit dieser Lösung?



Sub test(strfile As String)
Dim Monate(1 To 12) As String
Dim i As Integer
Monate(1) = "januar"
Monate(2) = "februar"
Monate(3) = "march"
Monate(4) = "april"
Monate(5) = "May"
Monate(6) = "june"
Monate(7) = "july"
Monate(8) = "aug"
Monate(9) = "sep"
Monate(10) = "okt"
Monate(11) = "nov"
Monate(12) = "dec"
For i = 1 To 12
If InStr(1, LCase(strfile), Monate(i)) > 1 Then
Monat = CStr(i)
Exit For
End If
Next
End Sub



Gruß
RAnton
Bild

Betrifft: AW: So werd ich es versuchen Danke
von: Hans-Jörg
Geschrieben am: 30.11.2003 00:49:14
Vielen Dank
Hans-Jörg
Bild
Excel-Beispiele zum Thema " Vergleichen mit Liste in Array"
Zellen vergleichen und markieren Tabellen vergleichen
Spalten A und B vergleichen und Doppel in C listen Werte vergleichen
Bereiche auf Übereinstimmung vergleichen Daten in jeweils einer Spalte zweier Tabellen vergleichen
Werte vergleichen und Ergebnis in Tabelle eintragen Tabellen vergleichen und Zeilen ersetzen
Tabellen vergleichen und bei Nichtübereinstimmung markieren Textdateien vergleichen und Unterschiede dokumentieren