• DİKKAT

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

Macro hatası

Katılım
24 Mart 2021
Mesajlar
58
Excel Vers. ve Dili
Türkçe
Private Sub CommandButton3_Click()
Dim SonSatir As Long
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Kayıt")
SonSatir = .Cells(Rows.Count, "B").End(xlUp).Row
.Cells(SonSatir, "B").ClearContents
End With
Application.ScreenUpdating = True
MsgBox "Kayıt Sayfası Son Kayıt Silindi "
End Sub


Bu kodda nerede hata yaptım acaba çözemedim.
yapmak istediğim Sayfa1 'deki butona tıkladığımda Sayfa2(Kayıt) sayfasındaki son kaydı silsin.
 
Rows.Count'tan önce nokta koymalısınız .Rows.Count, ayrıca satırı içerik olarak değil tamamen temizlemek için .Rows(SonSatir).Delete kullanabilirsiniz.
 
normal kodlar çalışınca sadece B sütunu son dolu hücreyi temizliyor. Benim yapmak istediğim son dolu satırı temizlemek.
 
Son düzenleme:
Kod:
Private Sub CommandButton1_Click()
    Dim SonSatir As Long
    Application.ScreenUpdating = False
    With ThisWorkbook.Worksheets("Kayıt")
        SonSatir = .Cells(.Rows.Count, "B").End(xlUp).Row
        .Rows(SonSatir).ClearContents
    End With
    
    Application.ScreenUpdating = True

    MsgBox "Kayıt Sayfası Son Kayıt Silindi "

End Sub
 
Sayın Ouzz_z
Denedim sağlıklı bir şekilde çalışıyor, elinize emeğinize sağlık, çok teşekkür ederim.
Allah'a emanet olun.
 
Private Sub CommandButton1_Click()

Range("A1:E1").Select
Selection.AutoFilter
Selection.AutoFilter
Range("B1").Select

ActiveWorkbook.Worksheets("Kayıt").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Kayıt").AutoFilter.Sort.SortFields.Add2 Key _
:=Range("B1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Kayıt").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A2").Select

Sayfa1.Range("A1").Select

End Sub

Arkadaşlar merhaba, yukarıdaki kodlar benim kullandığım bilgisayarda sorunsuz çalışıyor, yan masada arkadaşların bilgisayarlarında aşağıdaki kodlara uyarı veriyor. neden acaba?

dosya makro ayarları aynı.

ActiveWorkbook.Worksheets("Kayıt").AutoFilter.Sort.SortFields.Add2 Key _
:=Range("B1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
 
Add2 komutu bazı sürümlerde hata verebilir...

Bunu deneyiniz..

C++:
Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    Dim lastRow As Long
    
    Set ws = ThisWorkbook.Worksheets("Kayıt")
    
    ' Son satırı bul (B sütununa göre)
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
    
    ' Filtreyi aç (zaten açıksa tekrar açmaz)
    If Not ws.AutoFilterMode Then
        ws.Range("A1:E" & lastRow).AutoFilter
    End If
    
    ' Sıralama
    With ws.AutoFilter.Sort
        .SortFields.Clear
        .SortFields.Add Key:=ws.Range("B2:B" & lastRow), _
            SortOn:=xlSortOnValues, _
            Order:=xlAscending, _
            DataOption:=xlSortNormal
        
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .Apply
    End With
    
    ' İstersen başlangıç hücresine dön
    ws.Activate
    ws.Range("A1").Select
End Sub
 
Olması gereken işlem nedir?
 
Bu dosya içerisindeki kayıtların içinden B sütununu esas alarak TextBox içerisine yazdığım kelimeyi arama yaptırıyorum, dolayısıyla filtreleme oluyor. TextBox içindeki yazdığımı silince B sütununda metin olan satırları açıyor ama rakam olan satırları açmıyor. Bu durumda "Tümü" butonuna tıklayınca B sütununu esas alarak alfabetik sıralama yapıyor ve rakam olanlarda dahil tüm kayıtları gösteriyor. Benim kullandığım bilgisayarda sorunsuz çalışıyor ama diğer arkadaşların bilgisayarlarında hata veriyor.

ActiveWorkbook.Worksheets("Kayıt").AutoFilter.Sort.SortFields.Add2 Key _
:=Range("B1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal


makro kodlarında buraya uyarı veriyor.
 
Benim önerdiğim kodu şimdi denedim sıkıntı olmadı..

Sizin kullandığınız ofis sürümü nedir?
Arkadaşınızın kullandığı ofis sürümü nedir?
 
Tüm bilgisayarlarda ofis 2016 kurulu

Benim kullandığım bilgisayarda da sorunsuz çalışıyor ama diğer iki bilgisayarda aynı sorunu veriyor.
 
TÜMÜ butonu ve TextBox için eski kodları silip aşağıdaki kodlar ekleyip deneyiniz.

C++:
Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    
    Set ws = ThisWorkbook.Worksheets("Kayıt")
    
    ws.Activate
    
    If Not ws.AutoFilterMode Then
        ws.Range("A1:E" & ws.Rows.Count).AutoFilter
    End If
    
    Me.TextBox1.Value = ""
    
    ws.Range("A2:E" & ws.Rows.Count).Sort Key1:=ws.Range("B2"), Order1:=xlAscending, Header:=xlNo
                        
    ws.Range("A2").Select
End Sub

C++:
Private Sub TextBox1_Change()
    If Me.TextBox1 <> "" Then
        ActiveSheet.Range("A1:E" & Rows.Count).AutoFilter Field:=2, Criteria1:="=*" & TextBox1 & "*"
    Else
        ActiveSheet.ShowAllData
    End If
End Sub
 
Sayın Korhan Ayhan hocam,

Eline emeğine sağlık, çok güzel olmuş, sağlıklı çalışıyor, sorun yok.

Çok çok teşekkür ederim.
 
Geri
Üst