tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
437
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    stummal stummal ist offline Rookie
    Registriert seit
    Jul 2005
    Beiträge
    5
    Hi!

    Hat wer eine Ahnung wie ich den Befehl .Find so ändern kann das Excel statt nach unten nach oben durchsucht!?
    Hätte es mit SearchDirection:=xlPrevious statt SearchDirection:=xlNext probiert aber er sucht trozdem nach unten..

    Wäre toll wenn mir jemand helfen könnte!
    LG, Tanja
     

  2. #2
    Avatar von Yoah
    Yoah Yoah ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Ort
    Oberhausen
    Beiträge
    181
    Dieses Beispiel findet alle Zellen im Range von A1 bis A500 auf dem Worksheet und ersetzt die 2 mit der 5. FindNext ist eigentlich als Default-Wert eingestellt, so das immer vorwärts gesucht wird und nicht Rückwärts.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    With Worksheets(1).Range("a1:a500")
    Set c = .Find(2, lookin:=xlValues)
    If Not c Is Nothing Then
    firstAddress = c.Address
    Do 
    c.Value = 5
    Set c = .[b]FindNext[/b](c)
    Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
    End With
     
    Ich tu nur so!
    ------------------------------------------------------------------------------------
    Es werden zu jeder Zeit Online Redakteure, Interviewer, NewsSchreiber und
    Metal - Interessierte für das online Magazin Metal2Metal (http://www.metal2metal.de) gesucht!

  3. #3
    Avatar von Orakel
    Orakel Orakel ist offline Mitglied Brokat
    Registriert seit
    Aug 2004
    Beiträge
    472
    Hi stummal

    Erzeuge Dir mal ne kleine Tabelle, in der in Spalte A verschiedene Werte stehen. Achte darauf, dass die Einträge mehrmals vorkommen. Dann erzeuge ein neues Modul, und kopiere unten stehenden Code hinein.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    
    Option Explicit
     
    Private Sub SearchTest(ByVal bForward As Boolean, ByVal nOutputRow As Integer)
        Dim nZielZeile              As Integer  ' Zeile für die Ausgabe
        Dim oRange                  As Range    ' Range Objekt für die Suche
        Dim szFirstAddress          As String   ' erste Fundstelle
        Dim szSuchwert              As String   ' Suchbegriff
     
        Rem ===================================================
        Rem == Suchwert aus aktuellem Sheet merken. Verarbei-==
        Rem == tungsvaribalen initialisieren.                ==
        Rem ===================================================
        szSuchwert = Cells(1, 2).Value
        nZielZeile = 1
     
        Rem ===================================================
        Rem == Suchbereich festlegen und Werte suchen.       ==
        Rem ===================================================
        With Range("A1:A400")
            Set oRange = .Find(szSuchwert, ActiveCell, _
                LookIn:=xlValues, SearchDirection:=IIf(bForward, xlNext, xlPrevious))
            szFirstAddress = ""
     
            Rem ===============================================
            Rem == Schleife um in Quelle alle Einträge zu    ==
            Rem == suchen.                                   ==
            Rem ===============================================
            While Not oRange Is Nothing And szFirstAddress <> oRange.Address
                Rem ===========================================
                Rem == Da dieser sch... Findbefehl loopt,    ==
                Rem == merken wir uns die erste Fundstelle   ==
                Rem ===========================================
                If szFirstAddress = "" Then
                    szFirstAddress = oRange.Address
                End If
                Cells(nZielZeile, nOutputRow).Value = oRange.Address
                
                Rem ===========================================
                Rem == Und weitersuchen in Quelldatei.       ==
                Rem ===========================================
                nZielZeile = nZielZeile + 1
                Set oRange = IIf(bForward, .FindNext(oRange), .FindPrevious(oRange))
            Wend
        End With
    End Sub
     
    Public Sub CallSearch()
        Call SearchTest(True, 4)
        Call SearchTest(False, 5)
    End Sub

    Nun trägst Du in Zelle B1 den zu suchenden Wert ein; drückst ALT-F8 und führst das Makro "CallSearch" aus. Das Problem ist, dass Du schon angeben must, wo die Suche beginnen soll.
    Code :
    1
    2
    
    Set oRange = .Find(szSuchwert, [color=blue]ActiveCell[/color], _
                LookIn:=xlValues, SearchDirection:=IIf(bForward, xlNext, xlPrevious))
    Wenn Du also das Makro mehrmals ausführst, und dabei vorher immer wieder eine andere Zelle in der Spalte A wählst, kannst Du sehen, wie der Find korrekt funktioniert.

    Gruß
    Das Orakel
     
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
                      \\\\|////
                      \\ _ _ //
                       ( o o )
    ================oOOo-(_)-oOOo==================
    [COLOR=blue]    The next time you think you are perfect,
               try walking on water[/COLOR]
    ========================Oooo===================
                      oooO  (  )
                      (  )  ) /
                       \ ( (_/
                        \_)
    Vorsicht dieser Link ist bissig :)

Ähnliche Themen

  1. nach oben
    Von adelheid im Forum 3D-Stills
    Antworten: 12
    Letzter Beitrag: 20.08.07, 09:07
  2. Der lange Weg nach oben
    Von saschaf im Forum Fotografie
    Antworten: 6
    Letzter Beitrag: 20.08.05, 13:04
  3. Textfeld springt nach oben nach dem Einfügen eines Tags
    Von amon-ra im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 23.05.05, 12:07
  4. Nach Iframe laden, wieder nach oben scrollen
    Von MediaPlanet im Forum HTML & XHTML
    Antworten: 7
    Letzter Beitrag: 28.08.03, 22:15
  5. wie beweg ich ein image nach rechts und nach oben********?
    Von superbodo im Forum Delphi, Kylix, Pascal
    Antworten: 5
    Letzter Beitrag: 27.02.03, 17:04