Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Ukrywanie wierszy w Arkuszu
toja




Typ: neutral
Postów: 31
Zarejestrowany: Apr 2005
Ukrywanie wierszy w Arkuszu

W kolumnie A są liczby od 1 do np 50. Jeżeli do txtboxa, który jest na frm wpiszę np 50 i kliknę na cmb to wszystkie wiersze poniżej tego wpisu zostają ukryte. Czy ktoś może ma gotowe makro?

27-04-2005 15:01
Pokaż profil toja  Wyślij email do toja   
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

Private Sub CommandButton1_Click()
    Dim K As Integer
    Rem zapamiętujemy pozycję kursora w kolumnie
    K = Selection.Column
    Rem ukrywamy wiersze
    ActiveSheet.Rows("1:" & Me.TextBox1.Value).EntireRow.Hidden = True
    Rem ustawiamy kursor w komórce o jeden numer większą
    Rem niż wartość w TextBox1
    Cells(Me.TextBox1.Value + 1, K).Select
End Sub



_____________________________________________
Visual Basic.NET - Mercedes dla programistów

27-04-2005 17:33
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
toja




Typ: neutral
Postów: 31
Zarejestrowany: Apr 2005

Dzięki, a jak powrócić do stanu pierwotnego?

27-04-2005 18:03
Pokaż profil toja  Wyślij email do toja   
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004


Dzięki, a jak powrócić do stanu pierwotnego?


ActiveSheet.Rows("1:" & Me.TextBox1.Value).EntireRow.Hidden = False

lub całość
ActiveSheet.Rows("1:65535".EntireRow.Hidden = False


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

27-04-2005 20:15
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
toja




Typ: neutral
Postów: 31
Zarejestrowany: Apr 2005

Nic dodać nic ująć, o to mi chodziło, dziękuję

27-04-2005 21:48
Pokaż profil toja  Wyślij email do toja   
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Ponieważ nie wiem na ile pytający jest biegły w VBA dodam jeszcze do wypowiedzi Piotrusia, że jeśli proces ukrywania wierszy

- ma dotyczyć skoroszytu , w którym się znajduje wspomniany UserForm ( z TexBoxem itd...) i  procedura ukrywająca,

oraz

- ma dotyczyć tylko określonego arkusza o nazwie na przykład "arkusz_gdzie_ukrywamy" 

użyłabym jedynie dla jasności odwołań:

ThisWorkbook.Sheets("arkusz_gdzie_ukrywany" )

ponieważ, może się zdarzyć, że "w ferworze walki" na przykład podczas uruchamiania ukryjemy wiersze nie na tym arkuszu na którym byśmy chcieli, i nie w tym skoroszycie tylko na tym, gdzie akurat się znajdujemy .....

[Post edytowany dnia 27-04-2005 21:54 przez karolinavb]


_____________________________________________
Karolina

27-04-2005 21:53
Pokaż profil karolinavb  Wyślij email do karolinavb   
toja




Typ: neutral
Postów: 31
Zarejestrowany: Apr 2005

Aby Arkusz byl aktywny podczas ukrywania, wystarczy go uaktywnić

With ThisWorkbook.Worksheets("Arkusz1".Activate

Twoje rozwiązanie też jest dobre, ale to jest chyba lepsze

28-04-2005 20:24
Pokaż profil toja  Wyślij email do toja   
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Moim zdaniem podczas operacji na arkuszach dobrym zwyczajem jest unikanie wywoływania bez potrzeby zarówno metody Activate arkusza, jak metody Select obiektu Range, częto nawet dobrze jest na czas operacji wypełniania zakresu komórek skorzystać z odpowiedniego ustawienia

Application.ScreenUpdating

no, ale co kto lubi...


_____________________________________________
Karolina

28-04-2005 21:55
Pokaż profil karolinavb  Wyślij email do karolinavb   
toja




Typ: neutral
Postów: 31
Zarejestrowany: Apr 2005

Chcę ukryć pewien zakres wierszy np od 10 do 20, a informacje te wpisuję do dwóch textboxów "od" "do". Wartości w textboxach są zmienne, raz mozna wpisać 10, 20 innym razem 5, 16 itd , a wszystko steruje się cmb. Jet na to jakiś sposob?

29-04-2005 08:58
Pokaż profil toja  Wyślij email do toja   
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Toja

Ponieważ raz używasz określenia TexBox, potem niżej piszezs cmb, nie wiem właściwie skąd wybierasz te numery wierszy z Cmb czy TextBox, zatem:

Wersja I - jesli to jednak TextBoxy

Private Sub cmdUkryjOdkryj_Click()
' zakryj
Call UkryjOdkryj(True)
' odkryj
'Call UkryjOdkryj(False)

End Sub

Sub UkryjOdkryj(Optional ByVal bUkryj As Boolean = True)
With ThisWorkbook.Sheets("arkusz_gdzie_ukrywany" )
    If Not IsNumeric(txtPoczatek.Value) Then
        MsgBox "Wprowadzona wartość dla 1-szego ukrywanego wiersza nie jest liczbą"
        txtPoczatek.Value.SetFocus
        Exit Sub
    End If
    If txtPoczatek.Value <= 0 Then
        MsgBox "Pierwszy wiersz musi miec numer >0"
        txtPoczatek.Value.SetFocus
        Exit Sub
    End If
    If Not IsNumeric(txtKoniec) Then
        MsgBox "Wprowadzona wartość dla ostatniego ukrywanego wiersza nie jest liczbą"
        txtKoniec.SetFocus
        Exit Sub
    End If
    If txtKoniec.Value <= 0 Then
        MsgBox "Wprowadzona wartość dla ostatniego ukrywanego musi być >0 "
    End If
    .Rows(txtPoczatek.Value & ":" & txtKoniec.Value).EntireRow.Hidden = bUkryj
End With
End Sub

Wersja II - jesli to jednak ComboBoxy

Private Sub cmdZkryjOdkryjCombo_Click()
zakryj
Call UkryjOdkryjComboBox(True)
' odkryj
'Call UkryjOdkryjComboBox(False)

End Sub

Sub UkryjOdkryjComboBox(Optional ByVal bUkryj As Boolean = True)
With ThisWorkbook.Sheets("arkusz_gdzie_ukrywany" )
    If cmbOd.ListCount < 1 Or cmbOd.ListIndex < 0 Then
        MsgBox "Wybierz wartośc dla 1-go odkrywanego wiersza"
        cmbOd.SetFocus
        Exit Sub
    End If
    If cmbDo.ListCount < 1 Or cmbDo.ListIndex < 0 Then
        MsgBox "Wybierz wartośc dla ostatniego odkrywanego wiersza"
        cmbDo.SetFocus
        Exit Sub
    End If
    .Rows(cmbOd.Value & ":" & cmbDo.Value).EntireRow.Hidden = bUkryj
End With
End Sub

Sorry,że nie używam Activate itp, lecz to się kłóci z moimi "przekonaniami", popraw sobie to zatem sam... błędy też jakby co....

[Post edytowany dnia 29-04-2005 10:26 przez karolinavb]


_____________________________________________
Karolina

29-04-2005 10:25
Pokaż profil karolinavb  Wyślij email do karolinavb   
Wszystkich odpowiedzi: 9 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1