Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Excel - makro - czyszczenie komórek
anonim




Typ: Nie zarejestrowany
Excel - makro - czyszczenie komórek

Jestem zupełnym dyletantem w temacie "makro". Coś mnie podkusiło, żeby posłużyć się nim po amatorsku. No i ... jest tak:

Zrobiłem arkusz kalkulacyjny. Stanowi go szereg tabel powiązanych ze sobą formułami. Mieszczą się na 660 wierszach - czyli sporo.
Poszczególne tabele posiadają komórki przeznaczone do wypełniania (pozostałe są zablokowane). Aby móc wpisywać dane w komórkach do tego przeznaczonych utworzyłem makro, które "czyści" te komórki. Zrobiłem to za jednym zamachem: trzymałem ctrl i zanaczałem kolejne komórki, przesuwając się po arkuszu suwakiem aż do ostatniego wiersza (660) No i teraz, gdy uruchamiam makro, efekt jest dość kiepski bo na ekranie widać skaczący w szybkim tempie arkusz (trwa to kilka sekund).
Czy jest możliwość takiego skonstruowania makra, żeby jego uruchomienie czyściło w tabelach komórki ALE BEZ TYCH SKOKÓW?

Podkreślam: jestem amatorem, więc o ile rozwiązaniem miałby być np kurs VBA to ... klapa! A może znajdzie się jakaś łopatologiczna podpowiedź?

PS Chylę czoła przed tymi, którzy umieją w pełni wykorzystać excela!!

27-04-2005 17:51
  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

W swoim makrze masz na 100% coś w tym stylu:
Cells(1,3).Select
Selection.ClearContents

lub

Range("A1:A15".Select
Selection.ClearContents

Żeby makro nie skakało zrób tak:

Range("A1:A15".ClearContents
Range("A20:A35".ClearContents
Range("A40:A55".ClearContents
Range("A6:A75".ClearContents


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

27-04-2005 18:18
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
anonim




Typ: Nie zarejestrowany

No, jest o wiele, wiele lepiej! Skakanie nie trwa już kilka sekund, ok. 1 sekundy!
Być może przyczyną jest skokowe przewijanie arkusza przy tworzeniu makra?
Poniżej przedstawiam jak to u mnie wygląda (powycinałem adresy długich ciągów komórek, bo wyglądałoby tu mało śmiesznie ;-) )

Range( _
        "C7:T7,(skracam)B48:R51,T48:W51" _
        ).ClearContents
    Range("T48".Activate
    ActiveWindow.LargeScroll Down:=1
    Union(Range( _
        "X92,M93:N93,(skracam)T45:W45" _
        ), Range( _
        "B48:R51, (skracam)T75:W82,F92,L92,S92" _
        )).ClearContents
    Range("T104".Activate
    ActiveWindow.LargeScroll Down:=1
    Union(Range( _
        "X92,M93:N93,skracamT164:W166" _
        ), Range( _
        "B170:R172, (...)"

itd itd itd (wierszy z tekstem "ActiveWindow.LargeScroll Down:=1" mam 9)

Jeśli i to udałoby się jakoś rozwiązać to byłoby wspaniale. Jeśli jednak będzie się to wiązało z "wyższą szkołą jazdy" - to trudno... :-(

Ale już teraz poprawiam się - KŁANIAM SIĘ W PAS!! ("chylę czoła" to zbyt mało!)

27-04-2005 18:58
  
adalek




Typ: neutral
Postów: 54
Zarejestrowany: Jan 2005

wywal wiersze:
ActiveWindow.LargeScroll Down:=1 i
Range(tu adres komorki).Activate

a w ogole to na samym poczatku makra, zaraz po linijce SUB dopisz:

application.screenupdating false

i pozamiatane

27-04-2005 19:18
Pokaż profil adalek  Wyślij email do adalek   
anonim




Typ: Nie zarejestrowany

Po stokroć - DZIĘKI, DZIĘKI, DZIĘKI!!! - będę mógł ten arkusz pokazać ludziom, nie wstydząc się!!

PS
Nie rejestrowałem się na Forum, gdyż nie przewiduję, bym odważył się jeszcze kiedykolwiek grzebać w makrach (choć znam takich, którzy excela znają mniej niż ja).
Chociaż... "nigdy nie mów nigdy!"
Pozdrawiam Was!!

27-04-2005 19:47
  
anonim




Typ: Nie zarejestrowany

Wróciłem prędzej niż zakładałem. A powód jest banalny (nie dla mnie - dyletanta).
Skoro moja amatorszczyzna jako-tako funkcjonuje to chciałbym ją zabezpieczyć.
Zahasłowałem arkusz i skoroszyt, ale zorientowałem się, że makra w VB są dostępne do edycji i byłoby źle, gdyby dyletanci więksi niż ja, którzy będą z pliku korzystali, nie sknocili czegoś, choćby przypadkowo.
Jak te makra zabezpieczyć hasłem? Sam próbowałem tak w VBA: Tools > VBAProject Properities > Protection - i sądziłem, że ustawienie tu hasła załatwi sprawę. Niestety - NIE!!

30-04-2005 19:53
  
anonim




Typ: Nie zarejestrowany

Uff! Poradziłem sobie sam! Okazało się, że podany powyżej sposób (ścieżka) jest dobry - należało tylko zamknąć skoroszyt, a po ponownym otwarciu hasło skutkuje!!!

01-05-2005 01:08
  
Wszystkich odpowiedzi: 6 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1