• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Filtreleme yapsın, gizli satırları yazdırmasın

Katılım
26 Kasım 2006
Mesajlar
234
Excel Vers. ve Dili
2010-2013 Türkçe
Module7 da Parametreler sayfasındaki bazı satırları gizleyen kodlar var
Kod:
Sub gizle()
Dim i As Long
Application.DisplayAlerts = False
Cells.EntireRow.Hidden = False
 
For i = 2 To 1000
    If Cells(i, "v") = "Rap.Gizle" Then
        Rows(i).EntireRow.Hidden = True
    End If
Next i
Application.DisplayAlerts = True

End Sub


Sub göster()
Cells.EntireRow.Hidden = False
End Sub

Userform3 de 4 adet combo var ve bu listbox'ı süzüyor
Kod:
Private Sub ComboBox1_Change()
    Dim x As Long, y As Byte, Z As Long, Veri(), Toplam As Double
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    Toplam = 0
    ReDim Veri(1 To 9, 1 To 1)
    ListBox5.RowSource = Empty

    With Worksheets("PARAMETRELER")
        With .Range("$A$2:$J$" & Rows.Count)
            .AutoFilter
            If ComboBox1.Text = "" Then
                .AutoFilter Field:=1
            Else
                .AutoFilter Field:=1, Criteria1:=ComboBox1.Text
            End If
            
            If ComboBox2.Text = "" Then
                .AutoFilter Field:=2
            Else
                .AutoFilter Field:=2, Criteria1:=ComboBox2.Text
            End If
            
            If ComboBox3.Text = "" Then
                .AutoFilter Field:=3
            Else
                .AutoFilter Field:=3, Criteria1:=ComboBox3.Text
            End If
            
            If ComboBox4.Text = "" Then
                .AutoFilter Field:=5
            Else
                .AutoFilter Field:=5, Criteria1:=ComboBox4.Text
            End If
            
            For x = 2 To Worksheets("PARAMETRELER").Cells(Rows.Count, 1).End(3).Row
                If .Cells(x, 1).RowHeight <> 0 Then
                    Z = Z + 1
                    ReDim Preserve Veri(1 To 9, 1 To Z)
                    For y = 1 To 9
                        Veri(y, Z) = .Cells(x, y).Value
                        If y = 4 Then Toplam = Toplam + .Cells(x, y).Value
                    Next
                End If
            Next
            
            ListBox5.Column = Veri
            Label19.Caption = Format(Toplam, "#,##0.00")
            Label17.Caption = "Liste Toplamı"
        End With
        Kontrol = True
        .TextBox6.Value = Me.ComboBox1.Value
    End With
    
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

Şuda yazdır butonum
Kod:
Private Sub CommandButton4_Click()
Application.Visible = True
Sheets("PARAMETRELER").Select
Me.Hide
gizle
ActiveSheet.PageSetup.PrintArea = "ALAN_DURUM"
ActiveWindow.SelectedSheets.PrintPreview
göster
Application.Visible = False
UserForm3.Show
End Sub

ayrıca Parametreler sayfasının kod alanında şune benzer kodlar var
Kod:
Private Sub TextBox1_Change()
If Kontrol = True Then Exit Sub
On Error Resume Next
METİN2 = TextBox1.Value
Set FC2 = Range("a3:ı65000").Find(What:=METİN2)
Application.GoTo Reference:=Range(FC2.Address), _
   Scroll:=False
Selection.AutoFilter Field:=3, Criteria1:=TextBox1.Value & "*"
If METİN2 = "" Then
Range("a1").Select
TextBox1.Activate
End If
End Sub

Durumu özetlersek; Parametreler sayfasında bulunanTextler aracılığıyla; Userform3 de bulunan Comboları kullanarak sayfayı süzdürebiliyorum, Yalnız Yazdır butonuna bastığımda Module7 tetiklenerek Parametreler sayfasındaki bazı satırların gizlenmesi gerekiyor. Hem süzüp hem gizlediğimde hata veriyor :(

Süzmeden Yazdır butonuna basarsam Gizlemesi gerekenleri gizleyerek yazdırma Ekranı görüntüleniyor (Yani sorunsuz) :)

Ama hem süzdürüp hem gizleyemiyorum. (Bu konuda yardımınızı bekliyorum)

Örnek dosya ektedir.

Test etmek için Açılan ekranda süzme yapın ve yazdır butonuna basın
 

Ekli dosyalar

Son düzenleme:
Merhaba,

Çalışmanızdaki kodlar birbirlerini tetiklediği için sorunlar yaşıyorsunuz. Bu tarz işlemlerinizde "Boolean" bir değişken tanımlayıp kullanabilirsiniz. Bu değişkene belli durumlarda TRUE belli durumlarda FALSE değeri vererek işlemlerinize yön verebilirsiniz.

Ben dosyanıza Kontrol2 adında bir değişken tanımladım.

Ekteki örnek dosyayı incelermisiniz.
 

Ekli dosyalar

Merhaba,

Çalışmanızdaki kodlar birbirlerini tetiklediği için sorunlar yaşıyorsunuz. Bu tarz işlemlerinizde "Boolean" bir değişken tanımlayıp kullanabilirsiniz. Bu değişkene belli durumlarda TRUE belli durumlarda FALSE değeri vererek işlemlerinize yön verebilirsiniz.

Ben dosyanıza Kontrol2 adında bir değişken tanımladım.

Ekteki örnek dosyayı incelermisiniz.

Hem çözüm üretip hemde öğretmeye çalışan bu kadar insanın bu forumda var olduğunu bilmek inanılmaz bir güven duygusu veriyor.

Korhan Bey Çok Teşekür Ederim.
 
Merhaba,

Çalışmanızdaki kodlar birbirlerini tetiklediği için sorunlar yaşıyorsunuz. Bu tarz işlemlerinizde "Boolean" bir değişken tanımlayıp kullanabilirsiniz. Bu değişkene belli durumlarda TRUE belli durumlarda FALSE değeri vererek işlemlerinize yön verebilirsiniz.

Ben dosyanıza Kontrol2 adında bir değişken tanımladım.

Ekteki örnek dosyayı incelermisiniz.

Korhan bey, aşağıdaki kodda kırmızı olarak işaretlediğim kısım sorun yaratabilirmi diye merak ediyorum.

Kod:
Private Sub ComboBox2_Change()
    Dim x As Long, y As Byte, Z As Long, Veri(), Toplam As Double
    
    Application.ScreenUpdating = False
    [COLOR="Red"]Application.Calculation = xlCalculationManual[/COLOR]   
 If Kontrol2 = True Then Exit Sub

Kontrol2 değişkeni aktifse Exit Sub yaparak kesilecek. Hesaplama Seçenekleri Manuel kalırsa program çalışmaz. bu kısmı


Kod:
Private Sub ComboBox2_Change()
    Dim x As Long, y As Byte, Z As Long, Veri(), Toplam As Double
    
    Application.ScreenUpdating = False
        If Kontrol2 = True Then Exit Sub
Application.Calculation = xlCalculationManual

olarak değiştireyim mi yoksa sizin ayarladığınız şekilde kalması sorun yaratmaz mı?
 
Yoksa Exit Sub komutu hiçbirşey yapmadan mı komutu kesiyor.. Eğer öyleyse sorun yok
 
Merhaba,

İlk önce önerdiğim şekilde deneyin. Sorun oluyorsa tekrar düzenleme yaparız.
 
Korhan bey sizin öneriniz çalışıyor zaten sorun yok. Ben bilgi almak amaçlı son iki mesajı yazdım.
 
Merhaba,

Eğer hesaplamanın manuele ayarlı kalması sorun olacaksa dediğiniz gibi değiştirebilirsiniz.
 
Geri
Üst