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

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
942
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
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

metehan8001

Yasaklı
Katılım
8 Nisan 2010
Mesajlar
125
Excel Vers. ve Dili
Office 2007 -2016 TR
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
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
942
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
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.
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
942
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
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

metehan8001

Yasaklı
Katılım
8 Nisan 2010
Mesajlar
125
Excel Vers. ve Dili
Office 2007 -2016 TR
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:

metehan8001

Yasaklı
Katılım
8 Nisan 2010
Mesajlar
125
Excel Vers. ve Dili
Office 2007 -2016 TR
İ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.
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
942
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
İ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)
 

metehan8001

Yasaklı
Katılım
8 Nisan 2010
Mesajlar
125
Excel Vers. ve Dili
Office 2007 -2016 TR
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
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
942
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Elinize sağlık Metehan Bey, bu sefer oldu çok teşekkür ederim.(y):giggle:
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
942
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
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.
 

metehan8001

Yasaklı
Katılım
8 Nisan 2010
Mesajlar
125
Excel Vers. ve Dili
Office 2007 -2016 TR
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.
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
942
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Teşekkür ederim ilginiz için Metehan bey , Lakin bu da çözüm olmadı:-(

Altın üye değilim diye yazmışsınız. Bende upload olarak link yollayım demiştim.

https://www.dosyaupload.com/5z7g
 

metehan8001

Yasaklı
Katılım
8 Nisan 2010
Mesajlar
125
Excel Vers. ve Dili
Office 2007 -2016 TR
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.
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
942
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
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
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
942
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
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.
 

metehan8001

Yasaklı
Katılım
8 Nisan 2010
Mesajlar
125
Excel Vers. ve Dili
Office 2007 -2016 TR
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.
 
Üst