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

  tytuł wątku:
Wątki dyskusji

Jak zaznaczyć wybrane arkusze kodem VBA


otwartyotwarty rozpoczął: Kunik postów: 7



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


Sortuj posty: z