• DİKKAT

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

Kodun, zemin dolgu rengine göre çalışması

  • Konbuyu başlatan Konbuyu başlatan unur
  • Başlangıç tarihi Başlangıç tarihi

unur

Altın Üye
Katılım
8 Aralık 2005
Mesajlar
854
Excel Vers. ve Dili
İş:Excel 2000 Türkçe
Ev:Excel xp Türkçe
İyi Geceler Arkadaşlar;
Şöyle bir koda ihtiyacım var yardımcı olursanız müteşekkir olacağım.
Aşağıdaki kod bir butona atanmış. Bunun öncesinde şöyle bir şarta ihtiyacım var.
G16:L1001 arasında verilerim var.Çeşitli koşullu biçimlendirmeler vs var.
G16:L1001 arasında Zemin dolgu rengi kırmızı olan herhangi bir hücre varsa Personel girişinde hatanız var mesajı almak.Eğer böyle kırmızı zemin rengi olan hücre yoksa aşağıdaki kodun çalışmasını istiyorum.

Sheets("PERSONEL GİRİŞİ").Select
Sheets("KANUN").Visible = False

Yardımcı olacak arkadaşlara şimdiden Teşekkürler.
 
. . .

Koşullu biçimlendirmenin hücredeki dolgu vb. biçimlendirmeleri makrolarda koşul olarak çalışmaz.

Onun yerine koşullu biçimlendirmedeki kuralı belirtiniz, kuralı makrolara alalım. O koşulu sağlıyorsa makronun çalışmasını sağlayabiliriz.

. . .
 
Hüseyin Hocam,Eğer koşullu biçimlendirme ile Zemin rengi kırmızı olan hücre Makroda koşul olmaz diyorsanız ancak yarın işyerinden yazabilirim.Gün boyu onunla uğraştım dosya işyerinde, dediğiniz şekilde kuralı makro içine alabilirsek çok mükemmel olacak.
Teşekkürler.
 
Hüseyin bey; Koşullu biçimlendirme ile hücre dolgu rengini kırmızı yaptığım hücreler ve formulleri aşağıdakilerdir.

G hücresi=EĞER(VE(ESAYIYSA(G16);(YADA(H16="";L16="")));"DOĞRU";"YANLIŞ")
I hücresi =EĞER(VE(EMETİNSE(I16);L16="");"DOĞRU";"YANLIŞ")
J hücresi =EĞER(VE(ESAYIYSA(J16);(YADA(K16="";L16="")));"DOĞRU";"YANLIŞ")
L hücresi =EĞER(BAĞ_DEĞ_DOLU_SAY(G16:K16)>=3;"DOĞRU";"YANLIŞ")

Bunlarıda makro ile halledip aşağıdaki sorumla birleştirebilirsek mükemmel bir şey olacak.
Yardımlarınız için şimdiden Teşekkürler.

İyi Geceler Arkadaşlar;
Şöyle bir koda ihtiyacım var yardımcı olursanız müteşekkir olacağım.
Aşağıdaki kod bir butona atanmış. Bunun öncesinde şöyle bir şarta ihtiyacım var.
G16:L1001 arasında verilerim var.Çeşitli koşullu biçimlendirmeler vs var.
G16:L1001 arasında Zemin dolgu rengi kırmızı olan herhangi bir hücre varsa Personel girişinde hatanız var mesajı almak.Eğer böyle kırmızı zemin rengi olan hücre yoksa aşağıdaki kodun çalışmasını istiyorum.

Sheets("PERSONEL GİRİŞİ").Select
Sheets("KANUN").Visible = False

Yardımcı olacak arkadaşlara şimdiden Teşekkürler.
 
. . .

Örnek dosya ekleyip, koşullu biçimlendirme de yapmak istediğiniz işlemleri üzerinde anlatınız.

. . .
 
Hüseyin bey; dosya ekledim açıklamaları dosyada da yazdım.İncelerseniz sevinirim.
 
Özür dilerim.Önceki mesajda dosyayı ekleyememişim.Dosya Ektedir.
Yardımcı olursanız sevinirim.
 

Ekli dosyalar

. . .

Koşullu biçimlendirmede kullandığınız formüllerin koşullarınıda belirtmeniz gerekiyor.
Koşullu biçimlendirme neye göre çalışıyor.

Örneğin L sütunundaki koşullu biçimlendirme G:L aralığındaki veri sayısı 3 e eşit veya fazlaysa kırmızı olur.

Diğer sütunlardaki açıklamlarıda yazınız.

. . .
 
G hücresi=EĞER(VE(ESAYIYSA(G16);(YADA(H16="";L16="") ));"DOĞRU";"YANLIŞ")
G16 hücresinde sayı varsa ve H16 yada L16 boşsa kırmızı olur.
İyi geceler.

I hücresi =EĞER(VE(EMETİNSE(I16);L16="");"DOĞRU";"YANLIŞ")
I16 hücresi metinse ve L16 boşsa kırmızı olur.

J hücresi =EĞER(VE(ESAYIYSA(J16);(YADA(K16="";L16="")));"DOĞ RU";"YANLIŞ")
J16 sayıysa ve K16 yada L16 boşsa kırmızı olur.

Tabi G16 dan L1001 e kadar veri girişi yapacağımıda dikkate alırsanız sevinirim.

. . .

Koşullu biçimlendirmede kullandığınız formüllerin koşullarınıda belirtmeniz gerekiyor.
Koşullu biçimlendirme neye göre çalışıyor.

Örneğin L sütunundaki koşullu biçimlendirme G:L aralığındaki veri sayısı 3 e eşit veya fazlaysa kırmızı olur.

Diğer sütunlardaki açıklamlarıda yazınız.

. . .
 
. . .

Bir kodlama yazdım ancak kontrol etmem gerekiyor.
5-6 satırlık bir örnek verin.
Aktarılması için doğru olan kırıterlere sahip olsunlar.
Bir kaç satırlıkta hatalı kayıt için örnek verin.

. . .
 
Hüseyin Bey, 7.Mesajdaki dosyada gerekli açıklamaları yapmıştım. O dosyadan yararlanabilirsiniz. Ancak o dosyada koşullu biçimlendirmelerde formülleri duruyor.
Koşullu biçimlendirmedeki formüller silindikten sonra kodların denemesini yapabilirsiniz.
Teşekkürler.
 
. . .

Ekteki dosyayı deneyiniz.
Koşullu biçimlendirmeleri silmeyin.
Veri girişi bittikten sonra, sayfadaki önzileme butonunu tıklayın.
Hatalı kayıt varsa uyaracaktır, yoksa önizleme ekranına geçecektir.

1001 satırlık dosyanızda aşağıdaki kodu değiştirirsiniz.
Kod:
For i = 16 To WorksheetFunction.CountA(Range("D16:[COLOR="Red"][B]D30[/B][/COLOR]")) + 16

. . .
 

Ekli dosyalar

Hüseyin Bey,Allah razı olsun.Şu an deneme şansım oldu. Bir proplem gözükmüyor gayet güzel çalışıyor.Tekrar Teşekkürler.
 
. . .

1000 kişilik listeniz oluyor mu ? O zaman kodlar biraz uzun sürebilir.
Ben askerdeyken 90 civarı falan oluyorduk. Onda bile karışıklıklar çıkıyordu.

Kodları şu koşullarda da deneyiniz;
Adı olupta G:L aralığında veri olmayanlarda
İsim listesinde arada boşluk olduğunda

. . .
 
Kodlardan çok fazla anlamam galiba bu koddan dolayı isim soyisme göre yaptığı için veri ne kadar azsa kodlar o kadar iyi çalışıyor sanırım.Eline sağlık. Kullandıkça hata varsa ortaya çıkar şimdilik bir proplem gözükmüyor.
For i = 16 To WorksheetFunction.CountA(Range("D16:D30")) + 16
 
. . .

Aşağıdaki belirttiğim kodları ilaveleri ediniz. Biraz daha hızlanacaktır.

Kod:
Sub kod()
[B][COLOR="Red"]Application.ScreenUpdating = False[/COLOR][/B]
ok = 1

[COLOR="Green"]'kodların devamı
'...
'..
'.[/COLOR]

If ok > 1 Then
[B][COLOR="Red"]Application.ScreenUpdating = True[/COLOR][/B]
MsgBox " Hata Var ", vbCritical
Exit Sub
Else: End If
Next i

[B][COLOR="Red"]Application.ScreenUpdating = True[/COLOR][/B]
Call Düğme148_Tıklat ' önizleme

End Sub

. . .
 
Teşekkürler Hüseyin Bey Elinize sağlık.
 
Geri
Üst