• DİKKAT

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

Silme İşlemi..!

Katılım
31 Ocak 2013
Mesajlar
55
Excel Vers. ve Dili
2010 Türkçe
Merhaba,
Herhangi bir satırın belli bir aralığını seçtiğimizi var sayalım Örneğin A3:O3 aralığını. Burada aktif olan hücre A3 hücresidir. A3:O3 seçili iken delete yapıldığında bu aralık değil de sadece A3 hücresi için silme işlemi yapılabilir mi?
 
merhaba.

aralık seçme işleminin manuel olduğunu ve seçili hücrelerden o an için aktif olanı, yani seçili hücreler içinde zemini açık renk kalanı silmek istersek...

Kod:
ActiveCell.ClearContents
 
sadece back space tuşuna basarsan sadece a3 hücresi silinir..
 
Merhaba,
Aşağıdaki kod ile satırları seçiyoruz. Hangi hücrede olursam olayım, delete yapıldığında A:O arası siliniyor. Back Space tuşu ile istediğimiz gibi silme işlemini yapabiliyoruz. El alışkanlığı işte delete kullanıyoruz hepimiz bu koda eklenecek delete tuşu ile silme yöntemi var mı?

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
sat = ActiveCell.Row
Range(ActiveCell.Address & ", A" & sat & ":O" & sat).Select
End Sub
 
şu iş görüyor mu?

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    sat = ActiveCell.Row
    Range("A" & sat & ":O" & sat).Select
    ActiveCell.ClearContents

End Sub
 
tabii niye bir Select işlemine ihtiyaç var, sorgulamak lazım.

çok nadir olarak bir nesneyi seçmek ihtiyacı duyarız çünkü.


ifadeden, aktif olan satırın A sütunundaki hücresinin silinmek istediğini anlıyorum.

öyle ise eğer, bana göre, bu kod sadece şöyle olmalı:

Kod:
Range("A" & ActiveCell.Row).ClearContents

farklı bir durum var ise daha iyi bir çözüm de önerme imkanımız olabilir.
 
Merhaba
Sayın Mancubus, 4 numaralı mesajda verdiğim kod ile istediğim gibi bir seçim yapabiliyorum. A:O arasında hangi hücre de olursam olayım delete yaptığımda o satırdaki her şey siliniyor. Ben o aralıktaki satırda olup hangi hücrede delete yaparsam o hücrenin silinmesini istiyorum.
 
ben böyle bir şeye neden ihtiyaç duyulur anlamaya çalışıyorum.
silmek istediğiniz hücrenin üzerine tıklayın ve DEL tuşuna basın.
bu işlemi yaparken o satırın seçili olmasına gerek yok ki.

galiba göz ile tarayarak silme yapmak istiyorsunuz..


Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    sat = ActiveCell.Row
    Range(ActiveCell.Address & ", A" & sat & ":O" & sat).Select
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If ActiveCell.Value <> "" Then Exit Sub
    Application.EnableEvents = False
    Application.Undo
    ActiveCell.Clear
    Application.EnableEvents = True
End Sub
 
Sayın hocam verdiğim kod seçiyor ben seçmiyorum. Bu kodu da kullanmak istiyorum delete yapıldığında da tüm satıra delete yapıyor. Sorun bu. Kodda sorun yok. Yaptığımız işlemde de sorun yok. Biz farklı bir kodu kendimize uyarlamaya çalıştık hepsi bu.
Teşekkür ediyorum ilginiz için

İyi çalışmalar dilerim.
 
rica ederim.

işte bu nedenle kodların tamamını, veriler üzerinden çalışıyor ise, temsili verileri bir dosya ile paylaşmak hem yanıt verenler yönünden hem de benzer bir ihtiyacı duyanlar yönünden çok yararlı olur.
 
Merhaba,

Ekteki örnek dosyayı incelermisiniz.
 

Ekli dosyalar

Merhaba Korhan bey,
Elinize bilginize sağlık. Size ÇOK fazlasıyla teşekkür ediyorum. Bu alemde Çok farklısınız. Her şey için Bir kez daha sonsuz teşekkürler.
İyi çalışmalar, İyi akşamlar dilerim

Saygılarımla.
 
Merhaba Korhan Bey,
Örnek dosyada ki kodlarınızı, çalışmadaki kodlara eklerken hatalar alıyorum. Böyle bir hata ile ilk kez karşılaşıyorum. Çözüm bulamayınca buraya eklemeye karar verdim. Rica ediyorum sizden bu kodları tek parça haline getirebilir misiniz? Her iki kod da sizin kaleminizdendir.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim Bul As Range, S2 As Worksheet, Adres As String, Alan As Range
    
    If Intersect(Target, Range("O3.O" & Rows.Count)) Is Nothing Then Exit Sub
    If Cells(Target.Row, "A") <> "" And Cells(Target.Row, "C") <> "" Then
        Set S2 = Sheets("GÖNDERİLENLER")
        Set Bul = S2.Range("A:A").Find(Cells(Target.Row, "C"), , , xlWhole)
        If Not Bul Is Nothing Then
            Adres = Bul.Address
            Do
                If Bul.Offset(0, 5) = Cells(Target.Row, "A") Then
                    If Alan Is Nothing Then
                        Set Alan = Bul
                    Else
                        Set Alan = Union(Alan, Bul)
                    End If
                End If
                Set Bul = S2.Range("A:A").FindNext(Bul)
            Loop While Not Bul Is Nothing And Bul.Address <> Adres
        End If
        
        If Not Alan Is Nothing Then
            S2.Select
            Alan.Resize(Alan.Rows.Count, 6).Select
        End If
    End If
End Sub

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim X As Long
    If Target.Cells.Count > 1 Then Exit Sub
    X = Target.Row
    Range("A" & X & ":O" & X).Select
    Target.Activate
    Set Adres = Target
End Sub
 
Önceki kodlamada Adres isimli değişken, String olarak belirlenmiş. Yeni kodlamada Range olması gerekiyor. String değeri kaldırılmış halde, aşağıdaki şekilde bir deneyiniz.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim X As Long
    Dim Bul As Range, S2 As Worksheet, Alan As Range

    If Target.Cells.Count > 1 Then Exit Sub
    X = Target.Row
    Range("A" & X & ":O" & X).Select
    Target.Activate
    Set Adres = Target
    
    
    If Intersect(Target, Range("O3.O" & Rows.Count)) Is Nothing Then Exit Sub
    If Cells(Target.Row, "A") <> "" And Cells(Target.Row, "C") <> "" Then
        Set S2 = Sheets("GÖNDERİLENLER")
        Set Bul = S2.Range("A:A").Find(Cells(Target.Row, "C"), , , xlWhole)
        If Not Bul Is Nothing Then
            Adres = Bul.Address
            Do
                If Bul.Offset(0, 5) = Cells(Target.Row, "A") Then
                    If Alan Is Nothing Then
                        Set Alan = Bul
                    Else
                        Set Alan = Union(Alan, Bul)
                    End If
                End If
                Set Bul = S2.Range("A:A").FindNext(Bul)
            Loop While Not Bul Is Nothing And Bul.Address <> Adres
        End If
        
        If Not Alan Is Nothing Then
            S2.Select
            Alan.Resize(Alan.Rows.Count, 6).Select
        End If
    End If
End Sub
 
Teşekkür Ederim ExcelF1 oldu sorun yok şimdilik. Bu sorunda halledilmiş oldu sayelerinizde.
İyi geceler dilerim.
 
Geri
Üst