• DİKKAT

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

Çözüldü Koşula Göre Veri Alma/Dolu hücre Sayma Hakkında..

Katılım
8 Aralık 2011
Mesajlar
964
Excel Vers. ve Dili
Excel 2016,32bit
Merhabalar,
Ekte bulunan dosya içerisindeki "DIŞLAMA" sayfası içerisinde açıklama yapmaya çalıştım. Değerlerim hücreye formül ile geldiğinden sıkıntılar yaşadığımdan ötürü değerleri kod ile almak istemekteyim. Kısaca bahsetmem gerekir ise ,
Dışlama sayfasında ki , B3 Hücresine ,

"AL" Sayfasındaki "O3" değeri boş ise "A3" değeri gelmesi gerekiyor,


En sonunda da ;

B20 Hücresine , B3:B17 İçerisindeki dolu hücrelerin sayısının yazılması.
 

Ekli dosyalar

Dosyayı inceleyemedim ama anlattıklarına göre aşağıdaki kodlar işinizi görecektir.

Kod:
Sub dene ()
if sheets("al").Range("o3").value = "" then
Sheets("dışlama").Range("b3").value = sheets("al").range("A3")
Else
Sheets("dışlama").Range("b3").value = sheets("al").range("o3")
End if
Sheets("dışlama").range("b20").value=worksheetfunction.countA(Range("b3:b17"))
End sub
 
Metehan bey, ilginize teşekkür ederim. Telefondan baktığım dan dolayı deneme fırsatım olmadı, iş yerine vardığımda ilk fırsatta geri dönüş yapacağım.
 
Metahan Bey merhabalar,
Kodları denedim hatta diğer hücreler için çoğalttım fakat;
B3 hücresine , AL sayfasındaki O3 hücresi BOŞ olur ise herhangi bir değer gelmemesi gerekiyor.
Dosyada da mevcut örnek üzerinden açıklarsam,
AL sayfasındaki O3 hücresi dolu , kodu çalıştırdığımda B3 hücresine değer atıyor.:unsure:
 

Ekli dosyalar

Metahan Bey merhabalar,
Kodları denedim hatta diğer hücreler için çoğalttım fakat;
B3 hücresine , AL sayfasındaki O3 hücresi BOŞ olur ise herhangi bir değer gelmemesi gerekiyor.
Dosyada da mevcut örnek üzerinden açıklarsam,
AL sayfasındaki O3 hücresi dolu , kodu çalıştırdığımda B3 hücresine değer atıyor.:unsure:
Ben yanlış anlamışım. Aşağıdaki kodları deneyiniz.
Kod:
Sub dene ()
if sheets("al").Range("o3").value = "" then
Sheets("dışlama").Range("b3").value = sheets("al").range("a3")
End if
Sheets("dışlama").range("b20").value=worksheetfunction.countA(Range("b3:b17"))
End sub
 
Son düzenleme:
İlk mesajınızla sonra ki mesajınız bu konuda çakışıyor.

Al sayfasındaki o3 değeri boş ise ve b3 boş olması gerekiyorsa

Birinci satırdaki = işaretini <> ile değiştirin.
 
İlk mesajınızla sonra ki mesajınız bu konuda çakışıyor.

Al sayfasındaki o3 değeri boş ise ve b3 boş olması gerekiyorsa

Birinci satırdaki = işaretini <> ile değiştirin.


Metahan Bey, çok çok özür dilerim. Kesinlikle haklısınız. Düzeltmem ve son şekliyle anlatmam gerekir ise ;

B3 Hücresine ,

AL Sayfasındaki; "O3" Değeri BOŞ ise "A3" Değerinin gelmesi,

EĞER; AL Sayfasındaki "O3" Değeri DOLU ise DIŞLAMA sayfasındaki B3 Değerinin BOŞ olması gerekiyor.

2 nolu mesajınızdaki kodlar aslında bu isteğime uygun görünüyor fakat O3 dolu olduğu halde B3 e değer atandı.:unsure:





En sonunda ;

B20 Hücresine , B3:B17 İçerisindeki DOLU hücre sayısının,

B22 Hücresine , AL Sayfasındaki , F3:F17 aralığındaki BOŞ hücrelerin sayısının yazılması gerekiyor.( sonradan ekleme yapmam gerekti)
 
Kod:
Sub dene ()
sheets("dışlama").range("b3")=""
if sheets("al").Range("o3").value = "" then
Sheets("dışlama").Range("b3").value = sheets("al").range("a3")
else
Sheets("dışlama").range("b3").value=""
End if
Sheets("dışlama").range("b20").value=worksheetfunction.countA(Range("b3:b17"))
Sheets("dışlama").range("b22").value=WorksheetFunction.CountBlank(sheets("al").Range("f3:f17"))
End sub
 
Metahan Bey,
Ne yazık ki bu formüllerle başım dertte:-( Varlığı bir sorun, yokluğu daha başka bir sorun benim için:giggle:

Kodları B3 'ten B17 'ye kadar olacak şekilde tek tek çoğalttım. Kontrollerimi de yaptım sorunsuz çalıştı. Fakat AL sayfasındaki "O" sütununa verileri formül ile aldığımda yani O sütununda formül var iken kodlar sanırım tüm hücreleri dolu gördüğünden , doluymuş gibi sonuç veriyor.:-(
Sormak istediğim,
AL sayfasındaki O sütunu formülsüz mü olmalı illaki.
 
Gold üye olmadığım için dosyanızı inceleyemedim.
Formülü buraya bir yazin.

Ayrıca aşağıdaki kodu
Kod:
if sheets("al").Range("o3").value = "" then

Bununla değiştirin bakalım işinizi görecek mi?

Kod:
if sheets("al").Range("o3").value > 0 then

Mobilden yazdım, yazım hatası olabilir.
 
Dışlama sayfasının ismine sağ tıklayıp kod görüntüle deyiniz. Açılan ekrana aşağıdaki kodları yazınız.
Aynı şekilde al sayfası içinde yapınız. ( Al sayfasındaki formülü koda döktük)
Kod:
Private Sub Workbook_Activate()
Set sal = sheets("al")
For i = 3 to sal.cells(rows.count, 1)end(xlup).row
if not  sal.Cells(i,2)= "" then
Sal.Cells(i, "o")=sal.cells(i,2)
else
sal.cells(i,"o")=""
end if
Next i
End sub

Mobilden yazdım, yazım hatası olabilir.
 
Yalnız Metehan Bey,
"O" sütunundaki formül baya uzun olduğundan ben daha basit bir formül yazmıştım o kısma:giggle::rolleyes::unsure:

13 nolu mesajınızdaki kodları dediğiniz gibi ekledim fakat bu kısmı kırmızı boyalı oldu.:unsure:
Kod:
For i = 3 to sal.cells(rows.count, 1)end(xlup).row
 
Merhabalar Metehan Bey,
Sorunu "O" sütununda bulunan formüllü değerleri kopyalayıp, DIŞLAMA sayfasında belirlediğim sütuna yapıştırdım ve bu işlemi makro kaydet ile yaparak kod haline çevirdim , sonrasında 8 nolu mesajınızdaki kodları kullanarak şimdilik sorunumu halletmiş oldum.
 
Yalnız Metehan Bey,
"O" sütunundaki formül baya uzun olduğundan ben daha basit bir formül yazmıştım o kısma:giggle::rolleyes::unsure:

13 nolu mesajınızdaki kodları dediğiniz gibi ekledim fakat bu kısmı kırmızı boyalı oldu.:unsure:
Kod:
For i = 3 to sal.cells(rows.count, 1)end(xlup).row

Nokta koymamışım.

Kod:
For i = 3 to sal.cells(rows.count, 1).end(xlup).row

Sorunu çözdü iseniz sıkıntı yok tabiki.
 
Geri
Üst