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, 10:46   #1
desıgner
Altın Üye
 
Giriş: 05/04/2017
Mesaj: 25
Excel Vers. ve Dili:
2007 tr
Varsayılan (Dizi) makrosu ile hücre karşılaştırma

Merhabalar, ekli dosyada açıklama yaptım.
Normalinde for döngüsü ile kullandığım makro
çok yavaş kaldığı için; dizi makrosunun da çok
hızlı çalıştığını bildiğim için, bu yardımı istiyorum.
Dizi makrosuna hakim arkadaşların yardımlarını bekliyorum.
İyi çalışmalar.
Eklenmiş Dosyalar
Dosya Türü: rar ornek.rar (7.5 KB, 20 Görüntülenme)
desıgner Çevrimdışı   Alıntı Yaparak Cevapla
Eski 25-09-2017, 11:01   #2
askm
Altın Üye
 
Giriş: 04/06/2005
Şehir: k.maraş
Mesaj: 1,698
Excel Vers. ve Dili:
2010-2016
Varsayılan

Aşağıdaki şekilde bir kaç saniye sürüyor.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub askm()
zaman = Timer
For i = 7 To 15
    If WorksheetFunction.CountIf(Range(Cells(8, i), Cells(65000, i)), Cells(4, i)) > 0 Then
        Cells(4, i).Interior.Color = vbBlue
    End If
Next
MsgBox Format(Timer - zaman, "mm:ss")
End Sub
__________________
excel 2010- türkçe
askm Çevrimiçi   Alıntı Yaparak Cevapla
Eski 25-09-2017, 11:11   #3
desıgner
Altın Üye
 
Giriş: 05/04/2017
Mesaj: 25
Excel Vers. ve Dili:
2007 tr
Varsayılan

merhaba;
benim açıklamam yeterli olmamış sanırım.
Yeşil zemindeki veri sarı zeminde var ise
sarı zemindeki veri mavi ile boyanacak.
desıgner Çevrimdışı   Alıntı Yaparak Cevapla
Eski 25-09-2017, 12:46   #4
antonio
Destek Ekibi
 
antonio kullanıcısının avatarı
 
Giriş: 13/02/2011
Mesaj: 1,037
Excel Vers. ve Dili:
Excel 2013
Varsayılan

Şöyle bir kod hazırladım. Umarım işinizi görür.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub renklendir()
Dim sh As Worksheet, ss As Long, sut As Long

Set sh = Sayfa1
ss = sh.Range("G:O").Find("*", , , , xlByRows, xlPrevious).Row
sut = sh.Range("XX4").End(xlToLeft).Column
For i = 8 To ss
    For d = 7 To sut
        aranan = sh.Cells(4, d).Value
        If sh.Cells(i, d).Value = aranan Then
            sh.Cells(i, d).Interior.ColorIndex = 28
        End If
    Next d
Next i
MsgBox "İşlem tamamlandı", vbInformation, "antonio"
End Sub
__________________
Özel mesaj sistemini devre dışı bıraktım.
Yardım istemeden önce Forum Kurallarını okuyunuz.
Aynı konuyu farklı bölümlerde açanların sorularını yanıtlamıyorum, bu durumu fark etmeden yanıtlamışsam, mesajımı siliyorum.
antonio Çevrimdışı   Alıntı Yaparak Cevapla
Eski 25-09-2017, 17:30   #5
Murat OSMA
Altın Üye
 
Murat OSMA kullanıcısının avatarı
 
Giriş: 23/05/2011
Şehir: İstanbul
Mesaj: 4,871
Excel Vers. ve Dili:
Excel 2016 - Türkçe
Varsayılan

Koşullu Biçimlendirme'ye bu formülü girip biçim seçerek de aynı sonuca daha hızlı ulaşabilirsiniz.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
=G8=G$4
__________________
Excel'e dair her şey; excelarsivi.com 'da..
Murat OSMA Çevrimdışı   Alıntı Yaparak Cevapla
Eski 26-09-2017, 10:15   #6
desıgner
Altın Üye
 
Giriş: 05/04/2017
Mesaj: 25
Excel Vers. ve Dili:
2007 tr
Varsayılan

Sayın Antonio; emeğinize sağlık. Maalesef mevcut makro ile aynı sürede işlem yapıyor.
SAyın Murat ; güzel öneri lakin verinin bulunduğu alanda başkaca işlemlerde yapılıyor.
nasıl bir yol izlemeliyim bilemedim.

Başka öneriler var ise lütfen paylaşınız değerli arkadaşlar.
desıgner Çevrimdışı   Alıntı Yaparak Cevapla
Eski 26-09-2017, 21:04   #7
Ziynettin
Altın Üye
 
Giriş: 17/04/2008
Şehir: istanbul
Mesaj: 421
Excel Vers. ve Dili:
office2010
Varsayılan

Merhaba,

Tablonuzu 366.560 satıra kadar çoğaltarak 17'i saniyede aşağıdaki kod ile alınan sonuç.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub renk_ver()
Application.ScreenUpdating = 0
Application.Calculation = xlCalculationManual
Z = TimeValue(Now)
son = Range("G:O").Find("*", , , , xlByRows, xlPrevious).Row
Range("G8:O" & son).Interior.ColorIndex = xlNone
Set k = Range("G4:O" & son)
a = k
For y = 1 To UBound(a, 2)
    aranan = a(1, y)
    For x = 5 To UBound(a)
        If a(x, y) = aranan Then
            k.Cells(x, y).Interior.Color = vbBlue
        End If
    Next x
Next y
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = 1
MsgBox "İşlem süreniz ;  " & CDate(TimeValue(Now) - Z)
End Sub
Ziynettin Çevrimdışı   Alıntı Yaparak Cevapla
Eski 27-09-2017, 14:04   #8
desıgner
Altın Üye
 
Giriş: 05/04/2017
Mesaj: 25
Excel Vers. ve Dili:
2007 tr
Varsayılan

Sayın Ziynettin, merhabalar. Öncelikle teşekkür ederim.

Sisteminizi merak ettim doğrusu ben 17 saniyeyi 70.000 de görebildim.

Koda gelir isek. Bu kodu ben 850x 4 yaklaşık olarak 3500 kez çalıştırıyorum.
Halen kullandığım kod ile aralarında fark; eskisi 8 saniye yeni kod 5.6 saniyede işlem yapıyor.

Siz daha iyi biliryor sunuz elbette;
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Set k = Range("G4:O" & son)
ben bu satırı
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Set k = Range("G4:O4")
şeklinde değiştirdim kod işini yapmadı. Bu satırı da siz en son satıra kadar (dizi) ye almışsınız.
Bundan dolayı sanırım işlem daha uzun sürüyor.
Çünkü daha önceden normal makro ile dizi makrosu arasında bu kadar kısa fark görmemiştim.
Acaba bahsettiğim hususta bir şey yapılabilir mi ?
desıgner Ç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:09


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