Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wyszukiwanie numerów na liście

karolczyzycki 27 Sie 2009 08:12 1049 6
  • #1 27 Sie 2009 08:12
    karolczyzycki
    Poziom 20  

    Witam.
    Chciałbym zrobić w excelu makro, lub jeśli da się łatwiej to formułę. Do takiego zadania.
    Mam w pliku listę 100 numerów seryjnych w kolumnie.
    Chcę do jednej komórki skanować numer seryjny, jeśli jest on na liście, w komórce obok numeru pojawi się np. napis "OK" i znów jest gotowy do skanowania.
    Tak żeby to było maksymalnie łatwe: skanuję (enter), wpisuje się "OK", gotowy do skanowania.
    Trochę to trudne do opisania, ale myślę że się wyjaśni z czasem.

  • Pomocny post
    #2 27 Sie 2009 10:04
    vampire86
    Poziom 35  

    Kolumna A - numery seryjne (dajmy na to od A1 do A100).
    Komórka B1 - miejsce do wpisywania poszukiwanego numeru.
    Komórka C1 - Formuła:

    Code:
    =JEŻELI(LICZ.JEŻELI(A1:A8;B1)=1;"JEST";"NIE MA")

    W komórkę B1 skanujesz kod, następnie Enter - a komórka C1 od razu wyświetla czy dany kod jest na liście czy go nie ma.

  • #3 27 Sie 2009 10:20
    karolczyzycki
    Poziom 20  

    To działa, ale dokładniej chodzi mi o to żeby obok tej komórki z numerem wpisało się np. JEST.
    Skanuję kolejny numer do B1, i obok kolejnego numeru wpisuje się JEST.
    Coś takiego:
    Wyszukiwanie numerów na liście

    itd... itd...



    Zrobiłem to ręcznie i nagrałem makro
    1. Ctrl + F
    2. Wpisałem numer (kursor ustawił się na komórce z numerem)
    3. Przesunąłem kursor na komórkę obok i wpisałem OK

    Ale gdy odtwarzam makro, działa ono tak, że OK wpisuje zawsze w tej samej komórce, a ja potrzebuję żeby wpisywał w komórkę obok, przy numerze jaki jest zeskanowany do C3
    Treść makra:

    Code:

        Cells.Find(What:=C3, After:=ActiveCell, LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Activate
        Range("B5").Select
        ActiveCell.FormulaR1C1 = "OK"
        Range("C3").Select
    End Sub

  • Pomocny post
    #4 27 Sie 2009 19:27
    adamas_nt
    Moderator Programowanie

    W C1 wpisz

    Code:
    =JEŻELI(WIERSZ()=PODAJ.POZYCJĘ(B$1;A$1:A$100);"Jest";"")
    i skopiuj/przeciągnij w dół.

    Gdyby warunkować jeszcze brak danych wtedy
    Code:
    =JEŻELI(CZY.BŁĄD(JEŻELI(WIERSZ()=PODAJ.POZYCJĘ(B$1;A$1:A$100);"Jest";""));"";JEŻELI(WIERSZ()=PODAJ.POZYCJĘ(B$1;A$1:A$100);"Jest";""))

  • #5 27 Sie 2009 19:51
    karolczyzycki
    Poziom 20  

    Działa prawie jak trzeba, jeśli w B1 wpiszę numer to obok numeru pojawia się to "Jest"
    Ale problem w tym że jak w B1 wpiszę inny, to "Jest" znika z poprzedniej pozycji i pojawia się w nowej.
    Ja bym potrzebował żeby to "Jest" zostało...
    Czyli skanuje numer, obok niego w kolumnie pojawia się "Jest", skanuje następny pojawia się drugie "Jest" itd się zaznacza

  • Pomocny post
    #6 27 Sie 2009 20:02
    adamas_nt
    Moderator Programowanie

    No to już tylko makro. Np takie

    Code:
    Sub Wpisz_Jest()
    
        Columns("A:A").Select
        On Error Resume Next
        wiersz = Selection.Find(What:=Range("B1"), After:=ActiveCell, LookAt:=xlWhole).Row
        Cells(wiersz, 3) = "Jest"
        Cells(1, 2).Select
    End Sub

    Możesz je umieścić w kodzie arkusza (przy zdarzeniu)
    Code:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    If Target.Row = 2 And Target.Column = 2 Then
        'Tutaj
    End If
    End Sub
    i jeśli komórka aktywna to B2, uruchomi się makro.

  • #7 27 Sie 2009 21:04
    karolczyzycki
    Poziom 20  

    Wielkie dzięki, działa jak trzeba.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME