napisał: admin postów: 613
umieszczony: 1 marca 2009 21:40
edytowany: 1 marca 2009 21:42
|
|
Napisałem wyraźnie o nowym wątku.
A ty się upierasz wszystko pisać w starym.
Nowy temat=nowy wątek
Popraw się, bo dostaniesz bana. |
|
napisał: an_woj postów: 16
umieszczony: 1 marca 2009 21:36
|
|
znalazłem w ksiażce VB6, ostatnia modyfikacja:
s = FileDateTime("D:\Folder\Plik.xls")
MsgBox "Ostatnia modyfikacja pliku :" & s
to jednak nie to o co mi chodzi. |
|
napisał: an_woj postów: 16
umieszczony: 1 marca 2009 19:04
|
|
OK. Działa.
niedawno na innym forum krytykowano mie za mnożenie wątków więc tu kontynuuję mój stary choć temat nieco inny.
Makro o którym piszę już działa jednak szablon dla arkuszy z danymi powstał niedawno. W poprzednim szablonie nie było informacji które pozwalają opracować dane. Tu właśnie potrzebna jest informacja o dacie utworzenia pliku.
Otwieranie plików powoduje wydłużenie czasu przetwarzania a obrabiane jest jednorazowo kilkadziesit plików z tysicami danych. |
|
napisał: admin postów: 613
umieszczony: 1 marca 2009 18:38
|
|
Po pierwsze wypadałoby do tego posta otworzyć nowy wątek.
Po drugie - sprawa jest banalna, wystarczy przeczytać pomoc w Excelu dotyczącą metody Close:
ThisWorkbook.Close False
Daj znać, czy działa. |
|
napisał: an_woj postów: 16
umieszczony: 1 marca 2009 18:16
edytowany: 1 marca 2009 18:18
|
|
Witam po długiej przerwie. Z makrami Excel radzę sobie nieco lepiej jednak mam kolejne pytania:
1. Jak z poziomu makra Excel pobrać dane (konkretne komórki) z plików *.xls bez ich otwierania.
2. Jak sprawdzić datę utworzenia pliku z którego chcę pobrać dane.
3. Jak zamknć plik bez możliwości jego zapisu. Próbowałem:
ThisWorkbook.Saved = False
ThisWorkbook.Close
jadnak mimo to pyta czy zapisać zmiany w pliku. Chcę aby użytkownik makra nie miał takiej możliwości bo wynikiem pracy makra jest nowo utworzony dokument.
pozdrawiam |
|
napisał: an_woj postów: 16
umieszczony: 2 września 2006 15:29
|
|
W otwarciu wątku pisałem że makra robię okazjonalnie. Robię to w trybie "visual". Tu przydaje się Visual Basic 6 z którym miewam kontakt (wersja demo). Jeśli chodzi o kontrolki to np. OLE, pozwalająca otworzyć dokumenty innych programów. DTPicker, adoptowałem z innego programu. Nie wiedziałem o tym że makro nie zachowuje kontrolek i okazało się że nie działa na innym komputerze.
Karta eksponatu (mój przypadek, tak sobie to nazwałem) to dokument Worda z dokładnym opisem i miniaturami zdjęć w miarę możliwości estetycznie opracowany. W przypadku próby wymiany czy chęci zaprezentowania w miejscu gdzie nie ma komputera, łatwo taki dokument wydrukować. Zdjęcia mają wstawione hiperłącza, można je bez szukania zobaczyć w pełnej wielkości.
Tworzone makro pozwoli mi szybko znajdować karty pogrupowane tematycznie, przeglądać najważniejsze dane otwierać znajdujące się w katalogu, dodawać nowo utworzone i zmieniać lub rozszerzać opisy.
Andrzej |
|
napisał: Trebor postów: 1209
umieszczony: 2 września 2006 15:06
|
|
Można jeszcze tak:
Application.Visible = False
i mamy czysto na pasku. Przed testowaniem sugeruję otworzyć Edytor VBA aby bezproblemowo zamienić False na True i przywrócić widzialność. |
|
napisał: Trebor postów: 1209
umieszczony: 2 września 2006 09:37
|
|
Już, ktoś mi zwrócił uwagę, że używam skrótów myślowych co potwierdza Twój post. Excel ma jedną bardzo przydatną funkcjonalność, która nawet zaawansowanemu użytkownikowi oddaje nieocenione usługi. Jest to możliwość rejestracji czynności w aplikacji. Wyświetl w excelu pasek VBA. Na nim znajdziesz ikonki do nagrywania. Po zakończeniu wystarczy "odcedzić" w nagranym makrze istotne komendy od przypadkowych i dodatkowo poczytać o nich w pomocy. Oczywiście tą metodą nie da się nagrać np. pętli i wielu innych funkcji ale i tak jest to przydatne narzędzie.
Jakich kontrolek brakuje Ci VBA?
Co to są karty eksponatu? |
|
napisał: an_woj postów: 16
umieszczony: 1 września 2006 23:50
|
|
I znów działa ale w wersji z wyborem arkusza. Zmienną chyba zle usytuowałem w wierszu. Trochę bawiłem się VB dla Windows i w VBA brakuje mi kontrolek. To jest powodem moich kłopotów. Wszystkie formatki które przygotowałem na potrzeby katalogu zbiorów działają nienagannie. Są to: start z wyborem, wprowadzanie danych, wprowadzanie zmian, wyszukiwanie i podgląd, teraz już otwieranie kart eksponatu. Pozostało wygładzenie całości które da wrażenie pracy w aplikacji Windows.
Idzie o to aby po starcie makra, okno Excela zostało ukryte lub zminimalizowane a po zamknięciu makra, Excel został zamknięty po zapisaniu zmian w arkuszach. |
|
napisał: Trebor postów: 1209
umieszczony: 1 września 2006 22:47
|
|
Inny arkusz w excelu możesz wybrać:
Sheets("nazwa").Select
Sheets(1).Select
jednak aby się odwołać do komórki w innym arkuszu nie trzeba go wybierać wystarczy np. tak
zmienna = Sheets("nazwa").Range("A1") |
|
napisał: an_woj postów: 16
umieszczony: 1 września 2006 22:37
|
|
Wspaniale, o to mi chodziło. Adres komórki zastąpiłem zmienną. Działa, jednak jak wybrać inny arkusz.
Mam jeszce inne pytania ale to później. Nie jestem Napoleonem, nie potrafię zajmować się wieloma wątkami jednocześnie. |
|
napisał: Trebor postów: 1209
umieszczony: 1 września 2006 21:14
|
|
Hej
Może tak:
Dim appWD As Object
Set appWD = CreateObject("Word.Application")
appWD.Visible = True
'w komórce a1 ścieżka
appWD.Documents.Open Filename:=Range("A1").Value, ReadOnly:=True
Pozdrawiam |
|
napisał: an_woj postów: 16
umieszczony: 1 września 2006 20:57
|
|
Witam
Jestem tu nowym. Makra robię okazjonalnie.
Zrobiłem coś w rodzaju katalogu zbiorów kolekcjonerskich. Karty prezentujące eksponat mam przygotowane w Wordzie. Nie mogę sobie poradzić z otwieraniem w nowym oknie plików Worda z makra zrobionego w Excelu. Ścieżki dostępu zapisywane są w jednej z komórek.
Czy Możecie mi doradzić (przykładowy kod)?
Andrzej |
|
wstecz 1 dalej wszystkich stron: 1
|