Discussion:
vba automatyczne uruchamianie makra
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Tomek
19 lat temu
Permalink
Witam
Jak wygl±da³o by makro, które by siê automatycznie uruchamia³o za ka¿dym
razem po zmianie warto¶ci w komórce "B1" (warto¶c w tej komórce jest
wybierana z listy)

Pozdrawiam
Tomek
Tomek
19 lat temu
Permalink
Post by Tomek
Jak wygl±da³o by makro, które by siê automatycznie uruchamia³o za ka¿dym
razem po zmianie warto¶ci w komórce "B1" (warto¶c w tej komórce jest
wybierana z listy)
Pozdrawiam
Tomek
Ju¿ sobie poradzi³em wstawiaj±c do modulu arkusza taki kod:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$B$1" Then
'uruchamiane makro

End If
End Sub


Pozdrawiam

Tomek
Rich
19 lat temu
Permalink
Post by Tomek
Jak wyglądało by makro, które by się automatycznie uruchamiało za każdym
razem po zmianie wartości w komórce "B1" (wartośc w tej komórce jest
wybierana z listy)
Pozdrawiam
Tomek
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$B$1" Then
'uruchamiane makro
End If
End Sub
Pozdrawiam
Tomek
A mnie to nie chodzi :(
pxd74
19 lat temu
Permalink
Post by Rich
A mnie to nie chodzi :(
Bo ten kod należy wpisać do odpowiedniego modułu (modułu arkusza, którego
dotyczy). Kliknij prawym przyciskiem myszki na kacrice arkusza na dole i z
menu podręcznego wybierz polecenie "Wyświetl kod". Otworzy Ci się Edytor
Visula Basic na oknie odpowiedniego modułu i tam wklej kod.
Oczywiście linię:

'uruchamiane makro

musisz zmienić na nazwę makra, które ma się uruchomić.
--
Pozdrowienia
pxd74
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Rich
19 lat temu
Permalink
Kliknąłem wyświet kod na arkuszu "Arkusz1" w skoroszycie deltax.xls,
wpisałem poniższy kod, zmieniam zawartość komórki b1 w tym skoroszycie
amkro termin2 się nie uruchamia :(. A w edytorze v basic jak uruchomie
run to prosi mnie żeby wybrac makro do zadziałania i tyle ...
A rozwiazało by mi to problem ciągłego przeliczanai bo podpiął bym F9
pod niektóre komórki tylko.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$B$1" Then
Application.Run "DELTAX.xls!Termin2"
End Sub
pxd74
19 lat temu
Permalink
...
Wprew pozorom przyczyn może byc kilka.

1. Napisałeś: "zmieniam zawartość komórki b1 w tym skoroszycie". Pamiętaj,
że ten kod dotyczy tylko i wyłacznie arkusza o nazwie "Arkusz1". W przypadku
innych arkuszy w tym skoroszycie nie będzie uruchamiane makro. Jeśli chcesz
wykorzystać zdarzenie zmiany wartości komórki w kilku arkuszach za pomocą
jedngo kodu, to musisz wykorzystać zdarzenie Workbook_SheetChange w module
ThisWorkbook.
Post by Rich
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$B$1" Then
Application.Run "DELTAX.xls!Termin2"
End Sub
nie jest skopiowany wprost z Edytora Visual Basic. Czy na pewno nie masz tam
innych instrukcji oprócz tych, które napisałeś? I czy te, które napisałeś
wyglądają dokładnie tak samo. Czasami nawet niepozorna zmiana w kodzie może
spowodować, że makro nie będzie uruchamiane. Jeśli ten kod zawiera jeszcze
jakieś intrukcje ot nie wstydź się ich i wklej je na grupę.

3. Czy w makrach wykorzystujesz polecenie Application.EnableEvents - czasami
korzysta się tej intrukcji w kodzie makr. Pamiętaj, że przestawienie tej
opcji na False spowoduje, że żadne zdarzenia nie bedą uruchamiane.

4. Musisz przede wszytskim sprawdzić czy samo zdarzenie jest uruchamiane. W
tym celu wmodule arkusza zamiast tamtego kodu wpisz taki:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
MsgBox "Zdarzenie jest uruchamiane"
End Sub

Teraz zmień wartość w jakiejś komórce i sprawdź czy pojawi się monit
"Zdarzenie jest uruchamiane". Jesli się pojawi to oznacza, że zdarzenie jst
uruchamiane -> Przyczyna musi byc gdzieś indziej.

5. Może makro jest uruchamiane tylko z jakichś powodów nie widać efektów
działania tego makra lub działa ono nie tka jak powinno? Jeśli makor nie
jest za długie możesz podać kod tego makra.

6. Napisałeś: "A rozwiazało by mi to problem ciągłego przeliczanai bo
podpiął bym F9 pod niektóre komórki tylko." Nie za bardzo rozumiem co
chciałeś przez to powiedzieć, ale chyba nie tędy droga. Napisz może
dokładniej w czym jest problem.

7. Aha i musisz pamiętać jeszcze o jednym. To makro bedzie uruchamine tylko
i wyłącznie wtedy, gdy zmieniana bedzie wartośc w samej komórce B1. Jeśli na
raz bedziesz zmieniał wiecej komórek, np. poprzez wklejanie, to makro nie
bedzie uruchamiane.
--
Pozdrowienia
pxd74
Tajan
19 lat temu
Permalink
pxd74 wrote:

(...)
7. Aha i musisz pamiêtaæ jeszcze o jednym. To makro bedzie uruchamine
tylko i wy³±cznie wtedy, gdy zmieniana bedzie warto¶c w samej komórce
B1. Je¶li na raz bedziesz zmienia³ wiecej komórek, np. poprzez
wklejanie, to makro nie bedzie uruchamiane.
Ja bym doda³ jeszcze:

8. Makro nie zostanie uruchomione w przypadku, gdy warto¶æ komórki zmienia
siê na skutek przeliczania formu³y, która jest umieszczona w tej komórce.

Tajan
Rich
19 lat temu
Permalink
Otworzyłem nowy skoroszyt. W Arkusz1 wcisnąłem "wyświetl kod" wpisałem
poniższe:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
MsgBox "Zdarzenie jest uruchamiane"
End Sub

wpisałem wartośc w dowolnje komórce, zmieniałem ... i nic. :(

Ryszard
pxd74
19 lat temu
Permalink
Post by Rich
Otworzyłem nowy skoroszyt. W Arkusz1 wcisnąłem "wyświetl kod" wpisałem
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
MsgBox "Zdarzenie jest uruchamiane"
End Sub
wpisałem wartośc w dowolnje komórce, zmieniałem ... i nic. :(
Hmmm...
Przyznam - to troche dziwne.

1. Spróbuj uruchomić takie makro:

Sub Enable_Events()
Application.EnableEvents = True
End Sub

a następnie zmień wartośc w jakiejś komórce w arkuszu "Arkusz1". Jeśli nie
pomoże, to

2. Sprawdź czy nie masz ustawionych wysokich zabezpieczeń uruchamiana makr.
Wybierz polecenie menu Narzedzia -> Makro -> Zabezpieczenia i w zakładce
"Poziom zabezpieczeń" ustaw opcję "Niskie". Naciśnij OK, aby zamknąc okno,
nastepnie zamknij Excela i po ponownym otwarciu zmień wartośc w jakiejś
komórce w arkuszu "Arkusz1". Jeśli nadal nie bedzie wyświetlała informacja
"Zdarzenie jest uruchamiane", to

3. Wybierz polecenie menu Narzedzia -> Dodatki i sprawdź jakie dodatki są
zainstalowane (zainstalowane dodatki są oznaczone w polu wyboru po lewej
stronie dodatku). Jesli masz zainstalowane jakieś niestandartowe dodatki, to
wyczyść pole wyboru obok nich i naciśnij OK - albo najlepiej wyczyść
wszystkie. Uruchom ponownie Excela i sprawdź jeszcze raz czy monit bedzie
wyświetlany po zmianie wartości jakiejś komórki. Jeśli nie to prześlił
arkusz na priva - sprawdzę u siebie.
--
Pozdrowienia
pxd74
Rich
19 lat temu
Permalink
Nie robiłem niczego ... i nagle działa. :) Dziwne.
Rich

Loading...