Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Image
BildScreenshot zu Image Image-Seite mit Beispielarbeitsmappe aufrufen

Find Methode | Herbers Excel-Forum


Betrifft: Find Methode von: Steffen
Geschrieben am: 29.12.2009 17:13:10


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

  

Betrifft: AW: Find Methode von: Peter Feustel
Geschrieben am: 29.12.2009 17:45:06

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


  

Betrifft: AW: Find Methode von: Steffen
Geschrieben am: 29.12.2009 18:13:30

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


  

Betrifft: AW: Find Methode von: Peter Feustel
Geschrieben am: 29.12.2009 20:46:27

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


  

Betrifft: AW: Find Methode von: Peter Feustel
Geschrieben am: 29.12.2009 21:37:58

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


  

Betrifft: Kappes von: Klaus-Dieter
Geschrieben am: 29.12.2009 19:09:33

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

Klaus-Dieter's Excel und VBA Seite
Online-Excel



  

Betrifft: AW: Kappes ? Berg zum Ochs' :-) von: Gerd L
Geschrieben am: 29.12.2009 21:12:29

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


  

Betrifft: Ein Fünfzeiler vom Ochs? von: Klaus-Dieter
Geschrieben am: 29.12.2009 21:35:43

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

Klaus-Dieter's Excel und VBA Seite
Online-Excel



  

Betrifft: Danke an Alle Helfer! von: Steffen
Geschrieben am: 29.12.2009 21:52:28

...

ich werde erst einmal die Lösungsvorschläge einzeln durchgehen .


viele Grüße

Steffen


  

Betrifft: AW: Nee, so nicht gemeint von: Gerd L
Geschrieben am: 29.12.2009 22:20:43

Hallo Klaus-Dieter,

wollte lediglich zeigen, dass man die Find-Methode(Ochs) zum Laufen kriegt, wenn man die Werte (Berg) passend macht. :-)

Gruß Gerd


  

Betrifft: AW: Nee, so nicht gemeint von: Klaus-Dieter
Geschrieben am: 29.12.2009 22:33:30

Hallo Gerd,

hatte ich auch nicht ernsthaft angenommen. Ich wünsche dir einen guten Rutsch in das neue Jahr.



Viele Grüße Klaus-Dieter

Klaus-Dieter's Excel und VBA Seite
Online-Excel



Beiträge aus den Excel-Beispielen zum Thema "Find Methode"