Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Wert ausgeben, wenn zwei Suchkriterien erfüllt

Betrifft: Wert ausgeben, wenn zwei Suchkriterien erfüllt von: Florian Müller
Geschrieben am: 03.11.2014 09:41:24

Hallo zusammen,

ich möchte in VBA eine Funktion erstellen, die automatisch den Wert einer Zelle ausgibt, wenn in den daneben-liegenden Spalten das Datum mit einer mit der Variable T (dimensioniert As Date) übereinstimmt und zusätzlich in einer daneben-liegenden Spalte eine bestimmte Uhrzeit vorliegt (alles in derselben Zeile). Faktisch ist also grundsätzlich zunächst nach einer Zeile mit dem Datum T (variabel) und einer festen Uhrzeit gesucht. Das ganze sollte möglichst effizient ablaufen...

Vielen Dank für Eure Hilfe!

  

Betrifft: AW: Wert ausgeben, wenn zwei Suchkriterien erfüllt von: Beverly
Geschrieben am: 03.11.2014 09:57:43

Hi Florian,

benutze die FindNext-Methode zum Suchen des Datumswertes und prüfe, ob in der gefundenen Zelle daneben (z.B. 1 Spalte rechts davon) Zelle.Offset(0, 1) die Uhrzeit steht.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Wert ausgeben, wenn zwei Suchkriterien erfüllt von: Florian Müller
Geschrieben am: 03.11.2014 10:58:33

Danke, das hört sich schon mal gut an!
Leider bin ich mir noch unsicher, wie ich das konkret umsetzen kann.
In Tabelle1 wird die Funktion angewandt (Da sind auch auch Variablen T As Date und die gesuchte Uhrzeit...); die Datumswerte (auch mehrfach dasselbe Datum) sind in Tabelle2 in Spalte 2, in Spalte 3 sind die Uhrzeiten und in Spalte 4 daneben der auszugebende/benötigte Wert.

Vielen Dank vorab.


  

Betrifft: AW: Wert ausgeben, wenn zwei Suchkriterien erfüllt von: Beverly
Geschrieben am: 03.11.2014 15:19:58

Hi Florian,

Sub Finden()
    Dim rngZelle As Range
    Dim strStart As String
    With Worksheets("Tabelle2")
        ' Datum in Spalte B suchen
        Set rngZelle = .Columns(2).Find(DeinSuchdatum, lookat:=xlWhole, LookIn:=xlFormulas)
        ' wurde gefunden
        If Not rngZelle Is Nothing Then
            ' 1. gefundene Zelladresse auf Variable schreiben
            strStart = rngZelle.Address
            Do
                ' Spalte C in gefundener Zeile = gesuchte Uhrzeit
                If .Cells(rngZelle.Row, 3) = DeineUhrzeit Then
                    ' Wert aus Spalte D ausgeben
                    MsgBox .Cells(rngZelle.Row, 4)
                    ' Schleife verlassen
                    Exit Do
                End If
                ' nächsten Treffer suchen
                Set rngZelle = Columns(2).FindNext(rngZelle)
            ' Schleife so oft durchlaufen wie Treffer gefunden werden und
            ' Zelladresse <> Startadresse ist
            Loop While Not rngZelle Is Nothing And rngZelle.Address <> strStart
        Else
            MsgBox "Nicht gefunden"
        End If
        Set rngZelle = Nothing
    End With
End Sub

GrußformelBeverly's Excel - Inn


 

Beiträge aus den Excel-Beispielen zum Thema "Wert ausgeben, wenn zwei Suchkriterien erfüllt"