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 25-09-2017, 18:52   #1
beyinmuhendisi
Altın Üye
 
Giriş: 08/07/2011
Şehir: İstanbul
Mesaj: 208
Excel Vers. ve Dili:
TR, Office 2007/2010
Varsayılan Şarta Bağlı Alfabetik İki Ayrı Liste Alma

Gerekli açıklama Dosyada da mevcuttur.
Bir çok şartlı liste örneklerine baktım ancak başaramadım.

"Alfabetik Sırala" butonuna bastığımda;
C sütununda, "M" işaretli olan,
B Sütunundaki öğretmen listesini L4 başlangıç L sütuna alfabetik;
C sütununda boş olan,
B Sütunundaki öğretmen listesinin de M4 başlangıç M sütununa alfabetik sıralamam gerekiyor. Olması gereken sonuç L ve M sütunlarında gösterilmiştir. Gerekli kod yardımına ihtiyacım var. İlginize teşekkür ederim!
Eklenmiş Dosyalar
Dosya Türü: xls Şartlı Liste.xls (120.5 KB, 12 Görüntülenme)
beyinmuhendisi Çevrimdışı   Alıntı Yaparak Cevapla
Eski 26-09-2017, 01:20   #2
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 9,086
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Merhaba.

Gördüğüm kadarıyla B sütunundaki isimler zaten alfabetik sıralı.
O halde sadece C sütunundaki M harfi kriterine göre işlem yaparak sonuç alınabilir.

Aşağıdaki kod'u ilgili sayfanın kod bölümüne uygulayın ve çalıştırın.
(alt taraftan ilgili sayfa adına fareyle sağ tıkalayıp KOD GÖDÜRTÜLE seçildiğinde açılan VBA ekranında sağdaki boş alana yapıştırın)
.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub ALFABETIK_IKILI_LISTELE()
Range("L4:M" & Rows.Count).ClearContents
For sat = 4 To Cells(Rows.Count, "B").End(3).Row
    sut = 13
    If Cells(sat, 3) = "M" Then sut = 12
    bos = Cells(Rows.Count, sut).End(3).Row + 1
    If bos = 3 Then bos = 4
    Cells(bos, sut) = Cells(sat, 2)
Next
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 26-09-2017, 10:47   #3
beyinmuhendisi
Altın Üye
 
Giriş: 08/07/2011
Şehir: İstanbul
Mesaj: 208
Excel Vers. ve Dili:
TR, Office 2007/2010
Varsayılan

Sayın Ömer BARAN Hızır gibi yardımıma yetişiyorsunuz. Çok teşekkür ederim.
Yazdığınız kodu şu şekilde düzenledim. Emeğinize sağlık!

Alıntı:
Sub ALFABETIK_IKILI_LISTELE()
Application.ScreenUpdating = False
Application.EnableEvents = False
ActiveSheet.Unprotect ""
Range("B4:C" & Cells(Rows.Count, "B").End(3).Row).Sort key1:=[B4], ORDER1:=xlAscending
Range("L4:M" & Rows.Count).ClearContents
For sat = 4 To Cells(Rows.Count, "B").End(3).Row
sut = 13
If UCase(Cells(sat, 3)) = "M" Then sut = 12
bos = Cells(Rows.Count, sut).End(3).Row + 1
If bos = 3 Then bos = 4
Cells(bos, sut) = Cells(sat, 2)
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
ActiveSheet.Protect ""
End Sub

Bu mesaj en son " 26-09-2017 " tarihinde saat 14:55 itibariyle beyinmuhendisi tarafından düzenlenmiştir....
beyinmuhendisi Çevrimdışı   Alıntı Yaparak Cevapla
Eski 26-09-2017, 10:56   #4
beyinmuhendisi
Altın Üye
 
Giriş: 08/07/2011
Şehir: İstanbul
Mesaj: 208
Excel Vers. ve Dili:
TR, Office 2007/2010
Varsayılan

Tek bir sorun var o da büyük "M", küçük "m" duyarlılığı. Bu sorunu nasıl aşabiliriz?
beyinmuhendisi Çevrimdışı   Alıntı Yaparak Cevapla
Eski 26-09-2017, 11:18   #5
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 9,086
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Son satır numarasına ilişkin Cells(Rows.Count, "B").End(3).Row kısmını 111 olarak değiştirdiğinize göre,
B sütunundaki son dolu satır numarası sabit olmalı.

Aşağıdaki ilgili kısımları (kırmızı renklendirdim) değiştirin.
.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Range("B4:C" & Cells(Rows.Count, "B").End(3).Row).Sort key1:=[B4], ORDER1:=xlAscending
Range("L4:M" & Rows.Count).ClearContents
For sat = 4 To Cells(Rows.Count, "B").End(3).Row
sut = 13
If UCase(Cells(sat, 3)) = "M" Then sut = 12
__________________
.
☾✭ İ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 26-09-2017, 14:07   #6
beyinmuhendisi
Altın Üye
 
Giriş: 08/07/2011
Şehir: İstanbul
Mesaj: 208
Excel Vers. ve Dili:
TR, Office 2007/2010
Varsayılan

Yeniden emeğinize sağlık. Teşekkür ederim.
Yardımınız sonrası 3. mesajdaki kodu güncelledim.
İyi çalışmalar!
beyinmuhendisi Çevrimdışı   Alıntı Yaparak Cevapla
Eski 26-09-2017, 14:24   #7
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 9,086
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Bir önceki cevabımda; B:C sütununu alfabetikıralamayla ilgili satırdaki C111'i unutmuşum.
Bir önceki cevabımda değişiklik yaparak mavi renklendirdim.
Sayfayı yenileyerek bir önceki evabımı konrtol edin.

Kullandığınız belgedeki kod'da o kısmı da değiştirin.
.
__________________
.
☾✭ İ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 26-09-2017, 14:56   #8
beyinmuhendisi
Altın Üye
 
Giriş: 08/07/2011
Şehir: İstanbul
Mesaj: 208
Excel Vers. ve Dili:
TR, Office 2007/2010
Varsayılan

Güncelledim. Teşekkür ederim!
beyinmuhendisi Ç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 17:57


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

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım - Tarot Falı - invest in turkey - Lingerie - Dyeing Machine - Karton Bardak- Çorlu Özel Eğitim- Site Yönetimi- Led Aydınlatma- 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- Boru Profil- Gebze Emlak- Beylikdüzü Temizlik- İstanbul Burun Estetiği- Bakır Sülfat- Rampa- Rotary- Çorlu İnternet Sitesi- youngblood- Çorlu Palet- Çerkezköy Palet-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden