Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1700to1704
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

Datum vergleichen und Wert in Tabelle auslesen

Datum vergleichen und Wert in Tabelle auslesen
06.07.2019 11:54:48
Peter
Hallo ihr Excelspezialisten,
mit nachstehendem Code suche ich in Tabelle2 nach einem Datumwert der zwischen Anfangwert und Endwert liegt.
Wenn dieser nun gefunden ist, wird dieser mit rng.select markiert.
<pre>Sub Datumsvergleich_SpalteF_kleiner_groesser2()
Dim rng As Range
Dim lZeile As Long
With Worksheets("Tabelle2")
lZeile = .Cells(.Rows.Count, 6).End(xlUp).Row 'Spalte F
Dim Inh_N, Inh_S, Inh_PLZ, Inh_Ort, Inh_Tel As Range
' For Each rng In Range("F2:F50")
For Each rng In .Range("F2:F" & lZeile)
If rng > CDate("01.01.2019") And rng < CDate("31.12.2019") Then
MsgBox rng & " groesser " & "01.01.2019" & " kleiner " & "31.12.2019"
rng.Select
End If
Next
End With
End Sub</pre>
Nun möchte ich aber, dass die Werte der Spalten A, B, C, D und E ausgelesen werden.
z. B. Inh_N = Spalte A ist activecell(Offset(0,-6) geht nicht Laufzeitfehler 538.
Könnt ihr mir bitte helfen. Besten Dank.
Gruss
Peter

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum vergleichen und Wert in Tabelle auslesen
06.07.2019 12:16:32
Daniel
Hi
wenn du von Spalte F(6) nach Spalte A(1) willst, dann ist das ein Offset von -5 und nicht -6!
außerdem solltest du möglichst auf Select und Activate verzichten und die Zellen direkt ansprechen:
Inh_N = rng.Offset(0, -5)
Inh_S = rng.Offset(0, -4)
...
andere Möglichkeit wäre diese
Inh_N = .Cells(rng.Row, 1)
Inh_S = .Cells(rng.row, 2)
...
das mit dem Select würde ich nur einbauen, wenn ich den Code teste um zu prüfen, ob ich die richtige Zelle gefunden habe, aber nicht für den normalen Programmablauf benutzen.
Gruß Daniel
Anzeige
AW: Datum vergleichen und Wert in Tabelle auslesen
06.07.2019 12:53:17
Peter
Hallo Daniel,
Besten Dank für Deine Hilfe.
Funktioniert einwandfrei. Nur die Deklaration habe ich geändert auf String, da Zahlenwerte enthalten sind als Text und diese mittels Range zur Fehlermeldung führten.
Wünsche Dir noch ein schönes Wochenende.
Gruss
Peter
AW: Datum vergleichen und Wert in Tabelle auslesen
06.07.2019 15:39:14
Peter
Hallo Daniel,
ich habe nun den Code mit Deiner Hilfe soweit fertig.
<pre>Sub Datumvergleich_SpalteF_kleiner_groesser2()
Dim rng As Range
Dim lZeile As Long
With Worksheets("Tabelle2")
lZeile = .Cells(.Rows.Count, 6).End(xlUp).Row 'Spalte F
' Dim Inh_N, Inh_S, Inh_PLZ, Inh_Ort, Inh_Tel As Range
Dim Inh_N As String
Dim Inh_S As String
Dim Inh_PLZ As String
Dim Inh_Ort As String
Dim Inh_Tel As String
' For Each rng In Range("F2:F50")
For Each rng In .Range("F2:F" & lZeile)
If rng > CDate("01.01.2020") And rng < CDate("31.12.2020") Then
MsgBox rng & " groesser " & "01.01.2019" & " kleiner " & "31.12.2019"
''' rng.Select ' nur zu Testzweck eingebaut
Inh_N = .Cells(rng.Row, 1)
Inh_S = .Cells(rng.Row, 2)
Inh_PLZ = .Cells(rng.Row, 3)
Inh_Ort = .Cells(rng.Row, 4)
Inh_Tel = .Cells(rng.Row, 5)
Debug.Print Inh_N
Debug.Print Inh_S
Debug.Print Inh_PLZ
Debug.Print Inh_Ort
Debug.Print Inh_Tel
Else
MsgBox "Datum nicht vorhanden"
End If
Next
End With
End Sub</pre>
Jetzt habe ich noch ein zusätzliches Problem entdeckt.
Wenn die beiden Datumdaten(Anfang und Enddatum) neuen Datums sind dann sollen die Daten des letzten Datensatzes übernommen werden.
Hier ein kleines Beispiel:
Inhaber_Name Inhaber_Strasse Inhaber_PLZ Inhaber_Ort Inhaber_Telefon Inhaber_Datum
Test1 Test1 Test1 Test1 Test1 01.01.2014
Test2 Test2 Test2 Test2 Test2 21.03.2016
Test3 Test3 Test3 Test3 Test3 20.05.2019
Wenn das Anfang-Datum zwischen 01.01.2014 und End-Datum 31.12.2014 liegt, dann wird Zeile mit Test1 gewählt. Entsprechend die beiden weiteren Zeilen mit den jeweiligen Jahreszahlen.
Ist jedoch das Anfang-Datum 01.01.2015 und das Enddatum 31.12.2015 dann gibt es kein Ergebnis. Dann soll jedoch die zuletzt gültige Zeile angezeigt werden.
Wie kann dies bitte gelöst werden. Ich hoffe ich habe mich verständlich ausgedrückt.
Besten Dank für Deine Hilfe.
Gruss
Peter
Anzeige
zu-da schon wieder ein neuer Beitrag...
07.07.2019 13:44:19
robert
AW: Datum vergleichen und Wert in Tabelle auslesen
07.07.2019 16:40:18
Peter
Hallo Daniel,
zwischenzeitlich habe ich weiter im Archiv gesucht und eine brauchbare Lösung gefunden.
Es handelt sich um einen Code, den Du ins Archiv gesetzt hast:
Set SearchFor = Worksheets("Tabelle1").Cells(Worksheetfunction.Match(CLng(Date), Worksheets("Tabelle1").Columns(1), 1), 1)
Diesen habe ich für meine Zwecke angepasst.
Es funktioniert einwandfrei.
Gruss
Peter

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige