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

Makro Excel - przenoszenie wybranych komórek miedzy skoroszytami

23 Sty 2014 17:31 1617 8
  • Poziom 6  
    Witam
    Potrzebuje pomocy z excelem, mecze się już parę dni i nie mogę sobie poradzić, przeczytałem juz wszystkie posty i nic.
    Mam dwa skoroszyty - jeden z nich nazywa się Baza/Arkusz1 i znajdują się w nim dane do skopiowanie do innego skoroszytu (bieżacy arkusz Menu). Jednak kopiuje tylko wybrane komórki (które spełniają odpowiednie warunki). Ponizej załączam kod, praktycznie wszytko działa ale jak w arkuszu Baza jest dużo wierszy zaczynają się dziać cuda. Przyciski które naciskam z bieżacego arkusza nagle znikają muszę wyjść z arkusza i wejść ponownie. Jak inaczej napisać to makro aby wykonywało sie ono bez problemów.
    Pozdrawiam




    fpath = ActiveWorkbook.Path
    fname = ActiveWorkbook.Name


    Workbooks.Open FileName:=fpath & "\Baza.xlsx"
    Set wksdo = Workbooks(fname).Sheets("Menu")
    Set wksz = Application.Workbooks("Baza.xlsx").Sheets("Arkusz1")

    wksz.Activate
    Cells(4, 1).Select



    y = 10
    x = 4

    Do

    If Cells(x, 7).Value = "AKTUALNY" And Cells(x, 15).Value = "Indywidualny" Then
    wksz.Cells(x, 1).Copy wksdo.Cells(y, 2)
    wksz.Cells(x, 9).Copy wksdo.Cells(y, 3)
    wksz.Cells(x, 10).Copy wksdo.Cells(y, 4)
    wksz.Cells(x, 2).Copy wksdo.Cells(y, 5)
    wksz.Cells(x, 6).Copy wksdo.Cells(y, 6)
    wksz.Cells(x, 8).Copy wksdo.Cells(y, 7)
    y = y + 1
    End If
    x = x + 1
    Loop Until Cells(x, 1).Value = ""

    koniec:
    wksz.Activate
    ActiveWorkbook.Close SaveChanges:=False
    Set wksz = Nothing
    Set wksdo = Nothing

    Sheets("Menu").Select
  • Specjalista - VBA, Excel
    Witam
    Dim wksz As Worksheet, wksdo As Worksheet - definicje były?
    pozek37 napisał:
    Baza/Arkusz1 i znajdują się w nim dane do skopiowanie
    Formuły są tam?
    Cytat:
    ale jak w arkuszu Baza jest dużo wierszy
    około ile?
  • Poziom 6  
    defincje wksz as worksheet oczywiście były,
    dużo wierszy to już ok 200 (jesli ogranicze pętle Do - do na przykład x=5 wtedy też jakby lepiej działa jak jest wiecej to nawet cały widok czasem sie nie odswieża - skopiowana tabela sie wogóle nie pokazuje, muszę kliknąc 2 razy (dokładnie 2 razy) na jakąś komórke i wtedy pokazują sie skopiowane wiersze - tak jakby coś sie zawieszało i czekało na zakończenie
    problemy zauważyłem w excel 2010, na 2007 działa jakby lepiej
  • Specjalista - VBA, Excel
    Nie wiem... To makro na Excel2003 już 11 tysięcy wierszy zrobić. Baza w 65 tysięcy, wszystkich formuł
    złożonych formuł w bazie danych?
  • Poziom 6  
    Tu mam wrażenie że jest coś z synchronizacją pomiędzy zamykaniem pliku i kończeniem makra, tak jakby zamykanie pliku trwa a on już skończył makro i dlatego się widok nie odświeża a przycisk cały czas jest jakby wduszony - nie odciska się, i wtedy czegoś mu brakuje, szukam sposobu by je jakoś zatrzymać może jakiś pasek postępu
  • Specjalista - VBA, Excel
    Gdzie jest przycisk? w arkuszu? Czy w formie?

    Jeśli podstawą wielu formuly, a następnie na początku
    Application.Calculation = xlCalculationManual
    a na koniec
    Application.Calculation = xlCalculationAutomatic
  • Poziom 40  
    Proponuję by autor topika dodał jakiś załącznik może być bez danych (aby były jakieś przykładowe) - łatwiej wtedy pomóc. Nie każdy jest wróżką i jasno wie gdzie co jest.
  • Specjalista - VBA, Excel
    Na Excel2007 działa dobrze, 1.3 sek. (góry dwa przyciski)
    jeden warunek:
    to nie działa
    Kod: vb
    Zaloguj się, aby zobaczyć kod