• 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
54
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
 
Örnek dosya paylaşabilirmisiniz.
 
Geri
Üst