Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1388to1392
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
Inhaltsverzeichnis

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!

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

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige