Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1632to1636
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

Spalte suchen, kleines Problem

Spalte suchen, kleines Problem
20.07.2018 13:31:37
Torsten
Hallo an alle, happy Friday.
Ich versuche mit Cells.Find mir eine Spalte ausgeben zu lassen. Problem hierbei ist, dass die Methode nur in einer Zeile suchen soll und dort nach einem Datum, dass per Formel eingetragen ist im Format "dd".
Was muss ich an meinem Code aendern, damit er nur in Zeile 3 sucht und diesen mit Formel generierten Datumswert findet im Format "dd"?
Mein Code:

tDate = Format(Date, "dd")
With WSTarget
tColumn = Cells.Find(What:=tDate, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Column
End With
MsgBox tColumn
Es wird nicht die Richtige Spalte zurueckgegeben.
Vielen Dank im Voraus.
Gruss Torsten

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte suchen, kleines Problem
20.07.2018 13:34:49
Hajo_Zi
Rows(3).Find(What:=tDate, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Column
Du möchtest also Nach Mo suchen und nicht den Tag?
MsgBox tColumn.address

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Spalte suchen, kleines Problem
20.07.2018 13:37:12
Torsten
Hallo Hajo. Danke erstmal fuer die schnelle Antwort. Werde es testen.
Nein nicht nach "Mo", sondern nach "20", also heute ist der 20.
AW: Spalte suchen, kleines Problem
20.07.2018 13:42:24
Torsten
Bekomme leider LZF 91: Object Variable or With Block Variable not set
Anzeige
AW: Spalte suchen, kleines Problem
20.07.2018 13:44:07
Hajo_Zi
das kannst nur Du beantworten, bzw. jemand der neben Dir sitzt. Die beiden sehen den kompletten Code und die Datei.
Gruß Hajo
AW: Spalte suchen, kleines Problem
20.07.2018 13:58:42
Hajo_Zi
in der Zeile Find fehlt zu beginn "Set "
Gruß Hajo
AW: Spalte suchen, kleines Problem
20.07.2018 17:38:06
Werner
Hallo Torsten,
schätze mal, dass das so überhaupt nicht funktionieren wird.
Dein Suchbegriff ist z.B. 20 (wobei du durch tDate = Format(Date, "dd") keine echte Zahl in tDate hast sondern Text)
Wenn ich dich richtig verstehen, dass hast du in Zeile 3 echte Datumswerte stehen, die aber im Format TT angezeigt werden.
Jetzt suchst du mit Find über xlWhole im ganzen Zellinhalt (komplettes Datum) nach 20, was so kein Ergebnis bringen kann, weil da halt nie nur 20 in der Zelle steht.
Du könntest jetzt mit xlPart nur nach einem Teil des Zellinhaltes suchen. Dann kriegst du aber auch bei z.B. 11.11.2018 einen Treffer weil die 20 bei 2018 gefunden wird.
Wenn es kein riesiger Datenbereich ist, dann könntest du das mal mit einer Schleife versuchen:
Public Sub aaa()
Dim loSpalte As Long, tDate As Long
Dim raBereich As Range, raZelle As Range
Dim WSTarget As Worksheet
Set WSTarget = Worksheets("Tabelle1") 'Blattname anpassen
tDate = Day(Date)
With WSTarget
loSpalte = .Cells(3, .Columns.Count).End(xlToLeft).Column
Set raBereich = .Range(.Cells(3, 1), .Cells(3, loSpalte))
For Each raZelle In raBereich
If IsDate(raZelle) Then
If Day(raZelle) = tDate Then
Exit For
End If
End If
Next raZelle
End With
MsgBox raZelle.Column
Set WSTarget = Nothing: Set raBereich = Nothing
End Sub
Gruß werner
Anzeige
AW: mit match
21.07.2018 09:20:06
hary
Moin
Ein Datum suchen ist mit find keine gute Loesung. Nimm Match.
Sub Datumsspalte()
Dim Spalte As Variant
With Worksheets("Tabelle1") '--Blattname anpassen
Spalte = Application.Match(CLng(Date), .Rows(3), 0)
If IsNumeric(Spalte) Then
MsgBox Spalte
End If
End With
End Sub

gruss hary
falsche Einstellung bei .Find
21.07.2018 12:29:16
Daniel
Hi
du hast deine .Find-Funktion falsch parametrisiert.
mit LookIn:=xlFormulas suchst du im Formeltext, dh dem Text, der in der Bearbeitungszeile steht
mit LookIn:=xlValues suchst du im Formelergebnis
aber meistens braucht man gar nicht suchen, sondern man kann rechnen, denn normalerweise stehen Datumswerte in geordneter Reihenfolge und ohne Lücke in den Zellen,
dann kann man die gesuchte Spalte oder Zeile auch einfach nach folgender Regel berechnen.
gesuchte Spalte/Zeile = Gesuchtes Datum - Datum in der ersten Zelle + Spalte/Zeile der ersten Zelle
suchen mit .Find muss man nur wenn die Datumswerte
- Lücken haben (z.B. nur die Werktage gelistest sind)
- ungeordnet sind
- über mehrere Zeilen und Spalten verteilt sind
Gruß Daniel
Anzeige
AW: falsche Einstellung bei .Find
23.07.2018 09:04:37
Torsten
Hi Daniel,
dein erster Punkt, um .Find verwenden zu muessen, trifft hier zu. Es sind nur Werktage gelistet.
Die Zellen mit dem Datum sind Benutzerdefiniert formatiert mit "dd".
Habe die .Find Funtion jetzt mal abgeaendert. Bis jetzt funktioniert es. Mal schauen, wann ein Fehler auftritt.
Set tColumn = WSTarget.UsedRange.Find(What:=tDate, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Suche nur noch in den Values. Dass ich nicht in der Formel suchen sollte, hab ich dann auch geschnallt ;-).
Danke fuer eure Hilfe.
Anzeige
AW: Spalte suchen, kleines Problem
21.07.2018 14:56:40
Gerd
Hallo Torsten!
Dim spaltenr As Long
If WorksheetFunction.CountIf(Rows(3), Date) = 0 Then
MsgBox "Heutiges Datum fehlt!": Exit Sub
End If
spaltenr = WorksheetFunction.Match(CLng(Date), Rows(3), 0)
MsgBox spaltenr

Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige