Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 07-12-2017, 15:22   #1
FaLC10
 
Giriş: 18/03/2012
Mesaj: 17
Excel Vers. ve Dili:
2003
Varsayılan Mükerrer satırları teke düşürme.

Sıkıntım başlıkta da yazdığı ve örnekte de gözüktüğü gibidir.
Bir satır da bulunan tüm stun değerleri eşitse eğer tüm satırı komple silmesini uygulayacak macro arıyorum. Mükerrer kayıtları teke düşürme ile ilgili çok bilgi buldum fakat hem tüm satırın değerlerini kontrol edecek hemde tüm satırı silebilecek birşey bulamadım. Mümkünse de bu işlemi tüm sayfalar için yapması çok iyi olur. İlginiz için şimdiden teşekkürler

Not: Excel 2016

ornek: http://s8.dosya.tc/server5/lx4vzj/ornek.xlsx.html
FaLC10 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-12-2017, 16:08   #2
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 9,301
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Merhaba.

Öncelikle profilinizdeki Ms.Excel versiyon bilgisini güncellemenizi hatırlatayım.

Sorunuzda "teke düşürme" demişsiniz ama, örnek belgede mükerrerlerin tümünün silinmesini istemişsiniz.
Aşağıdaki şekilde işlem yaptığınızda mükerrerler teke düşürülmez, tümü silinir.

-- Sayfanın alt tarafında açıklama yapmak için kullandığınız birleştirilmiş hücrelerdeki birleştirmeyi kaldırın ve içeriğini silin,
-- Alt taraftan Sayfa1'in adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
-- Açılan VBA ekranında sağdaki boş alana aşağıdaki kod'u yapıştırın,
-- Kod'u çalıştırın.
.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub MUKERRER_BUL_SIL()
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
Set shf = Sheets("Sayfa1"): son = shf.Cells(Rows.Count, 1).End(3).Row
shf.Columns("J:J").NumberFormat = "General": shf.Columns("K:L").Insert Shift:=xlToRight
    With shf.Range("K2:K" & son)
        .Formula = "=A2&B2&C2&D2&E2&F2&G2&H2&I2&J2": .Value = .Value
    End With
    With shf.Range("L2:L" & son)
        .Formula = "=COUNTIF($K$2:K2" & ",K2)": .Value = .Value
    End With
shf.Range("A1:L1").AutoFilter Field:=12, Criteria1:=">1"
shf.Range("A2:J" & son).SpecialCells(xlCellTypeVisible).Delete Shift:=xlUp
On Error Resume Next
shf.Range("A1:L1").AutoFilter
shf.Columns("K:L").Delete Shift:=xlToLeft
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
MsgBox "İşlem tamamlandı.", vbInformation, "..::.. Ömer BARAN ..::.."
End Sub
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-12-2017, 16:39   #3
FaLC10
 
Giriş: 18/03/2012
Mesaj: 17
Excel Vers. ve Dili:
2003
Varsayılan

Alıntı:
Ömer BARAN tarafından gönderildi Mesajı Görüntüle
Merhaba.

Öncelikle profilinizdeki Ms.Excel versiyon bilgisini güncellemenizi hatırlatayım.

Sorunuzda "teke düşürme" demişsiniz ama, örnek belgede mükerrerlerin tümünün silinmesini istemişsiniz.
Aşağıdaki şekilde işlem yaptığınızda mükerrerler teke düşürülmez, tümü silinir.

-- Sayfanın alt tarafında açıklama yapmak için kullandığınız birleştirilmiş hücrelerdeki birleştirmeyi kaldırın ve içeriğini silin,
-- Alt taraftan Sayfa1'in adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
-- Açılan VBA ekranında sağdaki boş alana aşağıdaki kod'u yapıştırın,
-- Kod'u çalıştırın.
.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub MUKERRER_BUL_SIL()
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
Set shf = Sheets("Sayfa1"): son = shf.Cells(Rows.Count, 1).End(3).Row
shf.Columns("H:H").NumberFormat = "General": shf.Columns("I:J").Insert Shift:=xlToRight
    With shf.Range("I2:I" & son)
        .Formula = "=A2&B2&C2&D2&E2&F2&G2&H2": .Value = .Value
    End With
    With shf.Range("J2:J" & son)
        .Formula = "=COUNTIF($I$2:$I$" & son & ",I2)": .Value = .Value
    End With
shf.Range("A1:J1").AutoFilter Field:=10, Criteria1:=">1"
shf.Range("A2:J" & son).SpecialCells(xlCellTypeVisible).Delete Shift:=xlUp
shf.Range("A1:J1").AutoFilter
shf.Columns("I:J").Delete Shift:=xlToLeft
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
MsgBox "İşlem tamamlandı.", vbInformation, "..::.. Ömer BARAN ..::.."
End Sub
Ömer BARAN bey öncelikle ilgilendiğiniz için teşekkür ederim.
Sanırım yanlış anlaşıldığım için "tümünü sil" için kod vermişsiniz.

Tümünü silme ve teke düşürme kısmına fazla girmeden neticeye şöyle çıkabiliriz şimdi sizin kodunuz tümünü sildi. Tekini bana bırakması gerekli.

+ Yeni farkettim.
İlk 5-6 stun da aynı değerler var diyelim fakat birinde ekstradan bir bilgi daha olmasına rağmen onuda siliyor.

Daha detaylı örnek buyrun: http://s8.dosya.tc/server5/5z7lto/ornek.xlsx.html

Bu mesaj en son " 07-12-2017 " tarihinde saat 17:09 itibariyle FaLC10 tarafından düzenlenmiştir....
FaLC10 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-12-2017, 18:37   #4
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 9,301
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Tekrar merhaba.

Yeni belgenizin yapısı diğerinden farklı.

Cevaplarımın altındaki İMZA bölümünde de belirttiğim gibi ve
forumda soruların çözümüne destek veren tüm üye ve yöneticilerin ortak isteği,
soruların gerçek belgeyle aynı yapıda örnek belge üzerinden sorulması.

Bu tür sorunların olmaması bakımından; sorularınızı gerçek belgeyle aynı yapıda ve
gerçek belgedeki verileri temsil edebilecek nitelikte örnek veriler içeren örnek belge üzerinden sorarsanız daha hızlı ve net çözüme ulaşırsınız.

Önceki cevabımdaki kod'u güncelledim, sayfayı yenileyerek kod'un yeni haline bakınız.
.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-12-2017, 19:27   #5
Ziynettin
Altın Üye
 
Giriş: 17/04/2008
Şehir: istanbul
Mesaj: 419
Excel Vers. ve Dili:
office2010
Varsayılan

Alternatif kod olsun.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Benzersiz()
son = Cells(Rows.Count, 1).End(3).Row
a = Range("A2:J" & son)
Set d = CreateObject("scripting.dictionary")
ReDim b(1 To UBound(a), 1 To UBound(a, 2))
For x = 1 To UBound(a)
    deg = ""
    For y = 1 To UBound(a, 2)
        deg = deg & a(x, y)
    Next y
    If Not d.exists(deg) Then
        say = say + 1
        d(deg) = say
        For y = 1 To UBound(a, 2)
            b(say, y) = a(x, y)
        Next y
    End If
Next x
Application.ScreenUpdating = 0
Range("A2:J" & Rows.Count).ClearContents
[A2].Resize(say, UBound(a, 2)) = b
Application.ScreenUpdating = 1
MsgBox "işlem tamam.", vbInformation
End Sub
Ziynettin Çevrimiçi   Alıntı Yaparak Cevapla
Eski 08-12-2017, 00:09   #6
Korhan Ayhan
Moderatör
 
Korhan Ayhan kullanıcısının avatarı
 
Giriş: 15/03/2005
Şehir: ANTALYA
Mesaj: 22,720
Excel Vers. ve Dili:
OFFICE 2013-2016 PRO TR
Varsayılan

İlk mesajınızda excel 2016 olarak belirtmişsiniz.

Yeni versiyonlarda VERİ menüsünün altında YİNELENENLERİ KALDIR seçeneği bulunuyor. Çok hızlı bir şekilde istediğiniz sonuca ulaşabilirsiniz.
__________________
.
.
.

Soru sormadan önce forumumuzun aşağıdaki
bölümlerini incelediğinizde birçok sorunuza yanıt bulabilirsiniz.


Excel Dersanesi
Uygulamalı Excel Eğitimi
Excel İçin Örnek Uygulamalar
Video Dersane (***Altın Üyelere Özel***)

Lütfen sorularınızın çözümlendiğine dair geri dönüş mesajı yazınız...!
Lütfen yazım ve forum kurallarına uyalım...!
Lütfen sorularımızı açık ve net bir dille ifade edelim...!



FORUM KURALLARI
Korhan Ayhan Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-12-2017, 02:20   #7
FaLC10
 
Giriş: 18/03/2012
Mesaj: 17
Excel Vers. ve Dili:
2003
Varsayılan

Alıntı:
Ömer BARAN tarafından gönderildi Mesajı Görüntüle
Tekrar merhaba.

Yeni belgenizin yapısı diğerinden farklı.
Ömer hocam aslında ilk mesajımda altını çizerek belirttiklerim ile son gönderdiğim dosya yapısında yapılmak istenenler aynıydı. Dosyayı sıfırdan yaptığım için eksik kalmış olabilir.

+

Verdiğiniz macro yine tutukluluk yaptı.

Hata için örnek : http://s8.dosya.tc/server5/3pzi44/ornek.xlsx.html
Yaş ve boy bilgileri farklı ama yine herşeyi siliyor. Birde kodu 2. kez kullanmak istediğimde de herşeyi sildiğini gözlemledim.

Alıntı:
Korhan Ayhan tarafından gönderildi Mesajı Görüntüle
İlk mesajınızda excel 2016 olarak belirtmişsiniz.

Yeni versiyonlarda VERİ menüsünün altında YİNELENENLERİ KALDIR seçeneği bulunuyor. Çok hızlı bir şekilde istediğiniz sonuca ulaşabilirsiniz.
Korhan bey tam olarak istediğim o değil bahsettiğiniz sutunlardan tek tek silme işlemi, fakat ilgin için sevindim. Teşekkürler.
("Tüm kodu seç" butonunuza tıkladığımda ana sayfaya yönlendiriyor bilginiz olsun

Alıntı:
Ziynettin tarafından gönderildi Mesajı Görüntüle
Alternatif kod olsun.
[/code]
Aradığım tam da buydu. Ziynettin bey çok teşekkürler.
Yardımcı olmaya çalışan herkesin eline sağlık.

Problem çözülmüştür.
FaLC10 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-12-2017, 03:12   #8
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 9,301
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Verdiğim kod'da bir sorun yok.

Son örnek belgenizde sadece 4'üncü satırın silinmesi lazım.

Kod'un ikinci çalışmasında olan şey verilerin silinmesi değil, filtre nedeniyle satırların gizlenmesi.

Önceki cevabıma buna ilişkin bir satır ekledim (kırmızı renklendirdiğim satır).
Sayfayı yenileyerek önceki cevabımı kontrol edin.

Tekrar deneyin isterseniz.
.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 15:55


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım -- Beylikdüzü mali müşavir - Lingerie - Dyeing Machine - Karton Bardak- Çorlu Özel Eğitim- Site Yönetimi- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Araç Takip- Çorlu Su Arıtma- Gebze Emlak- Bakır Sülfat- Rampa- Rotary- Çorlu İnternet Sitesi- youngblood- Çorlu Sürücü Kursu- Çorlu Sandviç Panel- Şişli Avukat- Korona Test Kalemi- Çorlu Vinç- Çorlu Pimapen Tamiri- Çorlu Çelik Konstruksiyon- Çorlu Dans- Edirne Serbest Muhasebeci- Çorlu Etüt- İstanbul Botanik- Çorlu Sigorta-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden