Datum suchen Zeilennummer/Spaltnummer verwenden

  • Excel

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von EdgarKraft.

    Datum suchen Zeilennummer/Spaltnummer verwenden

    Moin,

    Ich versuche gerade Meine Excel Tabelle nach einem bestimmten Datum zu suchen.
    Leider Funktioniert das noch nciht so ganz.

    Mit diesem Code:

    Visual Basic-Quellcode

    1. Sub suchen()
    2. '
    3. ' suchen Makro
    4. Dim Ergebnis As Range
    5. Dim Datum As String
    6. Dim Heute As String
    7. Heute = F70
    8. Set Ergebnis = Worksheets("Kurse").Columns("E").Find(what:=Heute, Lookat:=xlWhole, LookIn:=xlValues)
    9. If Ergebnis Is Nothing Then
    10. MsgBox "Leider nichts gefunden"
    11. Else
    12. Text = Ergebnis.Column & " " & Ergebnis.Row
    13. MsgBox Text
    14. End If
    15. End Sub


    Wieso ich Heute mit einer bestimmten Zelle(In F70 steht die Formel =Heute()) deklariert habe? Weil ich wenn ich für Heute mit Date einsetzte findet er garnichts.
    Wenn ich die Suche jetzt so starte geht er die Spalte durch und finden mir die erste nicht gefüllte Zeile(Zeile 2-64 sidn mit Datum gefüllt, Zeile 65 erste leere Zeile) und diese Zeile 65 zeigt er mir als gefunden an.
    Die MsgBox habe ich nur eingefügt um zu überprüfen ob er mir die richtigen Zellen zeigt.

    Hat jemand eine Idee wie ich das Problem angehen kann?
    Ich würde gerne mit den Koordinaten der gefundenen Zellen weiter arbeiten.

    Achja ich benutze Excel 2011 für MAC

    Mit freundlichen Grüßen Edgar Kraft

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EdgarKraft“ ()

    Moin,

    Diesen Code habe ich auch gefunden nur leider ist mir nciht ganz klar wie ich dem Code meinen Zielech anpasse

    Dim Ergebnis As Range

    Worksheets("Kurse").Columns("E")
    Set Ergebnis = Find(what:=Date, Lookat:=xlWhole, LookIn:=xlFormulas)
    If Not Ergebnis is nothing then
    firstAddress = c.Adress -> Was genau soll ich hier beschreiben? was passieren soll wenn nichts gefunden wurde?
    Soll ich hier mein MsgBox "Leider nichts gefunden" einsetzten?
    Do
    Ergebnis.Value = 5 -> Hier wird ja die Anweisung gegeben alle werte die vorher 2 waren, werden durch 5 ersetzt
    -> Mein Ziel ist es aber die Adressen der gefunden Zellen weiter zu verarbeiten
    Text = Cells(Ergebnis.Row, 1) & " " & Cells(1,Ergebnis.Column) & " " & Cells(Ergebnis.Row, Ergebnis.Column)
    MsgBox = Text
    Ich würde aber gerne alle Ergebnisse in der MsgBox haben
    darüber hinaus die in die Zweite Tabelle zu kopieren(wobei das kopieren zweitrangig ist)

    Set Ergebnis = .FindNext(Ergebnis) -> Den Teil verstehe ich, Befehl nächsten Wert suchen

    Loop While Not c Is Nothing And c.Address <> firstAddress -> Den Teil verstehe ich leider nicht ganz, ist es der Befehl der sagt er soll so lange weiter
    suchen bis das Ergebnis wieder dem ersten Ergebnis entspricht?
    Habe versucht mein Code jetzt anzupassen:

    Visual Basic-Quellcode

    1. Sub suchen()
    2. '
    3. ' suchen Makro
    4. Dim Ergebnis As Range
    5. Set Ergebnis = Worksheets("Kurse").Columns("E").Find(what:=Date, Lookat:=xlWhole, LookIn:=xlFormulas)
    6. If Ergebnis Is Nothing Then
    7. MsgBox "Leider nichts gefunden"
    8. Do
    9. Dim LastKurs As Long
    10. LastKurs = Sheets("Anstehende_Aufgaben").Cells(Rows.Count, 2).End(xlUp).Row + 1
    11. Dim LastAufgabe As Long
    12. LastAufgabe = Sheets("Anstehende_Aufgaben").Cells(Rows.Count, 3).End(xlUp).Row + 1
    13. Dim LastDatum As Long
    14. LastDatum = Sheets("Anstehende_Aufgaben").Cells(Rows.Count, 4).End(xlUp).Row + 1
    15. Sheets("Anstehende_Aufgaben").Cells(LastKurs, 2) = Sheets("Kurse").Cells(Ergebnis.Column, 1)
    16. Sheets("Anstehende_Aufgaben").Cells(LastAufgabe, 3) = Sheets("Kurse").Cells(1, Ergebnis.Row)
    17. Sheets("Anstehende_Aufgaben").Cells(LastDatum, 4) = Sheets("Kurse").Cells(Ergebnis.Column, Ergebnis.Row)
    18. Loop While Not Ergebnis Is Nothing And Ergebnis.Address <> firstAddress
    19. End If
    20. End Sub

    Visual Basic-Quellcode

    1. Dim LastKurs As Long, LastAufgabe As Long, LastDatum As Long, Ergebnis As Range, FirstAddress As String
    2. Set Ergebnis = Worksheets("Kurse").Columns("E").Find(what:=Date, Lookat:=xlWhole, LookIn:=xlFormulas)
    3. If Ergebnis Is Nothing Then
    4. MsgBox "Leider nichts gefunden"
    5. Else
    6. FirstAddress = Ergebnis.Address
    7. Do
    8. MsgBox "gefunden in Zelle " & Ergebnis.Address
    9. LastKurs = Sheets("Anstehende_Aufgaben").Cells(Rows.Count, 2).End(xlUp).Row + 1
    10. LastAufgabe = Sheets("Anstehende_Aufgaben").Cells(Rows.Count, 3).End(xlUp).Row + 1
    11. LastDatum = Sheets("Anstehende_Aufgaben").Cells(Rows.Count, 4).End(xlUp).Row + 1
    12. Sheets("Anstehende_Aufgaben").Cells(LastKurs, 2) = Sheets("Kurse").Cells(Ergebnis.Column, 1)
    13. Sheets("Anstehende_Aufgaben").Cells(LastAufgabe, 3) = Sheets("Kurse").Cells(1, Ergebnis.Row)
    14. Sheets("Anstehende_Aufgaben").Cells(LastDatum, 4) = Sheets("Kurse").Cells(Ergebnis.Column, Ergebnis.Row)
    15. Set Ergebnis = Worksheets("Kurse").Columns("E").FindNext(Ergebnis)
    16. Loop While Ergebnis.Address <> FirstAddress
    17. End If
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --