Anzeige
Archiv - Navigation
876to880
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
876to880
876to880
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellenwert mit Werten aus Liste vergleichen

Zellenwert mit Werten aus Liste vergleichen
13.06.2007 11:02:27
Benny
Hallo alle,
ich habe eine Tabelle mit Rohdaten, in denen in einer Spalte untereinander viele verschiedene Typen-Kürzel für Fahrzeuge stehen. Meine Aufgabe ist es, diese Kürzel einer Fahrzeug-Baureihe zuzuordnen. Die Fahrzeug-Baureihe soll per VBA immer jeweils in die Zelle rechts vom Kürzel geschrieben werden.
Beispiel: Die Kürzel
  • TRV 15SHD (R1)
  • TRV 16RHD (R1)
  • O 580-16 RHD
  • und noch einige mehr sollen der Baureihe "Travego" zugeordnet werden, also würde da immer "Travego" in die Zelle rechts vom Kürzel eingefügt werden. Das gleiche gilt für weitere Baureihen.
    Für die Zuordnung habe ich eine Excel-Liste (eine Art Schlüssel als Vorgabe), in der in Spalte A die Kürzel stehen und in Spalte B die zugehörige Baureihe (es gibt ca. 10 Baureihen und ca. 100 Kürzel). Das einzige was mir einfällt ist das hier, um die Rohdaten-Tabelle durchzugehen und die Kürzel zu "übersetzen":
    Dim lngL as Long
    lngL = 1
    Dim wsQuelle as Worksheet 'wsQuelle ist die Rohdaten-tabelle
    Do While lngL <= wsQuelle.Cells(Rows.Count, 1).End(xlUp).Row
    If wsQuelle.Cells(lngL, 1).Value = "TRV 15SHD (R1)" Or wsQuelle.Cells(lngL, 1).Value = "O 580-16 RHD" Then
    wsQuelle.Cells(lngL, 2).Value = "Travego"
    End If
    usw.
    Das ist recht umständlich, da es viele Kürzel zu "übersetzen" gibt. Gibt es eine Möglichkeit, dass ich die Schlüssel-Liste (eine Excel-Tabelle) direkt auslese, ohne alle Kürzel in den VBA-Code schreiben zu müssen? In etwa so:
    Dim lngL as Long
    lngL = 1
    Dim wsQuelle as Worksheet 'wsQuelle ist die Rohdaten-tabelle
    Do While lngL <= wsQuelle.Cells(Rows.Count, 1).End(xlUp).Row
    If wsQuelle.Cells(lngL, 1).Value = "EINER DER WERTE AUS WORKSHEET XY(SCHLÜSSELLISTE), DIE IN DEN ZELLEN A1 BIS A16 STEHEN" Then
    wsQuelle.Cells(lngL, 2).Value = "Travego"
    End If
    Gibt es da eine Funktion? Habe leider nichts gefunden bisher, wäre super wenn jemand einen Ansatz hat! Vielen Dank im vorraus,
    Benny

  • 2
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Zellenwert mit Werten aus Liste vergleichen
    13.06.2007 11:53:00
    Mac4
    Hallo Benny,
    wenn ich es richtig verstanden habe, geht das:
    For lngL = 1 To wsQuelle.[A65536].End(xlUp).Row
    On Error Resume Next
    wsQuelle.Cells(lngL, "B") = WorksheetFunction.Index(Sheets("XY").[B:B], WorksheetFunction.Match(wsQuelle.Cells(lngL, "A"), Sheets("XY").[A:A], 0))
    On Error GoTo 0
    Next

    AW: Zellenwert mit Werten aus Liste vergleichen
    13.06.2007 13:30:05
    Benny
    Hallo Mac4,
    vielen Dank für deine schnelle Antwort. Habe deinen Code mal ausprobiert, aber irgendwas habe ich da falsch gemacht, weiß nicht genau was (kam immer Syntaxfehler). Habe mir nach mehreren Versuchen eine andere Version aus verschiedenen Beispielen zusammengebastelt, funktioniert auch:
    </p><pre>Sub Typ_zuordnen()
    Dim wbAuswertung As String 'Die Mappe mit den Rohdaten
    Dim wbMakro As String 'Die Mappe mit der "Schlüssel"-Liste
    Dim strZellenWert As String
    Dim lngL As Long
    Dim i As Integer
    wbAuswertung = ActiveWorkbook.Name
    wbMakro = "Makro_Geschäftssituation.xls"
    lngL = 2
    Range("E1").Select
    Selection.EntireColumn.Insert 'neue Spalte für die Zuordnung einfügen
    Do While lngL <= Workbooks(wbAuswertung).Worksheets("Gesamt").Cells(Rows.Count, 1).End(xlUp).Row
    strZellenWert = Workbooks(wbAuswertung).Worksheets("Gesamt").Cells(lngL, 4).Value
    For i = 2 To 230
    If Workbooks(wbMakro).Worksheets("Typen-Zuordnung").Cells(i, 1).Value = strZellenWert Then
    Workbooks(wbAuswertung).Worksheets("Gesamt").Cells(lngL, 5).Value = Workbooks(wbMakro).Worksheets("Typen-Zuordnung").Cells(i, 2).Value
    End If
    Next i
    lngL = lngL + 1
    Loop
    End Sub</pre><p>
    Gruß Benny
    Anzeige

    314 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige