• DİKKAT

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

Soru Filtrelenmiş Veriye Makro Uygulamak

  • Konbuyu başlatan Konbuyu başlatan tuvons
  • Başlangıç tarihi Başlangıç tarihi
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
 
Merhaba,

Filtre ile gizlenmiş satırın satır yüksekliği sıfır olur. Kodlarınızda bundan faydalanabilirsiniz.
 
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
 
Şö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
 
Şö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
 
Dosyanızı paylaşırsanız daha net sonuçlar alabilirsiniz.
 
Geri
Üst