Soru Filtrelenmiş Veriye Makro Uygulamak

Katılım
9 Ekim 2019
Mesajlar
109
Excel Vers. ve Dili
Standart 2016
Arkadaşlar merhaba,

Filtrelediğim veriler için aşağıdaki kodu uyguladığımda filtreye dahil olmayan satırlarda da işlem yapıyor. Benim istediğim kaç satırda işlem yapılması gerektiğini yazdığımda sadece görünür hücrelerden o kadar satırda işlem yapsın. Bu kodları nasıl değiştirebilirim?

Teşekkürler.

Kod:
Private Sub CommandButton1_Click()
sutun1 = sutun1
satir1 = satir1
eklemetutari1 = eklemetutari1
Dim deneme1 As Integer
Cells(sutun1 & ",1").Select
ActiveCell.Offset(1, 0).Select
For deneme1 = 1 To satir1
ActiveCell.Value = ActiveCell.Value + eklemetutari1
ActiveCell.Offset(1, 0).Select
Next deneme1

Dim txt As Control
    For Each txt In Me.Controls
    If TypeName(txt) = "TextBox" Then txt.Value = ""
    Next
    
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,520
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Filtre ile gizlenmiş satırın satır yüksekliği sıfır olur. Kodlarınızda bundan faydalanabilirsiniz.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,183
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Bir örnek, A sütununda filtrelenmiş alanda işlem yapar. Kendinize göre uyarlayabilirsiniz.
Kod:
Sub F_Alan()
    
    Dim son As Long, i As Range
    
    son = Cells(Rows.Count, "A").End(xlUp).Row
    
    For Each i In Range("A1:A" & son).SpecialCells(xlCellTypeVisible)
        MsgBox i
    Next i
    
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,520
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Şöyle olabilir;

Kod:
For deneme1 = 1 To satir1
If ActiveCell.RowHeight <> 0 Then 
ActiveCell.Value = ActiveCell.Value + eklemetutari1
ActiveCell.Offset(1, 0).Select
End If
Next deneme1
 
Katılım
9 Ekim 2019
Mesajlar
109
Excel Vers. ve Dili
Standart 2016
Şöyle olabilir;

Kod:
For deneme1 = 1 To satir1
If ActiveCell.RowHeight <> 0 Then
ActiveCell.Value = ActiveCell.Value + eklemetutari1
ActiveCell.Offset(1, 0).Select
End If
Next deneme1
@Korhan Ayhan Bey aşağıdaki şekilde yaptım ama yine filtre koyunca hücrelere eklemek istediğim tutarları eklemiyor. Neden olabilir acaba?

Kod:
Private Sub CommandButton1_Click()
sutun1 = sutun1
satir1 = satir1
eklemetutari1 = eklemetutari1
Dim deneme1 As Integer
Cells(sutun1 & ",1").Select
ActiveCell.Offset(1, 0).Select
For deneme1 = 1 To satir1
If ActiveCell.RowHeight > 0 Then
ActiveCell.Value = ActiveCell.Value + eklemetutari1
ActiveCell.Offset(1, 0).Select
End If
Next deneme1

Dim txt As Control
    For Each txt In Me.Controls
    If TypeName(txt) = "TextBox" Then txt.Value = ""
    Next
    
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,520
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Dosyanızı paylaşırsanız daha net sonuçlar alabilirsiniz.
 
Üst