HERBERS Excel-Forum - das Archiv
Find Methode
Steffen


Hallo,
Ich möchte mir die Zeile in der der Wochentag steht ausgeben lassen.
Wenn ich das ganze mit dem im Bsp.Skrip mache gibt mir Excel ein Fehler aus. Jedoch bei "manueller" Suche über "strg + H" wird der Tag gefunden!
Was mache ich falsch?
Danke fürs Reinschauen
viele Grüße
Steffen
https://www.herber.de/bbs/user/66871.xls

AW: Find Methode
Peter

Hallo Steffen,
Du solltest Dir die Find-Methode noch einmal genau ansehen
Option Explicit
Sub Datum_Finden()
Dim Tag As Long
Dim rZelle  As Range
With Sheets(1).Rows(1)
Set rZelle = .Find("Mo", LookIn:=xlValues, LookAt:=xlWhole)
If Not rZelle Is Nothing Then Debug.Print rZelle.Address(0, 0)
End With
End Sub
Gruß Peter
AW: Find Methode
Steffen

Hallo Peter,
Danke erst einmal fürs Reinschauen.
Die Zeile für das zusuchende Datum ist variable,so dass ich nicht den direkten Verweiß auf die Zeile machen kann,sie ist das Kriterium was ich suche.
Wenn ich in die Datumszeile nur "Mo" ohne Formatiertes Datum eingebe wird auch die Zeile ausgegeben?
Ich habe den Montag nur als Bsp genommen,alles was ich brauche ist die Zeile in dem die Wochentage angegeben sind.
Vielleicht gibt es auch eine andere Methode die Zeile zu finden in dem die Wochentage stehen...
Gruß Steffen
AW: Find Methode
Peter

Hallo Steffen,
meinst Du es so?
Sub Datum_Finden()
Dim rZelle  As Range
With Sheets(1).Cells
Set rZelle = .Find("Mo", LookIn:=xlValues, LookAt:=xlWhole)
If Not rZelle Is Nothing Then Debug.Print rZelle.Row & " / " & rZelle.Column
End With
End Sub

Gruß Peter
AW: Find Methode
Peter

Hallo Steffen,
da Du in den Zellen ja gar nicht Mo, sondern ein Datum stehen hast, musst Du wohl auch nach dem Datum und nicht nach Mo suchen, es sein denn Du arbeitest über die Weekday Funktion und suchst damit nach dem Wert für Mo = 2.
Gruß Peter
Kappes
Klaus-Dieter

Hallo Steffen,
da sich in den Zellen Datumseinträge befinden, die über die Zellformatierung als Mo, Di usw. ausgegeben werden, kann die Findmethode so etwas wie "Mo" natürlich nicht finden.
Viele Grüße Klaus-Dieter

Online-Excel
AW: Kappes ? Berg zum Ochs' :-)
Gerd

Hallo!
Sub Start_Suche()
Dim x As Variant, intCt as integer
x = Wochentag_in_Datum("Mo", ActiveSheet.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(1, ActiveSheet.Columns.Count).End(xlToLeft)))
For intCt = LBound(x) To UBound(x)
MsgBox "Spalte: " & x(intCt)
Next
End Sub
Public Function Wochentag_in_Datum(ByVal Wochentag As String, Bereich As Range) As Variant
Dim arr() As Variant
Dim rngCell As Range
Dim rngTag As Range
Dim strErster As String
Dim Spalte As Variant
arr() = Bereich.Value
For Each rngCell In Bereich
rngCell.Value = rngCell.Text
Next
Set rngTag = Bereich.Find("Mo", , xlValues, xlWhole)
strErster = rngTag.Address
Do
Spalte = Spalte & "," & rngTag.Column
Set rngTag = Bereich.FindNext(rngTag)
Loop While Not rngTag.Address = strErster
Bereich = arr
Wochentag_in_Datum = Split(Mid(Spalte, 2), ",")
End Function
Gruß Gerd
Ein Fünfzeiler vom Ochs?
Klaus-Dieter

Hallo,
oder so:
Sub test()
    sp = 1
    Do While sp < 15
        sp = sp + 1
        If Weekday(Cells(1, sp)) = 2 Then Cells(1, sp).Interior.ColorIndex = 4
    Loop
End Sub
Code eingefügt mit VBA in HTML 2.0.0.1
Viele Grüße Klaus-Dieter

Online-Excel
Danke an Alle Helfer!
Steffen

...
ich werde erst einmal die Lösungsvorschläge einzeln durchgehen .
viele Grüße
Steffen
AW: Nee, so nicht gemeint
Gerd

Hallo Klaus-Dieter,
wollte lediglich zeigen, dass man die Find-Methode(Ochs) zum Laufen kriegt, wenn man die Werte (Berg) passend macht. :-)
Gruß Gerd
AW: Nee, so nicht gemeint
Klaus-Dieter

Hallo Gerd,
hatte ich auch nicht ernsthaft angenommen. Ich wünsche dir einen guten Rutsch in das neue Jahr.
Viele Grüße Klaus-Dieter

Online-Excel