Telefonszámunk: 1-472-0679

Egyszerű kereső

Kezdőlap Fórumok Excel programozás Egyszerű kereső

3 bejegyzés megtekintése - 1-3 / 3
  • Szerző
    Bejegyzés
  • #2501
    7even
    Felhasználó

      Sziasztok! Szia Imre!

      Segítséget szeretnék kérni, egy kis kereső rutin kódjával kapcsolatban. Kicsit elakadtam.
      A lényeg, hogy az alábbi rutin egy inputbox-ban bekért szövegrészt megkeres az egész munkafüzetben, majd kiírja a a talált cellák címét az A oszlop usedrange alatti cellákba (kb olyasmit szeretnék mint a CTRL + F All Find beépített funkció) viszont végtelen ciklusba megy, ami teljesen egyértelmű, de nem tudom, hogyan lehetne elérni, hogy kilépjen a ciklusból, ha már végigment az utolsó nem üres cellán is. 🙁
      Ha valaki tud segíteni előre is nagyon köszönöm.
      A kód eddig:

      Sub cellakereso()

      Dim Sh As Worksheet
      Dim keresett As Range
      Range(„A1”).Select
      For Each Sh In ThisWorkbook.Worksheets
      With Sh.UsedRange
      Set keresett = .Cells.Find(What:=InputBox(„Mit keresünk?”))
      If Not keresett Is Nothing Then
      Do Until keresett Is (…na ide kellene talán, hogy meddig…)
      Cells(ActiveCell.CurrentRegion.Cells(ActiveCell.CurrentRegion.Cells.Count).Offset(1, 0).Row, ActiveCell.Column).Select
      Selection.Value = keresett.Address
      Set keresett = .FindNext(keresett)

      Loop
      End If
      End With
      Set keresett = Nothing
      Next

      End Sub

      #2502
      horvimi
      Adminisztrátor

        Szia!

        Ott keresd a problémát, hogy nézd meg, hogy működik a keresés, amikor kézzel keresel.
        Amikor minden előforduláson átmentél a „Következő” gombbal, akkor elkezdi a keresést elölről, és újra az első találatra ugrik. Ezért a .find – .findnext ciklusoknál azt csinálják, hogy megjegyzik az első találat (.find) celláját, és a ciklus addig fut, amíg a .findnext újra az elsőnek megtalált cellára ugrik.

        Itt van két link, tanulmányozd:
        http://www.ozgrid.com/forum/showthread.php?t=168157
        http://www.ozgrid.com/forum/showthread.php?t=37604

        Még okozhat esetleg további problémát az, hoyg a találatok A oszlop végére írásánál SELECT-et használsz. meg kéne próbálni select nélkül, egyből beleírni.

        Cells(ActiveCell.CurrentRegion.Cells(ActiveCell.CurrentRegion.Cells.Count).Offset(1, 0).Row, ActiveCell.Column).Value = keresett.Address
        

        Imre

        • A hozzászólás módosításra került: 8 years, 2 months telt el-horvimi.
        • A hozzászólás módosításra került: 8 years, 2 months telt el-horvimi.
        #2508
        7even
        Felhasználó

          Igen gondoltam, hogy a SELECT is okozhat problémát, hiszen az aktiválja a cellát. Így viszont szuper és tökéletesen működik. Nagyon szépen köszönöm! 🙂

        3 bejegyzés megtekintése - 1-3 / 3
        • Be kell jelentkezni a hozzászóláshoz.