vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest poniedziałek, 29 kwietnia 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Tablice - zwrot wartości w zależności od zawartości komórki


otwartyotwarty rozpoczął: elgutek postów: 13



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

  
nazwa pliku rozmiar
tablica 2.xls 60.50 kB

Wykonaj dwuklik w komórce, w której mają dokonać się obliczenia.
napisał: elgutek
postów: 11


umieszczony:
19 grudnia 2012
07:35

  
nazwa pliku rozmiar
tablica.xls 42.50 kB

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

  
nazwa pliku rozmiar
tablica.xls 23.00 kB

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

  
nazwa pliku rozmiar
tablica.xls 22.00 kB

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


Sortuj posty: z