Thema Datum  Von Nutzer Rating
Antwort
07.04.2017 11:45:13 Mark
NotSolved
Blau Adresse/Zeile des ausgewählten ComboBox-Elemtents bestimme
07.04.2017 18:30:29 BigBen
NotSolved
10.04.2017 08:23:06 Gast75279
NotSolved
09.04.2017 18:23:23 fedjo
NotSolved
10.04.2017 08:24:51 Mark
NotSolved

Ansicht des Beitrags:
Von:
BigBen
Datum:
07.04.2017 18:30:29
Views:
673
Rating: Antwort:
  Ja
Thema:
Adresse/Zeile des ausgewählten ComboBox-Elemtents bestimme

Hallo,

eventuell hilft dieser Code weiter?

Sub Test()
    Dim Rng As Range
    Set Rng = FindItemCell("Auto", "Reifen", "gebraucht")
    If Not Rng Is Nothing Then
        Debug.Print Rng.Row
        Rng.Select
    Else
        MsgBox "Nicht vorhanden"
    End If
End Sub

' Aufruf: Beispiel: FindItemCell("Auto", "Reifen", "Neu")
Function FindItemCell(strTyp As String, strElement As String, strZustand As String) As Range
    Dim rngDB As Range
    Dim rngNames As Range, rngTyp As Range, rngElement As Range, rngZustand As Range, Rng As Range
    Set rngDB = ThisWorkbook.Worksheets("Daten").Range("A1:I10") ' Alle Daten
                
    Set rngNames = Intersect(rngDB.Rows(1), rngDB.Worksheet.UsedRange)
    ' Felder finden
    For Each Rng In rngNames
        If Rng.Value = "Typ" Then
            Set rngTyp = Intersect(Rng.EntireColumn, rngDB)
        ElseIf Rng.Value = "Element" Then
            Set rngElement = Intersect(Rng.EntireColumn, rngDB)
        ElseIf Rng.Value = "Zustand" Then
            Set rngZustand = Intersect(Rng.EntireColumn, rngDB)
        End If
    Next
    
    ' Werte finden
    For Each Rng In rngDB.Rows
        If Intersect(Rng, rngTyp).Value = strTyp _
            And Intersect(Rng, rngElement).Value = strElement _
            And Intersect(Rng, rngZustand).Value = strZustand Then
                Set FindItemCell = Rng
                Exit For
        End If
    Next
End Function

Es wird vorausgesetzt, dass in der ersten Zeile in den Daten die Feldnamen stehen. Beispiel:

Typ Element Zustand
Auto Reifen Neu
Auto Reifen Alt
Auto Reifen gebraucht
Motorrad Sitz groß
Motorrad Sitz klein

Im VBA-Code wird in der Tabelle "Daten" nach den Einträgen gesucht. Bei Bedarf muss der Tabellename angepasst werden.

Als Rückgabe wird ein Range-Objekt der Zeile mit dem Treffer zurückgegeben. Im Range-Objekt kann die Zeilen-Nummer ausgelesen werden.

Im Test-Aufruf wird die Zeilennummer mit Rng.Row ausgelesen.

LG, BigBen


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
07.04.2017 11:45:13 Mark
NotSolved
Blau Adresse/Zeile des ausgewählten ComboBox-Elemtents bestimme
07.04.2017 18:30:29 BigBen
NotSolved
10.04.2017 08:23:06 Gast75279
NotSolved
09.04.2017 18:23:23 fedjo
NotSolved
10.04.2017 08:24:51 Mark
NotSolved