- Katılım
- 10 Ekim 2010
- Mesajlar
- 1,469
- Excel Vers. ve Dili
- 2010 Türkçe
Merhaba,
Aşağıdaki kodda minik bir değişiklik yapılarak başka çalışma da farklı yer için kullanmak istiyorum. Sütun ve silinmesini istemediğim verileri yazıyorum sonuç olumsuz acaba kodlar arasında başka nereyi değiştirmem gerekiyor. Kodun çalışma özelliğiB3:B sütun aralığında MH, MB MD ile verileri satır olarak silmesi.
Ben bunu G3:G arasında 2 ve 3 olan veriler diğer ne varsa onları satır olarak silsin istiyorum.
Kodlar Sayın Korhan Bey in kalemindendir.
ORJİNAL HALİ
Sub SATIR_SİL()
Dim Veri(), X, dizi(), Alan As Range, SATIR As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
SATIR = Cells(Rows.Count, 2).End(3).Row
If SATIR < 3 Then Exit Sub
If SATIR = 3 Then
If UCase(Left(Cells(SATIR, "B"), 2)) <> "MB" And _
UCase(Left(Cells(SATIR, "B"), 2)) <> "MD" And _
UCase(Left(Cells(SATIR, "B"), 2)) <> "MH" Then
Rows(SATIR).Delete
End If
Else
Veri = Range("B3:B" & SATIR).Value
ReDim dizi(UBound(Veri))
For X = 1 To UBound(Veri)
dizi(X) = Veri(X, 1) & "#B" & X + 2
Next
For X = 3 To UBound(dizi) + 2
If UCase(Left(dizi(X - 2), 2)) <> "MB" And _
UCase(Left(dizi(X - 2), 2)) <> "MD" And _
UCase(Left(dizi(X - 2), 2)) <> "MH" Then
If Alan Is Nothing Then
Set Alan = Range(Split(dizi(X - 2), "#")(1))
Else
Set Alan = Application.Union(Alan, Range(Split(dizi(X - 2), "#")(1)))
End If
End If
Next
If Not Alan Is Nothing Then
Alan.EntireRow.Delete
End If
End If
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
DEĞİŞTİRİLMİŞ HALİ
Sub SATIR_SİL()
Dim Veri(), X, dizi(), Alan As Range, SATIR As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
SATIR = Cells(Rows.Count, 2).End(3).Row
If SATIR < 3 Then Exit Sub
If SATIR = 3 Then
If UCase(Left(Cells(SATIR, "G"), 2)) <> "2" And _
UCase(Left(Cells(SATIR, "G"), 2)) <> "3" Then
Rows(SATIR).Delete
End If
Else
Veri = Range("B3:B" & SATIR).Value
ReDim dizi(UBound(Veri))
For X = 1 To UBound(Veri)
dizi(X) = Veri(X, 1) & "#G" & X + 2
Next
For X = 3 To UBound(dizi) + 2
If UCase(Left(dizi(X - 2), 2)) <> "2" And _
UCase(Left(dizi(X - 2), 2)) <> "3" Then
If Alan Is Nothing Then
Set Alan = Range(Split(dizi(X - 2), "#")(1))
Else
Set Alan = Application.Union(Alan, Range(Split(dizi(X - 2), "#")(1)))
End If
End If
Next
If Not Alan Is Nothing Then
Alan.EntireRow.Delete
End If
End If
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Aşağıdaki kodda minik bir değişiklik yapılarak başka çalışma da farklı yer için kullanmak istiyorum. Sütun ve silinmesini istemediğim verileri yazıyorum sonuç olumsuz acaba kodlar arasında başka nereyi değiştirmem gerekiyor. Kodun çalışma özelliğiB3:B sütun aralığında MH, MB MD ile verileri satır olarak silmesi.
Ben bunu G3:G arasında 2 ve 3 olan veriler diğer ne varsa onları satır olarak silsin istiyorum.
Kodlar Sayın Korhan Bey in kalemindendir.
ORJİNAL HALİ
Sub SATIR_SİL()
Dim Veri(), X, dizi(), Alan As Range, SATIR As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
SATIR = Cells(Rows.Count, 2).End(3).Row
If SATIR < 3 Then Exit Sub
If SATIR = 3 Then
If UCase(Left(Cells(SATIR, "B"), 2)) <> "MB" And _
UCase(Left(Cells(SATIR, "B"), 2)) <> "MD" And _
UCase(Left(Cells(SATIR, "B"), 2)) <> "MH" Then
Rows(SATIR).Delete
End If
Else
Veri = Range("B3:B" & SATIR).Value
ReDim dizi(UBound(Veri))
For X = 1 To UBound(Veri)
dizi(X) = Veri(X, 1) & "#B" & X + 2
Next
For X = 3 To UBound(dizi) + 2
If UCase(Left(dizi(X - 2), 2)) <> "MB" And _
UCase(Left(dizi(X - 2), 2)) <> "MD" And _
UCase(Left(dizi(X - 2), 2)) <> "MH" Then
If Alan Is Nothing Then
Set Alan = Range(Split(dizi(X - 2), "#")(1))
Else
Set Alan = Application.Union(Alan, Range(Split(dizi(X - 2), "#")(1)))
End If
End If
Next
If Not Alan Is Nothing Then
Alan.EntireRow.Delete
End If
End If
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
DEĞİŞTİRİLMİŞ HALİ
Sub SATIR_SİL()
Dim Veri(), X, dizi(), Alan As Range, SATIR As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
SATIR = Cells(Rows.Count, 2).End(3).Row
If SATIR < 3 Then Exit Sub
If SATIR = 3 Then
If UCase(Left(Cells(SATIR, "G"), 2)) <> "2" And _
UCase(Left(Cells(SATIR, "G"), 2)) <> "3" Then
Rows(SATIR).Delete
End If
Else
Veri = Range("B3:B" & SATIR).Value
ReDim dizi(UBound(Veri))
For X = 1 To UBound(Veri)
dizi(X) = Veri(X, 1) & "#G" & X + 2
Next
For X = 3 To UBound(dizi) + 2
If UCase(Left(dizi(X - 2), 2)) <> "2" And _
UCase(Left(dizi(X - 2), 2)) <> "3" Then
If Alan Is Nothing Then
Set Alan = Range(Split(dizi(X - 2), "#")(1))
Else
Set Alan = Application.Union(Alan, Range(Split(dizi(X - 2), "#")(1)))
End If
End If
Next
If Not Alan Is Nothing Then
Alan.EntireRow.Delete
End If
End If
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
