Aynı rakamın eksi ve artı olduğu farklı iki satırı silmek

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyanıza upload sitelerinden birinden link alıp buraya verebilirsiniz.
Altın üye olmayanlara dosya ekleme özelliği yok.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Linkiniz çalışmıyor.
Aşağıdaki linkten upload etmeyi deneyiniz.:cool:
DOSYA YÜKLE
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Oturum aç diyor.
6 nolu mesajdan verdiğim linkten yollayın.:cool:
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub artiEksiKarsilastirSil()
    bas = Timer

    Application.ScreenUpdating = False
    ActiveSheet.Copy after:=Sheets(1)

    Set dic1 = CreateObject("scripting.dictionary")
    Set dic2 = CreateObject("scripting.dictionary")

    g = Application.Transpose(Range("g1:g" & Cells(Rows.Count, "a").End(3).Row).Value)
    For i = 2 To UBound(g)
        al = g(i)
        If al > 0 Then
            If Not dic1.exists(al) Then
                ReDim w(1 To 1)
                w(1) = i
                dic1.Add al, w
            Else
                w = dic1(al)
                ReDim Preserve w(1 To UBound(w) + 1)
                w(UBound(w)) = i
                dic1.Item(al) = w
            End If
        ElseIf al < 0 Then
            al = Abs(al)
            If Not dic2.exists(al) Then
                ReDim w(1 To 1)
                w(1) = i
                dic2.Add al, w
            Else
                w = dic2(al)
                ReDim Preserve w(1 To UBound(w) + 1)
                w(UBound(w)) = i
                dic2.Item(al) = w
            End If
        End If
    Next i

    it1 = dic1.keys

    For i = 0 To UBound(it1)
        al1 = dic1.Item(it1(i))
        If dic2.exists(it1(i)) Then
            al2 = dic2.Item(it1(i))
            If UBound(al1) <= UBound(al2) Then ind = UBound(al1) Else ind = UBound(al2)
            For ii = 1 To ind
                Rows(al1(ii)).ClearContents
                Rows(al2(ii)).ClearContents
            Next ii
        End If
    Next i

    Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    Application.ScreenUpdating = True
    Debug.Print Format(Timer - bas, "0.000")
    Set dic1 = Nothing: Set dic2 = Nothing
End Sub
 
Son düzenleme:
Katılım
27 Mayıs 2007
Mesajlar
11
Excel Vers. ve Dili
excel 2007 turkce
çok teşekkür ederim. ancak excel sayfasını kitliyor. 20 dakikadır döndürüyor, bir sonuç bulamadı.
 
Katılım
27 Mayıs 2007
Mesajlar
11
Excel Vers. ve Dili
excel 2007 turkce
çok teşekkür ederim. elinize sağlık. bir de aynı çalışmanın tersini yapabilir miyiz. yani aynı olan rakamlar (bir eksi, bir artı olan) excel' de kalsın, aynı olmayan rakamlar uçsun.

Tekrar teşekkürler, iyi çalışmalar
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
çok teşekkür ederim. elinize sağlık. bir de aynı çalışmanın tersini yapabilir miyiz. yani aynı olan rakamlar (bir eksi, bir artı olan) excel' de kalsın, aynı olmayan rakamlar uçsun.

Tekrar teşekkürler, iyi çalışmalar
Kod:
Sub artiEksiEslerKalsin()
    bas = Timer

    Application.ScreenUpdating = False
    ActiveSheet.Copy after:=Sheets(1)

    Set dic1 = CreateObject("scripting.dictionary")
    Set dic2 = CreateObject("scripting.dictionary")

    g = Application.Transpose(Range("g1:g" & Cells(Rows.Count, "a").End(3).Row).Value)
    For i = 2 To UBound(g)
        al = g(i)
        If al > 0 Then
            If Not dic1.exists(al) Then
                ReDim w(1 To 1)
                w(1) = i
                dic1.Add al, w
            Else
                w = dic1(al)
                ReDim Preserve w(1 To UBound(w) + 1)
                w(UBound(w)) = i
                dic1.Item(al) = w
            End If
        ElseIf al < 0 Then
            al = Abs(al)
            If Not dic2.exists(al) Then
                ReDim w(1 To 1)
                w(1) = i
                dic2.Add al, w
            Else
                w = dic2(al)
                ReDim Preserve w(1 To UBound(w) + 1)
                w(UBound(w)) = i
                dic2.Item(al) = w
            End If
        End If
    Next i

    it1 = dic1.keys

    For i = 0 To UBound(it1)
        al1 = dic1.Item(it1(i))
        If dic2.exists(it1(i)) Then
            al2 = dic2.Item(it1(i))
            If UBound(al1) <= UBound(al2) Then ind = UBound(al1) Else ind = UBound(al2)
            For ii = 1 To ind
                Cells(al1(ii), "O") = "**"
                Cells(al2(ii), "O") = "**"
            Next ii
        End If
    Next i
    Cells(1, "O") = "**"
    Columns("O:O").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    Columns("O:O").ClearContents
    Application.ScreenUpdating = True
    Debug.Print Format(Timer - bas, "0.000")
    Set dic1 = Nothing: Set dic2 = Nothing
End Sub
 
Katılım
27 Mayıs 2007
Mesajlar
11
Excel Vers. ve Dili
excel 2007 turkce
G kolonunda aynı rakamın bir pozitif bir de negatif olan iki satırı mevcut. bu iki satırı silmek istiyorum. bir eksi bir artı olan rakamlar uçsun. bunun dışındakiler dursun, mümkün mü?

tekrar teşekkürler
 
Üst