Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
776
Tıklama
0
Öne Çıkarma
Excel 2 Sütun Verileri Eleme YARDIM
ß
5 yıl
Teğmen
Konu Sahibi

Merhaba Arkadaşlar,
Benim için büyük, Excel Proları için basit bir adımdayım. Yardımlarınızı bekliyorum.
Excel'de A sütunundaki yinelenen verileri B sütunundaki sadece 1 veya 0 karsılığı olan varsa silmek istiyorum. Ancak A sütununda yinelenen verilerde 3 satırın B sütunundaki karşılığı 2'si "1" ve 1 taneside "0" ise bunlar ellenmeyecek.

Örnek olarak
< Resime gitmek için tıklayın >



A
5 yıl
Binbaşı

önce dosyanızın yedeğini alın.
şu makroyu deneyin.
Sub AyniSatirlariSil()
'Makro: Mesut Akcan
'22/8/2020
'makcan@gmail.com
'akcansoft.blogspot.com
'hiç bir garanti içermez
'tüm sorumluluk kullanıcıya aittir.
sr = Cells(Rows.Count, 1).End(xlUp).Row 'son dolu satır
For r = 2 To sr
a = 0 'artan
t = 0
Do
a = a + 1 'sonraki satır
'1.sütunda, alttaki hücre ile eşit ise
If Cells(r, 1) = Cells(r + a, 1) Then
eşit = True
'toplam eşit hücre sayısı. 1.sütun
t = t + 1
Else
eşit = False
End If
Loop Until eşit = False
a = 0 'artan
t2 = 0
If t > 0 Then '1. sütunda eşitlik varsa
Do
a = a + 1 'sonraki satır
'2.sütunda alttaki hücre ile eşit ise
If Cells(r, 2) = Cells(r + a, 2) Then
eşit = True
'toplam eşit hücre sayısı. 2.sütun
t2 = t2 + 1
'2. sütunlardaki eşitlik 1. sütun sayısı kadarsa
'döngüden çık
If t2 = t Then Exit Do
Else
eşit = False
End If
Loop Until eşit = False
End If
'1. ve 2. sütundaki eşit hücreler var ve aynı sayıdaysa
If t > 0 And (t = t2) Then
For x = 0 To t
Cells(r + x, 3).Value = "X" '3. sütuna X yaz
tx = tx + 1
Next
'1. sütundaki aynı hücre sayısı kadar satır atla
r = r + t
End If
DoEvents
Next
If tx > 0 Then 'işaretli satır varsa
c = MsgBox("X işaretli satırlar silinsin mi?", vbYesNo)
If c = vbYes Then
For r = sr To 2 Step -1
If Cells(r, 3).Value = "X" Then
Rows(r).Delete 'satırı sil
End If
DoEvents
Next
End If
End If
MsgBox "İşlem tamam"
End Sub



A
5 yıl
Binbaşı

Küçük bir hata olmuş. Düzelttim
Sub AyniSatirlariSil3()
'Makro: Mesut Akcan
'22/8/2020
'makcan@gmail.com
'akcansoft.blogspot.com
'hiç bir garanti içermez
'tüm sorumluluk kullanıcıya aittir.
sr = Cells(1, 1).End(xlDown).Row 'son satır
For r = 2 To sr
a = 0 'artan
t = 0
Do
a = a + 1 'sonraki satır
'1.sütunda, alttaki hücre ile eşit ise
If Cells(r, 1).Value = Cells(r + a, 1).Value Then
'toplam eşit hücre sayısı. 1.sütun
t = t + 1
Else
'eşitlik yoksa döngüden çık
Exit Do
End If
Loop
a = 0 'artan
t2 = 0
If t > 0 Then '1. sütunda eşitlik varsa
Do
a = a + 1 'sonraki satır
'2.sütunda alttaki hücre ile eşit ise
If Cells(r, 2) = Cells(r + a, 2) Then
'toplam eşit hücre sayısı. 2.sütun
t2 = t2 + 1
'2. sütunlardaki eşitlik 1. sütun sayısı kadarsa
'döngüden çık
If t2 = t Then Exit Do
Else
'eşitlik yoksa döngüden çık
Exit Do
End If
Loop
End If

'1. ve 2. sütundaki eşit hücreler var ve aynı sayıdaysa
If t > 0 And (t = t2) Then
For x = 0 To t
Cells(r + x, 3).Value = "X" '3. sütuna X yaz
Xvar = True
Next
End If
'1. sütundaki aynı hücre sayısı kadar satır atla
r = r + t
DoEvents
Next
If Xvar Then 'X işaretli satır varsa
c = MsgBox("X işaretli satırlar silinsin mi?", vbYesNo)
If c = vbYes Then
For r = sr To 2 Step -1
If Cells(r, 3).Value = "X" Then
'Hücrede X varsa satırı sil
Rows(r).Delete
End If
DoEvents
Next
msg = "Satırlar silindi!" & vbCr
End If
Else
msg = "Silinecek satır yok!" & vbCr
End If
MsgBox msg & "İşlem tamam"
End Sub



ß
5 yıl
Teğmen
Konu Sahibi

Teşekkürler yardımlarınız için sorun çözüldü



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.