• DİKKAT

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

MAKRO İLE SATIR SİLME SORUNU

Katılım
5 Kasım 2010
Mesajlar
11
Excel Vers. ve Dili
2003 türkçe
Listede bir sürü cari var. istemediğim carileri makro ile siliyorum. ama bazı cari isimlerine gelince silmiyor. aslında siliyor. hiçbir sorun yok gibi görünüyor ama kaydetmeye çalıştığımda dosya kapanıp açılıyor ve eski cari yerine gelmiş. ne yaptıysam çözemedim. ayrıca kendim silmeye çalıştığımda da siliniyor gibi görünüyor ama aynı hatayı tekrar alıyorum. kod aşağıda
yardımcı olabilirseniz memnun olurum.


Sub LİSTEDENCARİSİL()

Application.ScreenUpdating = False
Dim i As Long, CARİ As Variant, wbName, UTKU As String
CARİ = Worksheets("YENİKAYIT").Range("H5").Value
wbName = ActiveWorkbook.Path & "\" & Worksheets("YENİKAYIT").Range("H5") & ".xlsm"


If Worksheets("YENİKAYIT").Range("H5") = "" Then
MsgBox "CARİ SEÇİLMEDİ. LÜTFEN #SİLMEK İSTEDİĞİNİ CARİYİ# LİSTEDEN SEÇİP TEKRAR DENEYİNİZ", vbInformation
Worksheets("YENİKAYIT").Range("H5").ClearContents
Worksheets("YENİKAYIT").Range("N4").ClearContents
Worksheets("YENİKAYIT").Range("C4").Activate
Exit Sub
End If

UTKU = Worksheets("YENİKAYIT").Cells(5, 8).Value
If MsgBox(" ** " + UTKU + " **" + vbNewLine + "ADLI CARİ SİLİNECEKTİR. ** EMİN MİSİNİZ **?", vbYesNo + vbCritical) = vbYes Then
Else
Worksheets("YENİKAYIT").Range("H5").ClearContents
Worksheets("YENİKAYIT").Range("N4").ClearContents
Worksheets("YENİKAYIT").Range("C4").Activate
Exit Sub
End If

If MsgBox(" CARİYİ SİLİYORUM" + vbNewLine + "** ONAYLIYOR MUSUNUZ **?", vbYesNo + vbCritical) = vbYes Then
Else
Exit Sub
Worksheets("YENİKAYIT").Range("H5").ClearContents
Worksheets("YENİKAYIT").Range("N4").ClearContents
Worksheets("YENİKAYIT").Range("C4").Activate
End If


For i = 6 To Worksheets("FİRMALAR").Range("A1000").End(2).Row
If Cells(i, 2).Value = CARİ Then
Rows(Cells(i, 2).Row).EntireRow.Delete
i = i - 1
End If
Next i






On Error Resume Next
Kill wbName

MsgBox "İŞLEM TAMAM. CARİ SİLİNMİŞTİR.", vbInformation
Worksheets("YENİKAYIT").Range("H5").ClearContents
Worksheets("YENİKAYIT").Range("N4").ClearContents
Worksheets("YENİKAYIT").Range("C4").Activate
Application.ScreenUpdating = True
End Sub
 
Kodunuzda yer alan
For i = 6 To Worksheets("FİRMALAR").Range("A1000").End(2).Row
If Cells(i, 2).Value = CARİ Then
Rows(Cells(i, 2).Row).EntireRow.Delete
i = i - 1
End If
Next i

bölümü ,aşağıdaki gibi değiştirerek deneyin.
For i = Worksheets("FİRMALAR").Cells(Rows.Count, 1).End(3).Row To 6 Step -1
If Cells(i, 2).Value = CARİ Then
Rows(Cells(i, 2).Row).EntireRow.Delete
End If

Next
 
Kodunuzda yer alan
For i = 6 To Worksheets("FİRMALAR").Range("A1000").End(2).Row
If Cells(i, 2).Value = CARİ Then
Rows(Cells(i, 2).Row).EntireRow.Delete
i = i - 1
End If
Next i

bölümü ,aşağıdaki gibi değiştirerek deneyin.
For i = Worksheets("FİRMALAR").Cells(Rows.Count, 1).End(3).Row To 6 Step -1
If Cells(i, 2).Value = CARİ Then
Rows(Cells(i, 2).Row).EntireRow.Delete
End If

Next

Cevabınız için teşekkür ederim ama maalesef olmadı. işlemde sıkıntı yok. işlemi yapıyor yani isim siliniyor hiçbir sıkıntı yok kaydet komutuna geldiğinde kendiliğinden kapanıyor ve ve açtığımda silinen isim geri gelmiş oluyor.
DOSYAYI DA EKLEDİM, BAKMA ŞANSINIZ OLURSA DİYE
ŞİMDİDEN TEŞEKKÜR EDERİM
 

Ekli dosyalar

Sayın, @nkymk ,
Dosyanızda ve LİSTEDENCARİSİL makro kodunuzda hiçbir sorun tespit edemedim.
Bütün CARİ leri siliyor ve kaydettikten sonra dosya tekrar açıldığında da silinmiş gözüküyor.
Akla gelebilecek bir drum:
Bu dosya ile işlem yaparken; arka planda başka bir dosya açık olabilir.
Makro kodu her ne kadar kapanırken dosyayı kaydediyorsa bile, siz elle kaydedip kaptın ve sonra açıp sonucu izleyin.
Veya başka açık Excel dosyanız varsa onu kapatarak deneyin.

İyi çalışmalar...
 
Sağolun
 
Geri
Üst