makro warunkowe uruchamiajace funkcje
witam
mam w arkuszu excela rozwijane pole kombi z czterema nazwami miast do wyboru. po wybraniu miasta "Krakow" chcialbym, zeby w konkretnej komorce arkusza1, powiedzmy F8 (ten sam wiersz co pole kombi, ale inna kolumna), uruchamiala sie funkcja w stylu: =JEŻELI(C8="Kraków";ZAOKR.W.DÓŁ(E8;Arkusz2!$H$7);0) i jednoczesnie w komorce I8 funkcja =JEŻELI(C8="Kraków";E8-F8;0).
czy jest mozliwe stworzenie takiego makra?
a jesli nie, to czy mozna zrobic makro, ktore po wybraniu miasta z pola kombi uruchamia w konkretnej komorce funkcje znajdujaca sie w innej komorce arkusza?
zasadniczo chodzi o to, zeby przy wyborze miasta z pola rozwijanego, w konkretnych komorkach uruchamialy sie konkretne funkcje. problem w tym, ze w tych komorkach same formuly nie moga sie znajdowac, bo musi byc mozliwosc wpisania w nie dowolnej wartosci i automatycznego powrotu do funkcji przy ponownym wyborze miasta z pola kombi.
brzmi to wyjatkowo niejasno, ale lepiej nie dam rady wyjasnic. jesli ktos ma pomysl i zrozumial, bede wdzieczny za pomoc:)
mam w arkuszu excela rozwijane pole kombi z czterema nazwami miast do wyboru. po wybraniu miasta "Krakow" chcialbym, zeby w konkretnej komorce arkusza1, powiedzmy F8 (ten sam wiersz co pole kombi, ale inna kolumna), uruchamiala sie funkcja w stylu: =JEŻELI(C8="Kraków";ZAOKR.W.DÓŁ(E8;Arkusz2!$H$7);0) i jednoczesnie w komorce I8 funkcja =JEŻELI(C8="Kraków";E8-F8;0).
czy jest mozliwe stworzenie takiego makra?
a jesli nie, to czy mozna zrobic makro, ktore po wybraniu miasta z pola kombi uruchamia w konkretnej komorce funkcje znajdujaca sie w innej komorce arkusza?
zasadniczo chodzi o to, zeby przy wyborze miasta z pola rozwijanego, w konkretnych komorkach uruchamialy sie konkretne funkcje. problem w tym, ze w tych komorkach same formuly nie moga sie znajdowac, bo musi byc mozliwosc wpisania w nie dowolnej wartosci i automatycznego powrotu do funkcji przy ponownym wyborze miasta z pola kombi.
brzmi to wyjatkowo niejasno, ale lepiej nie dam rady wyjasnic. jesli ktos ma pomysl i zrozumial, bede wdzieczny za pomoc:)
Odpowiedzi: 1
Hej
Nic nie piszesz jak ma wyglądać formuła po wyborze innego miasta. Generalnie makro może po zmianie wyboru w combo ponownie wpisać tę samą formułę.
Kliknij prawym klawiszem na nazwie arkusza, wybierz Wyswietl Kod i wklej tam:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "C8" Then
Range("F8").FormulaR1C1 = "=IF(R[0]C[-3]=""Kraków"",FLOOR(R[0]C[-1],Arkusz2!R7C8),0)"
Range("I8").FormulaR1C1 = "=IF(R[0]C[-3]=""Kraków"",R[0]C[-4]-R[0]C[-3],0)"
End If
End Sub
Pozdawiam
Strona 1 / 1
<P><FONT face=Arial size=2>hej</FONT></P> <P><FONT face=Arial size=2>w pustym arkuszu dziala niezle, ale w komorce I8 uzywa funkcji bioracej za warunek F8=krakow a nie C8. wiesz moze dlaczego?</FONT></P> <P><FONT face=Arial size=2>druga rzecz jest troszke bardziej zlozona:) otoz w pustym pliku to makro dziala jak nalezy (poza tym drobiazgiem powyzej), ale jak wrzucilem to do pliku, na ktorym juz pracuje, i w ktorym sa juz inne makra (glownie sortujace), to za nic nie chce to odpalic. nie wiem czy pole kombi, z ktorego wybiera sie miasto trzeba tam stworzyc po wpisaniu makra, czy odwrotnie, czy nie ma to znaczenia. jakies sugestie?:)</FONT></P> <P><FONT face=Arial size=2>a jesli chodzi o inne miasta, sa jeszcze 3 i w kazdym chodzi tylko o to, dla przypisanej kazdemu komorki pojawila sie tam wartosc z innej komorki. np. wybieram Kielce i chce, aby w komorce L8 pojawila sie liczba, ktora jest w komorce E8. zadnej funkcji, tylko przeniesienie wartosci:)</FONT></P> <P><FONT face=Arial size=2>qrde, ale jestem zielony z tych cholernych makr;-) thx z gory za pomoc</FONT></P>
<BLOCKQUOTE><div><img src="/Themes/default/images/icon-quote.gif"> <strong>lesmiracles:</strong></div><div> <P><FONT face=Arial size=2>w pustym arkuszu dziala niezle, ale w komorce I8 uzywa funkcji bioracej za warunek F8=krakow a nie C8. wiesz moze dlaczego?</FONT></P> <P></div></BLOCKQUOTE></P> <P>Tak wiem - pomyliłem komórki <img src="/emoticons/emotion-2.gif" alt="Big Smile [:D]" /></P> <P>Po poprawce:</P> <P>If Target.Address(False, False) = "C8" Then<BR>Range("F8").FormulaR1C1 = "=IF(R[0]C[-3]=""Kraków"",FLOOR(R[0]C[-1],Arkusz2!R7C8),0)"<BR>Range("I8").FormulaR1C1 = "=IF(R[0]C[-6]=""Kraków"",R[0]C[-4]-R[0]C[-3],0)"<BR>End If</P> <P>Sądzę, że makro wkleiłeś w nieodpowiednim miejscu. Prawoklik na nazwie arkusza w którym ma działać makro, Wyswietl kod i tam wklej. </P> <P>Jesli to nie to, być może są wyłączone zdarzenia w pliku, ale sądzę że o tym byś wiedział.</P> <P>Czyli pozostałymi miastami się nie zajmujemy w makrze.</P> <P>Pozdrawiam</P> <P> </P>