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

Makro anpassung zur auslesung eines Datums

Makro anpassung zur auslesung eines Datums
29.07.2019 11:49:11
Robert
Hallo Liebes Forum,
ich habe diesen Code mit dem sich ein Datum aus einer Tabelle auslesen lässt, allerdings muss diese anscheinend zwingend als Tabelle formatiert sein. Wie kann man den Code ändern sodass ich diesen auch auf unformatierte Tabellen anwenden kann ?
Option Explicit
Public Sub Datum_Suchen()
Dim rngFind As Range
Dim strDate As String
Dim a As Long, b As Long, c As Long
strDate = InputBox("Datum:", , CDate(Date))
If strDate = "" Then Exit Sub
a = Sheets("Spreads2").Cells(68, Columns.Count).End(xlToLeft).Column
Set rngFind = Sheets("Spreads2").Range(Cells(69, 1), Cells(69, a)).Find(strDate, LookIn:= _
xlFormulas)
If Not rngFind Is Nothing Then
b = InputBox("Wieviele Zeilen sollen kopiert werden?", "Zeilen", "1")
Sheets("Spreads2").Range(Cells(rngFind.Row, rngFind.Column), Cells(rngFind.Row + b, _
rngFind.Column)).Copy
If Sheets("Result").Range("A1") = "" Then
Sheets("Result").Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Else
c = Sheets("Result").Cells(1, Columns.Count).End(xlToLeft).Column
Sheets("Result").Cells(1, c + 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End If
Else
MsgBox "Das Datum wurde nicht gefunden!"
End If
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ich versteh es nicht ganz...
29.07.2019 16:08:19
{Boris}
Hi,
...was genau meinst Du mit "als Tabelle formatiert"?
Ist eine "Tabelle" für Dich ein zusammenhängender Bereich (was so auch absolut sinnvoll ist) - aber Dein Bereich hängt eben nicht zusammen?
VG, Boris
AW: Makro anpassung zur auslesung eines Datums
29.07.2019 17:01:40
Luschi
Hallo Robert,
in der folgende Zeile ist ein allzu beliebter Verständnisfehler drin:

Set rngFind = Sheets("Spreads2").Range(Cells(69, 1), Cells(69, a)).Find(strDate, LookIn:= xlFormulas)
Range hat den Bezug zur Tabelle 'Spreads2', Cells aber kennt diese Zuordnung nicht, und da sie fehlt, wird die aktive Tabelle (also die, die gerade auf dem Monitor sichtbar ist) genommen - und deshalb macht der Compiler schlapp, wenn Range & beide Cells nicht auf das selbe Tabellen-Objekt zeigen.
Deshalb so:

With Sheets("Spreads2")
Set rngFind = .Range(.Cells(69, 1), .Cells(69, a)).Find(strDate, LookIn:=xlFormulas)
End Sub
Wenn Du Dir die Bemerkungen zu Range.Find in der Online-Hilfe durchliest, entdeckst Du folgenden Satz:
Die Einstellungen für LookIn, LookAt, SearchOrder und MatchByte werden gespeichert, sobald Sie diese Methode verwenden.
Diese Einstellungen werden auch durch Strg+F (Suchen auf der Excel-Oberfläsche) gesteuert und gespeichert. Also bitte immer alle 4 Parameter angeben!
Bei dem Bereich, der als Tabelle formatiert ist, kennt das ListObject-Objekt die Zugehörigkeit zu einer bestimmten Tabelle.
Gruß von Luschi
aus klein-Paris
PS: Erstaunlich, daß es 'With' in Visual Studio nur in VB.NET gibt und man in C# dieses sinnvolle Konstrukt nicht gibt.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige