Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Wert ausgeben, wenn zwei Suchkriterien erfüllt

Wert ausgeben, wenn zwei Suchkriterien erfüllt
03.11.2014 09:41:24
Florian
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!

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert ausgeben, wenn zwei Suchkriterien erfüllt
03.11.2014 09:57:43
Beverly
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.


AW: Wert ausgeben, wenn zwei Suchkriterien erfüllt
03.11.2014 10:58:33
Florian
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.

Anzeige
AW: Wert ausgeben, wenn zwei Suchkriterien erfüllt
03.11.2014 15:19:58
Beverly
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


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige