Uruchomienie okna przy otwarciu dokumentu.

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO

Uruchomienie okna przy otwarciu dokumentu.

Postprzez michal.s » Pn gru 07, 2020 9:43 pm

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) Przeglądane 995 razy
Pozdrawiam Michał
OpenOffice3.3 na Windows 7
michal.s
 
Posty: 86
Dołączył(a): Pn sty 23, 2012 6:55 pm

Re: Uruchomienie okna przy otwarciu dokumentu.

Postprzez Rafkus » Pn gru 07, 2020 11:07 pm

Może ten wątek pomoże:
https://forum.openoffice.org/pl/forum/viewtopic.php?f=28&t=5408
W dokumencie Kopia Rejestr - Kopia-3b.ods (link do niego: https://forum.openoffice.org/pl/forum/download/file.php?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 edytowano Śr gru 09, 2020 10:59 pm przez Rafkus, łącznie edytowano 1 raz
Powód: Usunięcie pliku, poniżej poprawiona wersja
OpenOffice 4.1.6. oraz LibreOffice 6.4 Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Avatar użytkownika
Rafkus
 
Posty: 267
Dołączył(a): Cz kwi 12, 2018 10:26 pm

Re: Uruchomienie okna przy otwarciu dokumentu.

Postprzez Rafkus » Wt gru 08, 2020 8:26 am

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   Rozszerz widokZwiń widok
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   Rozszerz widokZwiń widok
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
OpenOffice 4.1.6. oraz LibreOffice 6.4 Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Avatar użytkownika
Rafkus
 
Posty: 267
Dołączył(a): Cz kwi 12, 2018 10:26 pm

Re: Uruchomienie okna przy otwarciu dokumentu.

Postprzez Jermor » Wt gru 08, 2020 1:24 pm

Sądzę, że właściwsza jest pierwsza propozycja @Rafkus i to bez podawania domyślnej podpowiedzi.
michal.s napisał(a):...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 edytowano Wt gru 08, 2020 2:30 pm przez Jermor, łącznie edytowano 1 raz
Powód: Pomyliłem akcję, która należy wybrać.
AOO 4.1.9, LO 7.0.5 (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.
Avatar użytkownika
Jermor
 
Posty: 1458
Dołączył(a): So paź 12, 2013 11:09 am

Re: Uruchomienie okna przy otwarciu dokumentu.

Postprzez michal.s » Śr gru 09, 2020 10:39 pm

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 napisał(a):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
michal.s
 
Posty: 86
Dołączył(a): Pn sty 23, 2012 6:55 pm

Re: Uruchomienie okna przy otwarciu dokumentu.

Postprzez Rafkus » Śr gru 09, 2020 10:51 pm

: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) Pobrane 53 razy
Ostatnio edytowano Cz gru 10, 2020 7:25 am przez Rafkus, łącznie edytowano 2 razy
Powód: Dodałem plik z zapisanym makrem
OpenOffice 4.1.6. oraz LibreOffice 6.4 Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Avatar użytkownika
Rafkus
 
Posty: 267
Dołączył(a): Cz kwi 12, 2018 10:26 pm

Re: Uruchomienie okna przy otwarciu dokumentu.

Postprzez Jermor » Cz gru 10, 2020 12:27 pm

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.9, LO 7.0.5 (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.
Avatar użytkownika
Jermor
 
Posty: 1458
Dołączył(a): So paź 12, 2013 11:09 am


Powrót do Makra i programowanie

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość