Strona 1 z 1

Przypisanie przycisku do komórki

PostNapisane: So lip 24, 2021 7:35 am
przez zwora
Witam,

Chciałbym stworzyć arkusz, który będzie dokonywał kopiowania z jednej tabeli do drugiej. W pierwszej tabeli będą dostępne wszystkie opcje (magazyn) i obok każdej pozycji będzie przycisk "kopiuj", który dopisze tę pozycję na pierwsze wolne miejsce w tabeli drugiej (zamówienie). Oczywiście można dla każdego przycisku utworzyć osobną funkcję, ale jest to rozwiązanie nieefektywne i spowoduje, że makro będzie miało gigantyczną ilość wierszy, nie wspominając już o ilości pracy, jaką trzeba będzie włożyć (nawet stosując znajdź i zamień). Dlatego najlepsza byłaby jedna funkcja, którą uruchamiałby każdy z przycisków, ale musiałaby ona działać na innych danych wejściowych (na innych komórkach). I stąd moje pytanie - czy da się jakoś połączyć przycisk z konkretną komórką? Może też być symbol, czy cokolwiek, z czego mógłbym wewnątrz funkcji odtworzyć adres komórki. Myślałem też nad ustawianiem nazw przycisków (np. B8,B9 itd.), a potem przechwytywanie tych nazw i zamianę na adres. Ale w jaki sposób mogę przechwycić nazwę przycisku?

Dziękuje za ewentualne odpowiedzi i pozdrawiam.

Re: Przypisanie przycisku do komórki

PostNapisane: So lip 24, 2021 11:30 am
przez Jermor
Można utworzyć jeden przycisk główny i przypisać mu makro, które zidentyfikuje komórkę aktywną i na tej podstawie wykona całą resztę działań.
Z tego co piszesz, jest to trochę bez sensu.
Dużo łatwiej byłoby w arkuszu zamówienia w komórce typu "nazwa towaru" rozwinąć listę magazynową i wybrać odpowiednią pozycję.
Jeśli takie rozwiązanie cię interesuje, napisz. Teraz pilnie muszę wyjść i nie mogę zrobić opisu tego sposobu.

Re: Przypisanie przycisku do komórki

PostNapisane: N lip 25, 2021 7:05 am
przez zwora
Dziękuję za odpowiedź. Zdecydowałem się na użycie hiperłącza i przekazanie numeru wiersza przez adres, a w makrze podział url i wyciągnięcie tego numeru:

W komórce:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
=HIPERŁĄCZE("vnd.sun.star.script:Standard.Module1.kopiujDoZam?language=Basic&location=document&ROW="&WIERSZ();"Kopiuj")


A w makrze:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
iRow = CInt(Split(sURL, "ROW=")(1))-1


Pozdrawiam