• DİKKAT

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

Satır sayısına göre formülleme

Katılım
25 Ağustos 2010
Mesajlar
73
Excel Vers. ve Dili
MS Office 2007
Merhaba,

Ben excel 2007 kullanıcısıyım. makro kaydet bölümünden makrolar kaydederek çalışmalar yapıyorum.

yaptığım şablonda şunu yapmak istedim. müşteri bilgilerini sistemden çekiyorum. ve şablona yapıştıyorum. koyacağım bir butonla da bütün işlemlerin gerçekleşmesini istiyorum.

sorun şu. her müşteriye göre satır sayısı değişebiliyor. bir müşteri için 50 olabilirken, bir diğeri için 50000 olabilir. ben ilk olarak 65536 satıra göre yaptım. fakat dosya inanılmaz şişti. öyle birşey olmalı ki. satır sayısı kaçsa makro da o satır sayısına kadar çalışsın.

örnek dosya ektedir.
detaylı açıklamayı içinde yaptım.

Teşekkür ederim.

İyi çalışmalar
 

Ekli dosyalar

Merhaba,

Ben excel 2007 kullanıcısıyım. makro kaydet bölümünden makrolar kaydederek çalışmalar yapıyorum.

yaptığım şablonda şunu yapmak istedim. müşteri bilgilerini sistemden çekiyorum. ve şablona yapıştıyorum. koyacağım bir butonla da bütün işlemlerin gerçekleşmesini istiyorum.

sorun şu. her müşteriye göre satır sayısı değişebiliyor. bir müşteri için 50 olabilirken, bir diğeri için 50000 olabilir. ben ilk olarak 65536 satıra göre yaptım. fakat dosya inanılmaz şişti. öyle birşey olmalı ki. satır sayısı kaçsa makro da o satır sayısına kadar çalışsın.

örnek dosya ektedir.
detaylı açıklamayı içinde yaptım.

Teşekkür ederim.

İyi çalışmalar


Kodu ekteki gibi denermisiniz.

=IF(RC[-1]="""","""",IF(RIGHT(RC[-15],1)=""D"",""DOSYA"",""KOLİ""))" sizin bu formul P hücresine göre yapılmış.. örnekte C hücresi vardı..

P hücresine ayarlamak için RIGHT(RC[-2],1) kısmını RIGHT(RC[-15],1) olarak değiştirin.

Cells(i, 3).FormulaR1C1 formulunude Cells(i, 16).FormulaR1C1 olarak değiştirin.

Range("C1:C65536").ClearComments kısmıda Range("P1:P65536").ClearComments olarak değiştirin.


Kod:
Sub kolidosya()
'
' kolidosya Makro
'
Range("C1:C65536").ClearComments
For i = 2 To Range("A65536").End(3).Row
Cells(i, 3).FormulaR1C1 = "=IF(RC[-1]="""","""",IF(RIGHT(RC[-2],1)=""D"",""DOSYA"",""KOLİ""))"
Next
    Range("P2").Select
    Selection.AutoFill Destination:=Range("P2:P65536"), Type:=xlFillDefault
    Range("P2:P65536").Select
    ActiveWindow.SmallScroll Down:=-59
    Range("Q2").Select
End Sub
 
Son düzenleme:
Sn. Hüseyinkis

Teşekkür ederim ilginiz için.

Örnek dosyayı küçültmek adına diğer sütunları silmiştim fakat makro kayıtlarını değiştirmeyi unutmuşum.

Kendi sorunuma şöyle bir çözüm buldum.

=BAĞ_DEĞ_DOLU_SAY(A:A)

bu formülle "AI1" hücresinde dolu satır sayısını saydırdım.

daha sonra da aşağıdaki formüle uyguladım.




Dim aa As String
aa = "Q2:Q" + Range("AI1").Text




ActiveCell.FormulaR1C1 = _
"=IF(RC[-2]="""",0,VLOOKUP(RC[-12],'Şube Listesi'!R2C1:R550C3,3,0))"
Range("Q2").Select
'Selection.AutoFill Destination:=Range("Q2:Q65536"), Type:=xlFillDefault
Selection.AutoFill Destination:=Range(aa), Type:=xlFillDefault
Range(aa).Select
Tekrar teşekkür ederim ilginiz için.
 
Geri
Üst