VBA Satır Kolon bilgisini almak.

Katılım
8 Nisan 2022
Mesajlar
7
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
11-04-2023
Merhaba,

Hazırladığım bir rapor için aşağıda belirttiğim konuda bir sorun yaşıyorum.

For TKP = 33 To 55

BLG4 = s1.Cells(2, "B") ' Değişkene hücreden değer atıyor.
bulunan = WF.Match(BLG4, S2.Columns(TKP), 0) ' TKP=33 ile 33. kolonda hangi satırda olduğunu buluyor. orjinali "s2.Cells(bulunan, "AG")"

DEĞİŞ = "GGG" & S2.Cells(bulunan, "AG") ' hücredeki bilgiyi aldıktan sonra başına GGG ekleyerek değişkene atıyorum.
S2.Cells(bulunan, "AG") = DEĞİŞ ' değeri ilgili hücreye yazdırıyorum

Burada kolon bilgisini for next ile devam ettireceğim için DEĞİŞ = "GGG" & S2.Cells(bulunan, "AG") yerine DEĞİŞ = "GGG" & S2.Cells(bulunan, Columns(TKP)) yaptığımda değeri almıyor. Kolon adını "AG" yazmadan kolon sayısı ile bulmak istiyorum.

Ekleyebileceğim bir dosya olmadığından ( çözemediğimden ) bu şekilde anlatmaya çalıştım.

Yardımınızı rica ederim.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,106
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
For döngüsünü kurarken TKP değişkenini oluşturmuşsunuz zaten. Burada "AG" metin değeri yerine TKP değişkenini kullanabilirsiniz.
 
Katılım
8 Nisan 2022
Mesajlar
7
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
11-04-2023
Merhaba
"AG" yerine TKP yazarak AG nin kolon sayısı olan 33 atanıyor ama sonuç doğru çıkmıyor.

DEĞİŞ = "GGG" & S2.Cells(bulunan, Columns(TKP)) bu şekilde yaptığımda sonuç hatalı çıkıyor.

yaklaşık 20 kolonda sırasıyla aradığım veri var mı diye önce O kolonda kaç tane var diye saydırıyorum.
1 den fazla ise veriyi aldıktan sonra satırdaki veriyi değiştirip sonrakini alıyorum.
sonraki kolona geçtiğimde aynı işlemleri tekrarlıyorum bunun için döngü kurdum , bu yüzden kolonu harfle değil de sayı ile tanımlamak istedim.
 
Katılım
8 Nisan 2022
Mesajlar
7
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
11-04-2023
Tekrar merhaba

yine programın başka bir bölümünde bu sefer değiştirdiğim hücreleri eski haline alıyorum. Sorun aynı olduğu için buradaki kodu yazıyorum.

Bu haliyle sadece bir kolonda işlem yapıyor For TKP = 33 To 55 döngüsü ile her kolonda aynı işlemi yapmayı düşünüyorum.


Sub TEMİZLE()

Dim WF As WorksheetFunction
Set WF = WorksheetFunction
Set S2 = Sheets("TAKİP")



BAK = WF.CountIf(S2.[AG:AG], "GGG*")

For T = 1 To BAK

bulunan = WF.Match("GGG*", S2.[AG:AG], 0)

DEĞİŞ = Mid(S2.Cells(bulunan, "AG"), 4, 30)
S2.Cells(bulunan, "AG") = DEĞİŞ
 
Katılım
8 Nisan 2022
Mesajlar
7
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
11-04-2023
Merhaba
yazdırma işleminden önce veri alırken yaşadığım sorunu çözmem gerekiyor.
BAK = WF.CountIf(S2.[AG:AG], "GGG*") bu bölümde kolon ismi yerine değişkenle yapmalıyım.

BAK = WF.CountIf(S2.[TKP], "GGG*") yada BAK = WF.CountIf(S2.TKP, "GGG*") sonuç vermiyor.

hangi kolondan veri alacağıma sayısal olarak ulaşmak istiyorum. yani 33 nolu kolonda eğersay yap gibi. Döngü ile 20 civarında kolonda işlem yapacağım.

teşekkürler
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,106
Excel Vers. ve Dili
2007 Türkçe
Buyurunuz...
Kod:
BAK = WorksheetFunction.CountIf(S2.Columns(TKP), "GGG*")
 
Katılım
8 Nisan 2022
Mesajlar
7
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
11-04-2023
Örnek dosyayı ekledim.

çalışma prensibi.

"stok" sayfasındaki her bir satır için bilgiyi "rapor" sayfasına aldıktan sonra bu bilgiye istinaden "takip sayfasındaki sarı renkli kolonlardan bilgileri yanına almak istiyorum.

teşekkürler
 

Ekli dosyalar

Üst