napisał: Rycho postów: 291
umieszczony: 1 grudnia 2008 16:50
|
|
Witaj,
kod wstaw do modułu arkusza (modułu o nazwie jak arkusz), który zawiera 'komórkę sterującą' - uwaga: nie zmieniaj nazwy procedury obsługującej zdarzenie.
Private Sub Worksheet_Change(ByVal Target As Range)
Const KomorkaSterujaca = "A1"
Const Arkusze = ",ark1,ark3," 'arkusze ukrywane
Dim arkusz As Worksheet
Dim nazwa As String
Dim widoczne As Boolean
Application.ScreenUpdating = False
If Not Intersect(Range(KomorkaSterujaca), Target) Is Nothing Then
widoczne = (Range(KomorkaSterujaca) = 1)
For Each arkusz In Worksheets
nazwa = "," & arkusz.Name & ","
If InStr(1, Arkusze, nazwa) > 0 Then
arkusz.Visible = widoczne
End If
Next arkusz
End If
Application.ScreenUpdating = True
End Sub |
|
|
napisał: hegemon12 postów: 1
umieszczony: 30 listopada 2008 22:26
|
|
Panowie,
Mam pytanie, bardzo proszę o pomoc. Jak będzie wyglądał kod VBA w excelu ażeby po wpisaniu w daną komórkę w Excelu liczby 1 pojawiały się wskazane ukryte poprzednio arkusze, a po wykasowaniu tej liczby, aby ukrywały się. Proszę o pomoc.
Pozdrawiam
Hegemon |
|
|
napisał: Kunik postów: 3
umieszczony: 27 listopada 2008 19:51
edytowany: 27 listopada 2008 19:51
|
|
serdeczne, dzięki Rycho
wiedziałem, że gdzieś dzwonią
pozdrawiam  |
|
|
napisał: Rycho postów: 291
umieszczony: 27 listopada 2008 18:54
|
|
Hej,
w tablicy, oprócz nazw arkuszy, masz śmieci (wartości domyślne).
Sub Zaznacz2()
Dim TablicaArkuszy() As String
Dim Arkusz As Worksheet
Dim z As Long
z = 0
For Each Arkusz In Worksheets 'sprawdza wszystkie arkusze
If Len(Arkusz.Name) = 2 Then 'warunek dla arkusza z długością nazwy 2 znaki
z = z + 1 'licznik argumentu tablicy
ReDim Preserve TablicaArkuszy(1 To z) 'zwiekszenie rozmiaru tablicy
TablicaArkuszy(z) = Arkusz.Name ' wpisuję do tablicy
End If
Next
Sheets(TablicaArkuszy).Select ' to nie działa ??? -> teraz działa!!!
End Sub |
|
|
napisał: Kunik postów: 3
umieszczony: 27 listopada 2008 18:06
|
|
sorki, poprawiłem
Cytat:Popraw znaczniki kodu VB. |
|
|
napisał: admin postów: 613
umieszczony: 27 listopada 2008 17:27
|
|
| Popraw znaczniki kodu VB. |
|
|
napisał: Kunik postów: 3
umieszczony: 27 listopada 2008 15:18
edytowany: 27 listopada 2008 18:02
|
|
Witam
Mam taką sytuację, w pliku kilkanaście arkuszy, chcę zaznaczyć wszystkie, z nazwą 2 lierową lub 2 cyfrową, po to aby skopiować do nowego pliku, problem mam z zaznaczeniem ich na raz.
Dodam, że nazwy i ilości arkuszy za każdym razem są inne. Nagarałem makro i to działa natomiast jak się zmienią nazwy to sie zaczynaja problemy.
nagrane makro wygląda tak (przytaczam tylko kod zaznacenia arkuszy):
Sub Zaznacz ()
Sheets(Array("54", "56", "58", "62", "66", "68", "75")).Select
end sub
próbowałem to zrobić poprzez tablicę jednowymiarową :
Sub Zaznacz2()
Dim TablicaArkuszy(17)
Dim Arkusz As Worksheet
DIM Z&
Z = 1
For Each Arkusz In Worksheets 'sprawdza wszystkie arkusze
If Len(Arkusz.Name) = 2 Then 'warunek dla arkusza z długością nazwy 2 znaki
TablicaArkuszy(Z) = Arkusz.Name ' wpisuję do tablicy
Z = Z + 1 'licznik argumentu tablicy
End If
Next
' no i teraz mam problem jak się odnieść do tej tablicy
'sugerując się nagranym makrem to tak jak poniżej, ale niestety nie, więc proszę o pomoc
'próbowałem zargumentem i pętlą i owszem zaznaczał wszytkie po kolei ale wszytkie razem nie.
Sheets(TablicaArkuszy).select ' to nie działa ???
end sub
będę wdzięczny za podpowiedź lub może za inne lepsze rowiązanie
Pozdrawiam
Kunik |
|
|
 wstecz 1 dalej  wszystkich stron: 1
|