Microsoft Excel

Herbers Excel/VBA-Archiv

Zelle finden

    Betrifft: Zelle finden von: Erich M.
    Geschrieben am: 06.10.2003 10:07:03

    Hallo zusammen,

    habe folgendes Makro, mit dem die Zelle gefunden wird,
    ab der in der nächsten Zeile mit dem kopieren begonnen wird:

    ' Finde den Beginn der einzufügenden Zelle
    LRowA2 = Cells(Rows.Count, 13).End(xlUp).Row
    For j = LRowA2 To 1
    If Cells(j, 13).Value = "2002" Then
    rgAnf2 = Cells(j, 13)
    Exit For
    End If
    Next j
    Cells(j + 1, 1).Select

    Nun besteht das Problem, dass in der Spalte 13 eine Formel
    =Jahr(D1) steht, mit der die Jahreszahl ermittelt wird.
    Wenn ich die Spalte 13 manuell "2002" eintrage findet er die zelle;
    über die Formel mit dem Ergebnis "2002" in Spalte 13
    findet er die Zelle nicht.

    Besten Dank für eine Hilfe!

    mfg
    Erich

      


    Betrifft: AW: Zelle finden von: Galenzo
    Geschrieben am: 06.10.2003 10:28:01

    Hallo,

    hier mein Vorschlag:

    Annahmen:
    1. in Spalte A stehen untereinander die Jahreszahlen
    2. in Zelle B2 steht die zu suchende Jahreszahl
    3. es soll die zelle unter der gesuchten Jahrszahl in Spalte A ausgewählt werden

    Lösung:
    Cells(1 + Application.Match(CDbl(Range("B1").Value), Columns(1), 0), 1).Select

    Viel Erfolg!


      


    Betrifft: AW: Zelle finden von: Erich M.
    Geschrieben am: 06.10.2003 10:33:37

    Hallo Galenzo,

    mein Problem ist, dass in Spalte B ca. 300 Zeilen gefüllt sind;
    davon sind ca. 250 mit der gesuchten Jahreszahl 2002 oder kleiner
    gefüllt und dann mit 2003 (aufsteigend sortiert).
    Nun bräuchte ich die Zelle mit der letzten Jahreszahl 2002 (als Formel).
    Ich hab den Code nicht getestet, da ich sonst meine Originaldaten gefährde
    und wollte vorsichtshalber nochmals nachfragen.
    Werde dann eine Testdatei erstellen.

    Vorab vielen Dank!

    mfg
    Erich


      


    Betrifft: AW: Zelle finden von: Galenzo
    Geschrieben am: 06.10.2003 10:55:46

    Hallo,
    da hast du Recht, meine Lösung funktioniert unter diesen Vorraussetzungen nicht.
    (Mal abgesehen davon ist es natürlich immer ratsam, bei solchen Versuchen nie mit den Originaldaten zu arbeiten!)
    Gut, dann nimm deinen Code, wenn er so funktioniert, ändere aber die Zeile
    If Cells(j, 13).Value = "2002" Then
    in
    If Cells(j, 13).Value = CDbl(Range("B1").Value Then
    bzw. statt B1 eben die Suchzelle, in welcher die zu suchende Jahreszahl steht.
    mfg


      


    Betrifft: AW: Zelle finden von: Erich M.
    Geschrieben am: 06.10.2003 11:03:28

    Hallo Galenzo,

    danke, aber die Zeile nimmt er mir nicht
    (auch nicht mit verschiedenen Änderungen).
    Muss ich evtl. das "Cbdl" definieren?

    mfg
    Erich


      


    Betrifft: AW: Zelle finden - abwärts zählen von: Galenzo
    Geschrieben am: 06.10.2003 11:15:48

    Ohne jetzt weiter an deinem Code rumzudoktorn:
    For j = Ilrowa2 To 1 Step -1


      


    Betrifft: Gemeinsam sind wir stark!! von: Erich M.
    Geschrieben am: 06.10.2003 11:28:28

    Hallo Galenzo,
    hall Beni,

    ein Mix ist die Lösung:

    Sub suchenzahl()
       Dim LRowA As Integer, LRowG As Integer, i As Integer
       Dim rgAnf As String
       Dim LRowA2 As Integer, LRowG2 As Integer, j As Integer
       Dim rgAnf2 As String
    
    ' Finde den Beginn der einzufügenden Zelle
    LRowA2 = Cells(Rows.Count, 13).End(xlUp).Row
    For j = LRowA2 To 1 Step -1
    
       If Cells(j, 13).Value = 2002 Then
          rgAnf2 = Cells(j, 13)
          Exit For
       End If
    Next j
    Cells(j + 1, 1).Select
    
    End Sub
    


    Besten Dank nochmals!!

    mfg
    Erich


      


    Betrifft: AW: Zelle finden von: Beni
    Geschrieben am: 06.10.2003 10:34:51

    Hallo Erich,
    probiere es ohne "
    Gruss Beni

    If Cells(j, 13).Value = 2002 Then


      


    Betrifft: AW: Zelle finden von: Erich M.
    Geschrieben am: 06.10.2003 10:52:17

    Hallo Beni,

    danke - hat leider auch nicht funktioniert,
    auch folgender Versuch nicht:
    If Cells(j, 13).Value = "=YEAR(RC[-9])" = "2002" Then

    Ich vermute, es liegt an dieser Zeile:
    LRowA2 = Cells(Rows.Count, 13).End(xlUp).Row

    weiss aber nicht wie ich sie ändern kann

    mfg
    Erich


      


    Betrifft: AW: Zelle finden von: Erich M.
    Geschrieben am: 06.10.2003 11:29:41

    Hallo Beni,

    siehe meine Antwort an Galenzo - DANKE!

    mfg
    Erich


     

    Beiträge aus den Excel-Beispielen zum Thema " Zelle finden"