Uruchomienie okna przy otwarciu dokumentu.

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
michal.s
Posty: 86
Rejestracja: pn sty 23, 2012 6:55 pm

Uruchomienie okna przy otwarciu dokumentu.

Post autor: michal.s »

Witam Wszystkich bardzo serdecznie.
Mam pytanie.
Czy znajdę gdzieś na forum temat w którym poruszono kwestię uruchamiania makra otwierającego okno do wprowadzenia danych?
Mam taki projekt, w którym notorycznie moi współpracownicy nie uzupełniają pola miesiąc i rok.
Na ten moment poradziłem sobie tak, że biją po oczach te dwa pola... okazuje się, że tylko mnie biją :lol:
Żadna forma motywacji nie pomaga!!!
Zostaliście moją ostatnią deską ratunku ;)

Myślę, że rozwiązanie, gdy ktoś otowrzy dokument i z rozwijanej listy będzie musiał wybrać miesiąc i rok rozwiąże moj problem i utrze nosa moim niesfornym współpracownikom :D
Przechwytywanie.PNG
Przechwytywanie.PNG (8.11 KiB) Przejrzano 4209 razy
Pozdrawiam Michał
OpenOffice3.3 na Windows 7
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Uruchomienie okna przy otwarciu dokumentu.

Post autor: Rafkus »

Może ten wątek pomoże:
https://forum.openoffice.org/pl/forum/v ... =28&t=5408
W dokumencie Kopia Rejestr - Kopia-3b.ods (link do niego: https://forum.openoffice.org/pl/forum/d ... hp?id=2996) jest stworzone okno do wprowadzania danych.

Innym sposobem może być zastosowanie Poprawności danych z menu Dane - nie pozwolić na wprowadzenie istotnych danych dopóki te mmniej ważne nie zostaną wprowadzone.
Zostawiam plik z zastosowaną metodą, spróbuj wpisać dane do żółtych komórek
Ostatnio zmieniony śr gru 09, 2020 10:59 pm przez Rafkus, łącznie zmieniany 1 raz.
Powód: Usunięcie pliku, poniżej poprawiona wersja
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Uruchomienie okna przy otwarciu dokumentu.

Post autor: Rafkus »

I kolejne rozwiązanie:
Przypisz poniższe makro do zdarzenia Zapisz Dokument w twoim pliku. Wówczas podczas zapisywania pliku uruchomi się to makro i sprawdzi czy do komórek B2 i C2 w Arkuszu1 zostały wprowadzone jakieś dane. Jeśli nie to zostaje wywołane okienko do wprowadzenia danych i nie pozwolą na zamknięcie dopóki nie poda się poprawnych wartości.

Kod: Zaznacz cały

Sub dane
  Dim Arkusz As Variant
  Dim komorka1,komorka2 As Variant
  dim i as integer

  Arkusz = ThisComponent.Sheets("Arkusz1") 
  komorka1 = Arkusz.getCellRangeByName("B2")
  komorka2 = Arkusz.getCellRangeByName("C2") 

  if komorka1.string="" then  
    Do
      i = inputBox ( "Podaj numer miesiąca: liczbę z przedziału 1÷12" , "UWAGA", Month(Date))
      'Month(Date) - zwraca numer aktualnego miesiąca, w powyższej instrukcji będzie to wartość domyślna. 
    Loop until i>0 and i<13
  komorka1.value=i
  endif
  
  if komorka2.value=0 then
    Do
     i = inputBox ( "Podaj Rok z przedziału 2000÷2030" , "UWAGA", Year(Date) )
      'Year(Date) - zwraca aktualny rok, w powyższej instrukcji będzie to wartość domyślna. 
    Loop until i>2000 and i<2030
  komorka2.value=i
  endif
End Sub
Oczywiście podaj swoje dane: nazwę arkusza i komórki docelowe.

PS. A jeśli wystarczy tylko uzupełnić dane domyślne (do pewnych komórek wpisać tylko bieżący miesiąc i rok) to wystarczy takie makro:

Kod: Zaznacz cały

Sub dane2
  Dim Arkusz As Variant
  Dim komorka1,komorka2 As Variant
  dim i as integer

  Arkusz = ThisComponent.Sheets("Arkusz1")   
  komorka1 = Arkusz.getCellRangeByName("B2")
  komorka2 = Arkusz.getCellRangeByName("C2") 

  if komorka1.string="" then komorka1.value = Month(Date)  
  if komorka2.string="" then komorka2.value = Year(Date)
End Sub
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Uruchomienie okna przy otwarciu dokumentu.

Post autor: Jermor »

Sądzę, że właściwsza jest pierwsza propozycja @Rafkus i to bez podawania domyślnej podpowiedzi.
michal.s pisze:...notorycznie moi współpracownicy nie uzupełniają pola miesiąc i rok.
Charakter przedstawionej ilustracji, świadczy o tym, że tabela jest raczej wypełniana danymi z innego niż bieżącego miesiąca. Przy takim podejściu współpracowników, i zaproponowaniu danych domyślnych, nacisną po prostu OK i zatwierdzą niepoprawne dane.
Podpiął bym to makro pod akcję "Uruchom aplikację""Otwórz dokument", czyli aby nie pozwalało niczego wprowadzać dopóty, dopóki nie zostanie wprowadzona właściwa data.
Dlaczego tak? Bo ludzie pod koniec pracy, myślą już o innych sprawach i są mniej skoncentrowani. Mogą zatem popełnić błędy a dane, o które chodzi @michal.s, są kluczowe dla zestawienia.
Ostatnio zmieniony wt gru 08, 2020 2:30 pm przez Jermor, łącznie zmieniany 1 raz.
Powód: Pomyliłem akcję, która należy wybrać.
AOO 4.1.15, LO 7.5.9 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
michal.s
Posty: 86
Rejestracja: pn sty 23, 2012 6:55 pm

Re: Uruchomienie okna przy otwarciu dokumentu.

Post autor: michal.s »

Dziękuję Rafkus bardzo cenne informacje.
Twoja wersja kody z opcją uruchamiania przy zapisie wydaje mi się bardzo dobra i myślałem, że już temat zamkniemy, ale...
No właśnie...
Rafkus pisze:Przypisz poniższe makro do zdarzenia Zapisz Dokument w twoim pliku.
Próbowałem tego na różne sposoby i poległem :(
Jak przypisać makro do zdarzenia?
Próbowałem w ten sposób, ale nie ma do wyboru makra, które jest w pliku.
Przechwytywanie.PNG
Makro działa bez żadnego problemu przy wywołaniu go bezpośrednio z okna 'wykonaj makro'
Pozdrawiam Michał
OpenOffice3.3 na Windows 7
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Uruchomienie okna przy otwarciu dokumentu.

Post autor: Rafkus »

:shock: :shock:
Nie spotkałem się z takim problemem, więc ciężko mi coś doradzić. Zazwyczaj makro przypisuję tak jak pokazałeś to na dołączonym obrazie, więc jestem zdziwiony że w oknie dialogowym Wybór makra w Bibliotece nie ma widocznego jeszcze twojego pliku.
A czy naprawdę używasz jeszcze OpenOffice 3.3??
Załączniki
poprawność.ods
(11.8 KiB) Pobrany 185 razy
Ostatnio zmieniony czw gru 10, 2020 7:25 am przez Rafkus, łącznie zmieniany 2 razy.
Powód: Dodałem plik z zapisanym makrem
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Uruchomienie okna przy otwarciu dokumentu.

Post autor: Jermor »

Używasz Apache OpenOffice. Warto zastanowić się nad zmianą i migracją do LibreOffice.
Może nawet nie dlatego, że Libre jest lepszy (bo jest) ale dlatego, że pracuje nad nim większy zespół i szybciej pojawiają się łatki.
@Jan_J z lekka ironią napisał o nowej wersji Apache, w której do Calca wprowadzono 4 modyfikacje, po roku stagnacji.
Ale do rzeczy. Coś jest schrzanione w Apache. U mnie także nie pojawiają się kontenery biblioteki w plikach, w sytuacji jaką opisałeś.
Możesz jednak przypisać makro wybierając polecenie "Narzędzia -> Dostosuj -> zakładka Zdarzenia".
AOO 4.1.15, LO 7.5.9 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
ODPOWIEDZ