Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA - kopiowanie do Arkuszy o wskazanej nazwie

Wronkej86 30 Lip 2017 19:53 621 3
  • #1 30 Lip 2017 19:53
    Wronkej86
    Poziom 2  

    Witam wszystkich. Potrzebuję napisać macro, w którym:
    1. Z Arkusza początkowego kopiuje wartości (nazwy dostawców) do osobnego Arkusza.
    2. Przycina te wartości do wskazanej ilości znaków (tak, żeby mogły stanowić nazwę Arkusza).
    3. Otrzymany wynik zwraca do pierwszego Arkusza w miejsce oryginalnych wartości.
    4. Wracamy do nowego arkusza, w którym nazwy były przycinane i usuwamy duplikaty.
    5. Zliczamy ile mam dostawców i tworzymy tyle nowych Arkuszy.
    6. Kazdy Arkusz nazywamy nazwą dostawcy.
    7. Usuwamy Arkusz pomocniczy.
    Do tego momentu udało mi się to zrobić
    8. Przeszukujemy Arkusz pierwszy po kolumnie z nazwą dostawcy.
    9. Jeśli znajdzie takiego dostawcę w którym nazwa zgadza się z nazwą Arkusza, wkleja cały wiersz do wskazanego Arkusza... i tu mam problem.

    Bardzo Was proszę o pomoc bo jest świeży w tym temacie.

    0 3
  • #2 31 Lip 2017 08:43
    czareqpl
    Poziom 28  

    Wronkej86 napisał:
    Bardzo Was proszę o pomoc bo jest świeży w tym temacie.

    Kto jest świeży w temacie?

    0
  • #3 31 Lip 2017 13:57
    Wronkej86
    Poziom 2  

    Udało mi się wybrnąć z poprzedniego tematu, ale pojawił się kolejny problem.

    Teraz kiedy mam już posortowane produkty po dostawcach potrzebuję dodać formułe, która w każdym Arkuszu będzie wykonywała kolejne czynności:
    1. Sortuje wiersze po dacie zamówienia.
    2. Sortuje wiersze po nazwie dostawcy.
    To już mam, macro teraz musi robić:
    3. Dla wszystkich komórek w Arkuszu formuła sprawdza wartości w kolumnie D (nazwa produktu).
    4. Jeśli znajdzie w dwóch sąsiadujących rzędach ten sam produkt - sprawdza ceny tych produktów.
    5. Jeśli cena jest taka sama - usuwa zdublowany rząd.
    6. Jeśli cena jest inna - formuła liczy procent zmiany ceny i wpisuje do kolumny G.

    Moje dotychczasowe wysiłki znajdziecie poniżej. Z góry dziękuję za pomoc.

    Dim Name As String
    Dim Name2 As String
    Dim Price As Integer
    Dim Price2 As Integer
    Columns("A:G").Sort key1:=Range("C2"), order1:=xlAscending, Header:=xlYes
    Columns("A:G").Sort key1:=Range("D2"), order1:=xlAscending, Header:=xlYes
    Cells.EntireColumn.AutoFit
    Range("D2").Select
    Name = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    Price = ActiveCell.Value
    ActiveCell.Offset(1, -1).Select
    Do While ActiveCell.Value <> Empty
    Name2 = ActiveCell.Value
    If Name2 = Name Then
    ActiveCell.Offset(0, 1).Select
    Price2 = ActiveCell.Value
    ActiveCell.Offset(0, -1).Select
    If Price2 = Price Then
    ActiveCell.EntireRow.Delete
    ActiveCell.Offset(-1, 0).Select
    End If
    Else
    Name = Name2
    Price = Price2
    End If
    ActiveCell.Offset(1, 0).Select
    Loop

    0
  • #4 02 Sie 2017 13:17
    JacekCz
    Poziom 35  

    Użyj bazy danych, bo to jest właściwe narzędzie.
    Temat staje się bardzo prosty, nawet banalny, żadne kopiowanie nie zachodzi tylko odczyty.

    0