• DİKKAT

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

RemoveDuplicates Kullanımı vba

Katılım
23 Eylül 2004
Mesajlar
1,754
Excel Vers. ve Dili
Excel 2010 TR
ActiveSheet.Range("A1:A100").RemoveDuplicates Columns:=1, Header:=xlNo


Excel içerisinde benzerleri kaldıran bu komutu.

Alan1=1
Alan2=3
Alan3=1
Alan4=4
Alan5=6
Alan6=2
Alan7=3

vba tanımlanan yukarıdaki alanlar için nasıl çalıştırabiliriz.
Range(Alan1,Alan2,Alan3,Alan4,Alan5,Alan6,Alan7)
 
Merhaba,

Excel dosyanızı yedekledikten sonra bahsettiğiniz hücreleri seçip makro kaydet yöntemi ile RemoveDuplicates işlemini uygulayın. Sonra oluşan kodları asıl dosyanıza uyarlarsınız.
 
Merhaba,

Excel dosyanızı yedekledikten sonra bahsettiğiniz hücreleri seçip makro kaydet yöntemi ile RemoveDuplicates işlemini uygulayın. Sonra oluşan kodları asıl dosyanıza uyarlarsınız.

Merhaba Korhan bey.

Problem bu sayıların herhangi bir hücrede yazılı olmaması.

For x1=1 to 10
For x2=1 to 10
For x3=1 to 10
For x4=1 to 10

Bu arada benim aşağıya X verilerinden benzersiz olanları bulmam gerekiyor ilk döngüde hepsi 1 olacağı için değeri 1 veren X değerleri 7,8,9,10 ise sonucu 4 veren bir formül gibi

Range(X1,x2,x3,x4).RemoveDuplicates


Next x4,x3,x2,x1

inşallah anlatabilmişimdir..
 
Dosyanızın küçük bir örneğini paylaşım sitelerine yükleyip linkini foruma ekleyiniz.

Daha sonra hangi verilerden benzersiz olanları bulmak istediğinizi detaylıca açıklayınız.

Buna göre çözüm üretebiliriz.
 
Dosyanızın küçük bir örneğini paylaşım sitelerine yükleyip linkini foruma ekleyiniz.

Daha sonra hangi verilerden benzersiz olanları bulmak istediğinizi detaylıca açıklayınız.

Buna göre çözüm üretebiliriz.

Korhan bey

1 nolu Txt dosyasından "88;19;95;32;72;10;91;28;65;50;1;26;3;41;61;" satırından veriyi alıyorum diğer bir txt dosyasından "88;5;92;32;65;15;91;28;65" verisini alıyorum benim istediğim işlem bu iki veri arasında ortak küme elemanını bulmak..

Txt1= Split(Satır,";") Txt2= Split(Satır,";") komutlarıyla ayırıp for döngüsü kullanarak aşağıdaki şekilde yapıyorum fakat işlem uzuyor bunu daha kısa nasıl yapabilirim.


For x1= 0 to 14
For x2=0 to 8

if Txt1(x1)=Txt2(x2) then Adet=Adet+1

Next x2,x1
 
Kod:
Sub test()
    txt1 = Split([a1], ";")
    txt2 = Split([a2], ";")
    With CreateObject("Scripting.Dictionary")
        For x1 = 0 To UBound(txt1)
            .Add txt1(x1), ""
        Next x1
        For x2 = 0 To UBound(txt2)
            If .exists(txt2(x2)) Then MsgBox txt2(x2) & vbCr & "Ortak değer"
        Next x2
    End With
End Sub
 
Kod:
Sub test()
    txt1 = Split([a1], ";")
    txt2 = Split([a2], ";")
    With CreateObject("Scripting.Dictionary")
        For x1 = 0 To UBound(txt1)
            .Add txt1(x1), ""
        Next x1
        For x2 = 0 To UBound(txt2)
            If .exists(txt2(x2)) Then MsgBox txt2(x2) & vbCr & "Ortak değer"
        Next x2
    End With
End Sub

Çok teşekkürler sayın veyselemre. Yukarıdaki işlem daha yavaş çalışıyor :(
 
Son düzenleme:
Neden dosyanızı eklemiyorsunuz?
 
Neden dosyanızı eklemiyorsunuz?

Sayın Korhan bey şuan şirketteyim ve internet kısıtlamaları sebebiyle dosya ekleyemiyorum. 1000 satırlı 300 tane txt dosyası için ekteki karşılaştırmayı yapmaya çalışıyorum.
 
Geri
Üst