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.

Excel 2003 makro "jeżeli istnieje to wykonaj"

Neexus 09 Paź 2009 14:30 5855 8
  • #1 09 Paź 2009 14:30
    Neexus
    Poziom 2  

    Zaimportowałem plik raportu miesięcznego magazynu do Arkusz1 , mam w nim trzy kolumny : nr dokumentu, nr zlecenia i wartość. W pliku występuje co losową ilość wierszy podsumowanie danego zlecenia. Potrzebuję makro wyszukujące wiersz w którym w komórce (pierwsza kolumna) wystąpi tekst „Razem konto” a następnie zostanie wykonane kopiowanie dwóch pozostałych komórek z tego wiersza (nr ogólny zlecenia i suma wartości) i wklejenie ich do Arkusz2 do wybranych przeze mnie komórek.

  • #2 09 Paź 2009 17:26
    adamas_nt
    Moderator Programowanie

    Neexus napisał:
    Trzeba to zrobić w pętli bo wierszy jest ponad 5000.
    Skąd ten wniosek? Wyniki można otrzymać wykorzystując "zwykłe" funkcje Excela. Pewnie konieczna byłaby kolumna pomocnicza, ale dałoby się...

  • #3 09 Paź 2009 19:02
    Neexus
    Poziom 2  

    sposób na pozyskanie wybranych danych z pliku/raportu do np sprawozdania w excelu jest moim zdaniem najbardziej potrzebną rzeczy jeśli mówimy o funkjonalności arkusza.
    Super by było wiedzieć jak to zrobić.

  • #4 09 Paź 2009 20:53
    adamas_nt
    Moderator Programowanie

    W przykładzie użyłem kolumny pomocniczej. Tu podpowiem: w komórkę E2 wklejasz formułę

    Code:
    =LICZ.JEŻELI(A$2:A2;"Razem konto")
    i przeciągasz w dół do końca zakresu.
    Na wynikach w tej kolumnie opierasz całą resztę. Najpierw funkcja PODAJ.POZYCJĘ, gdzie argumentem "wartość szukana" jest funkcja WIERSZ(). Jeśli komórka wynikowa ma być w drugim wierszu, to WIERSZ()-1 dla szukanej =1. Tablicę (drugi argument) w naszym przypadku to kolumna pomocnicza, możesz podać w adresach bezwzględnych i wtedy kopiując komórkę w dół zmienia się automatycznie wynik funkcji WIERSZ() i funkcja PODAJ.POZYCJĘ wyszukuje Ci pięknie kolejną liczbę w kolumnie E.
    Jeśli znasz już pozycję, to funkcją INDEKS przedstawiasz wynik z kolumny B. W kolumnach H i I to samo + funkcja PRZESUNIĘCIE. No, teraz już wiesz...

    Excel 2003 makro "jeżeli istnieje to wykonaj"

  • #5 11 Paź 2009 20:12
    marcinj12
    Poziom 40  

    A makrem to można np. tak:

    Code:

    Private Sub CommandButton1_Click()
    Set wsark1 = ThisWorkbook.Worksheets("Arkusz1")   'arkusz źródło
    Set wsark2 = ThisWorkbook.Worksheets("Arkusz2")   'arkusz cel

    poz = 2    'wiersz początkowy w arkuszu docelowym
    For i = 1 To 65536
        If wsark1.Cells(i, 1) = "Razem konto" Then
            wsark2.Cells(poz, 1) = wsark1.Cells(i, 2)
            wsark2.Cells(poz, 2) = wsark1.Cells(i, 3)
            poz = poz + 1
        End If
    Next i

    MsgBox "Kopiowanie zakończone"
    End Sub

  • #6 12 Paź 2009 08:00
    Neexus
    Poziom 2  

    to jest TO !
    genialne ! - działa dokładnie tak jak chciałem.
    Bardzo dziękuje wszystkim za pomoc i zaangażowanie.

  • #7 29 Sty 2015 11:51
    sidorowicz.t
    Poziom 2  

    Witam, potrzebuję pomocy
    potrzebuję makro które kopiowało by dane z kolumny A (tylko jeżeli obok w kolumnie coś jest) do drugiego arkusza do kolumny A, a te dane które zostały to do arkusza 3 w kolumne A

  • #8 29 Sty 2015 13:18
    -psiak-
    Poziom 32  

    Kod: vb
    Zaloguj się, aby zobaczyć kod

  • #9 29 Sty 2015 15:13
    sietas87
    Poziom 2  

    trafiłeś idealnie dzięki a ja jeszcze gafę strzeliłem bo na samym początku żeby usuwało duplikaty z kolumny A, ale żeby i usunęło również te dane z kolumny B (usuwamy duplikaty np. A2 zostanie usunięte i B2) a potem dopiero to co napisałeś

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