napisał: elgutek postów: 11
umieszczony: 2 stycznia 2013 09:52
|
|
Super działa. Faktycznie przeliczanie powoduje straszne spowolnienie arkusza.
A czy można przeliczanie zastosować z użyciem przycisku ? Czyli przeliczanie w momencie naciśnięcia przycisku.
Próbuje to zrobić sam ale niestety bez rezultatu. |
|
napisał: Trebor postów: 1209
umieszczony: 20 grudnia 2012 18:07
|
|
Tylko, że formuła będzie się przeliczać za każdym ruchem w arkuszu.
Do zwykłego modułu wklej:
Function licz(skrót As Range)
Application.Volatile
i = WorksheetFunction.Match(skrót, Sheets("Obliczenia").Columns("A:A"), 0)
licz = Evaluate(Replace(Sheets("Obliczenia").Cells(i, "U").Formula, i, skrót.Row))
End Function
Wyszukiwanie można ograniczyć do części kolumny co powinno nieco odciążyć procesor. |
|
napisał: elgutek postów: 11
umieszczony: 20 grudnia 2012 14:36
|
|
Super działa wyśmienicie.
Mam tylko jeszcze małą dygresję. Czy możemy dwuklik zamienić na funkcję tak aby po zmianie danych za każdym razem z automatu podstawiał nową wartość
i nie trzeba ponownie robić dwukliku ?. Dla dużej ilości danych jest to kłopotliwe. A często zdarza się sytuacja, że dane się zmieniają. |
|
napisał: Trebor postów: 1209
umieszczony: 19 grudnia 2012 16:46
|
|
Wykonaj dwuklik w komórce, w której mają dokonać się obliczenia. |
|
napisał: elgutek postów: 11
umieszczony: 19 grudnia 2012 07:35
|
|
Nie wiem czy dobrze zrozumiałem ale stworzyłem w pliku Tablica nowy arkusz o nazwie OBLICZENIA.
W kolumnie A jak umieściłem skróty. W kolumnie U arkusza OBLICZENIA umieściłem formuły obliczające. Docelowo wynik powinien być zwracany w kolumnie U arkusza ZESTAWIENIE.
Nie wiem natomiast skąd mają być pobierane dane z formuły ??. Docelowo dane te będą umieszczane jak pisałem już wcześniej w kolumnach G, I, K, M, O, Q, S arkusza ZESTAWIENIE.
Dodatkowo dla skrótów np. TP i nazwy pokój możemy mieć różne wartości tj. może on powtarzać się w kilku wierszach tylko z różnymi wartościami w kolumnach G, I, K, M, O, Q, S.
Za każdym razem oczywiście dla danego skrótu formuła będzie wyglądała identycznie - zmieniać się będą wartości.
Na potrzeby formuły w arkuszu OBLICZENIA w kolumnach odzwierciedlających kolumny z arkusza ZESTAWIENIE wstawiłem przykładowe dane potrzebne do stworzenia formuły - docelowo dane powinny być pobierane z arkusza ZESTAWIENIE lub ewentualnie kopiowane do arkusza OBLICZENIA i wyliczane zwracając wynik do arkusza ZESTAWIENIE.
I jeszcze jedna sprawa. Ilość skrótów może się zmieniać jak pisałem wcześniej może się ich pojawić nawet 200 w arkuszu TABELA1. Do każdego skrótu będzie przypisana formuła
obliczająca. Chciałbym aby była możliwość dopisywania skrótów i formuł a makro je rozpoznawało. |
|
napisał: Trebor postów: 1209
umieszczony: 18 grudnia 2012 18:26
|
|
W takim przypadku Jeżeli się nie sprawdzi. Co prawda w nowszych wersjach excela zagnieżdżeń może być znacznie więcej, ale i tak nie jest to rozwiązanie godne polecenia.
Wstaw dodatkowy arkusz, w którym w pierwszej kolumnie umieść nazwy typu TP....
W kolumnie w której docelowo chcesz mieć wyniki tylko we wstawionym arkuszu wpisz formułę wyliczającą.
Formuła ta będzie kopiowana przez makro do odpowiedniego wiersza.
Jeśli stworzysz taki arkusz to mogę dopisać odpowiednie makro. |
|
napisał: elgutek postów: 11
umieszczony: 18 grudnia 2012 06:45
|
|
Ale z tego co się orientuje funkcje =Jeżeli mogę zagnieździć tylko 7 krotnie. W moim przypadku mogę mieć w komórce D6 nawet 200 różnych skrótów.
Każdemu skrótowi może odpowiadać inne działanie matematyczne. Czy w takim przypadku także funkcja =Jeżeli się sprawdzi ?? |
|
napisał: Trebor postów: 1209
umieszczony: 17 grudnia 2012 20:53
|
|
Zrobisz to podstawową formułą =Jeżeli...... |
|
napisał: elgutek postów: 11
umieszczony: 17 grudnia 2012 12:32
|
|
Super o to mi chodziło. Dzięki za pomoc :) Czasem najprostsze rozwiązania są najtrudniejsze do znalezienia.
Mam jeszcze jedną rzecz którą być może ktoś będzie w stanie pomóc.
A mianowicie w zamieszczonej tabeli funkcja wyszukaj zwraca nam wartość a= , b = itd. w następnej kolumnie muszę wpisać wymiary (kolumny G, I, K, M, O, Q, S).
Z tych wymiarów muszę policzyć pola powierzchni lub ewentualnie objętości - dla każdej pozycji.Powiedzmy w kolumnie T.
I tutaj pojawia się pytanie jakiej funkcji ewentualnie instrukcji VBA użyć aby instrukcja rozpoznawała jaki mamy element w kolumnie D a następnie ze względu na rodzaj elementu
pobierał dane z kolumn G, I, K, M, O, Q i S.
np. w komórce D6 mamy skrót TP. Ręcznie wpisuje dane w komórki G6, I6, K6 ( np. kolejno 100 ,200, 100). Funkcja powinna teraz policzyć G6 * I6*K6.
Ale gdy skrót w komórce D6 będzie np. LW to wtedy powinno wykonać operację (G6 *I6* K6) / (M6*O6*Q6*S6) i zwrócić wynik.
Z góry dzięki za pomoc. |
|
napisał: Trebor postów: 1209
umieszczony: 13 grudnia 2012 16:43
|
|
Zerknij czy o to chodzi. |
|
napisał: elgutek postów: 11
umieszczony: 12 grudnia 2012 17:13
|
|
Tylko czy da się to zastosować do większej ilości danych ???? Chodzi mi o to, że wierszy mogę mieć np. 300 w TABELI1 ??
Jeśli tak bardzo bym prosił o pomoc w sformułowaniu funkcji np. INDEKS do mojego przypadku dla jednego przykładu. |
|
napisał: Trebor postów: 1209
umieszczony: 12 grudnia 2012 16:45
|
|
Czy do tego celu nie wystarczy zwykła funkcja arkuszowa Wyszukaj.pionowo..... bądź Indeks ? |
|
napisał: elgutek postów: 11
umieszczony: 12 grudnia 2012 12:17
|
|
Od dłuższego czasu próbuję znaleźć rozwiązanie nurtującego mnie problemu. Nie jestem zbyt biegły w VBA dlatego zwracam się o pomoc.
Mam tabelę w zakładce "TABELA1". W tabeli definiuje oznaczenie (kolumna A), nazwę (kolumna B) oraz zmienne (kolumny od C do I).
Tabel służy mi do definiowania nowych elementów.
Jak zdefiniować instrukcję VBA w postaci funkcji aby w zakładce "ZESTAWIENIE" po wpisaniu w kolumnie E nazwy automatycznie pojawiały mi się parametry
poszczególnych elementów tzn. w tym samym wierszu w którym wpiszę nazwę (np. komórka E6 ) powinny się pojawić: skrót ( komórka D6)
oraz poszczególne zmienne w komórkach F6, H6, J6, L6, N6, P6, R6. Dane powinny być oczywiście pobierane z tabeli w zakładce "TABELA1".
Czy po zdefiniowaniu funkcji istnieje możliwość rozbudowy o kolejne wiersze i kolumny TABELI1 ??
Wydaje mi się, że funkcja musiałby mieć możliwość przeszukiwania po nazwach tabeli1 i porównywaniu jej z wartością wpisanej nazwy oraz zwracała dane o której pisałem wyżej.
W załączniku przedstawiam szablon.
Z góry dziękuję za pomoc.
Pozdrawiam
ELGUTEK |
|
wstecz 1 dalej wszystkich stron: 1
|
|