Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Makro wyszukujące w Excel

imeilik2000 22 Lis 2009 15:11 2656 1
  • #1 22 Lis 2009 15:11
    imeilik2000
    Poziom 1  

    Witam wszystkich bystrzaków.


    Sprawa jest następująca: posiadam plik w którym sa stworzone 33 arkusze (plik nosi nazwę "karty_kotlowe"), które są raportami pracowników. W kolumnie B, począwszy od komórki B6 znajdują się nazwy wyrobów które ma produkowac pracownik, w kolumnie K, analogicznie w komórce K6 wpisuję ile sztuk pracownik wykonał. Sprawa jest tego typu że mam równiż plik w którym mam zaplanowane ile sztuk powinien wykonać pracownik, aby zrealizowac zamówienie ( plik nazywa sie "przekładki"). Chcę aby makro automatycznie wyszukiwało w poszczególnych arkuszach pliku "karty_kotlowe" w kolumnie B, czy w pliku "przekładki" w kolumnie A znajduje się dany wyrób, i jesli znajduje się, to żeby automatycznie wpisał ilość sztuk z pliku "przekładki" z kolumny D. Problem jest jeszcze z tym że niektóre wyroby produkuje kilka pracowników FUNKCJA WYSZUKAJ PIONOWO odpada. :( Załączam pliki i poroszę o pomoc. Mam w firmi około 8000 pozycji i ciężko mi to wszystko klepać z ręki bo długo schodzi.

  • #2 14 Gru 2009 12:20
    wojtekcz
    Poziom 12  

    Jeżeli kilku pracowników wykonuje taki sam przedmiot to ilość przeniesiona z zamówienia będzie nieadekwatna do stanu rzeczywistego (trzeba sumować ich produkcję). Proponuję działanie w druga stronę. W pliku z zamówieniami dodać kolumny z pracownikami i tam przenieść ilości przez nich wyprodukowane. Wtedy łatwo operować danymi.

    popróbuj z takim makrem. Niestety nie mogę otworzyć twoich plików (xlsx) na tym komputerze :)
    Musisz popatrzyć na komentarze i odpowiednio pozmieniać sobie nr wierszy i kolumn.


    Mając wszystko w jednym pliku planowania możesz sobie te dane poprzenosić na karty pracowników (wyszukaj.pionowo)

    Powodzenia
    _____________________

    Option Base 1
    Sub aa()


    ' dwie tablice z uwagi na to że łatwiej będzie ci operować tablicami jednowymiarowymi, a dane są spójne
    Dim tablicaNazwa(8000) As String
    Dim tablicaIlosc(8000) As Integer
    Dim kp As Integer '

    kp = 56 'tu podaj nr kolumny w pliku zamówień gdzie można wpisać pierwszego pracownika w pliku zamówień


    'przełączenie na plik z pracownikami
    Windows("kartykotlowe").Activate
    ' pętla przez wsztstkie arkusze (wszystkich pracowników)
    For Each Worksheet In ActiveWorkbook.Worksheets
    pracownik = Worksheet.Name
    ' pętla przez wszystkie produkty
    For w = 1 To 8000
    tablicaNazwa(w) = Cells(w, "tu kolumna z nazwą wyrobu")
    tablicaIlosc(w) = Cells(w, "tu kolumna z iloscią wyrobu")
    Next w

    'przechodzimy na plik planowania
    Windows(przekladki).Activate


    For w = 1 To 8000 ' pętla przez wszystkie wyroby w pliku planowania
    nazwa = Cells(w + 1, k) ' zmień k na kolumnę dla nazwy wyrobu

    ' szukamy nazwy wyrobu w tablicy wyrobów tego pracownika
    For wt = 1 To UBound(tablicaNazwa)
    If nazwa = tablicaNazwa(wt) Then
    Cells(w, kp) = tablicaIlosc(wt)
    Exit For
    End If
    Next wt
    Next w


    Next
    End Sub

 
Promocja -20%
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
tme