• DİKKAT

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

Yazdırılan Formulü Son Satıra Kadar Uygulama ?

  • Konbuyu başlatan Konbuyu başlatan asas44
  • Başlangıç tarihi Başlangıç tarihi
Katılım
13 Temmuz 2013
Mesajlar
121
Excel Vers. ve Dili
2013 excel
Cümleten kolay gelsin, Ben düşeyara formulünü macro ile tabloda belirttiğim yere yazdırıp tablo boyunca uygulamasını istiyorum. Sabit aynı tablolarda yani satır boyu aynı olan tablolarda sorunsuz belirttiğim arada yazıyor ve aşağıya doğru uygulayarak iniyor.
Sıkıntı şurada başlıyor satır sayısı değişken tablolarda da uygulamak sitiyorum fakat macronun komutu ("B2:C21") 21. satıra kadar olduğu için 21. satırda formül duruyor. Ben tablonun solundaki en son yazan veriye kadara uygulasın istiyorum farklı tablolardada uygulayabilmek için. Umarım açıklayıcı olmuştur şimdiden teşekkür ederim.

Kod:
Sub deneme()
'
' deneme Makro
'

'
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sayfa2!C1:C3,2,0)"
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],Sayfa2!C1:C3,3,0)"
    Range("B2:C2").Select
    Selection.AutoFill Destination:=Range("B2:C21")
    Range("B2:C21").Select
End Sub

Örnek:
http://s3.dosya.tc/server10/zdie24/deneme.xlsx.html
 
Aşağıdaki şekilde deneyin.
Kod:
Sub deneme()
'
' deneme Makro
'

'
sonsat = Cells(65536, "B").End(xlUp).Row
For i = 2 To sonsat
    Range("B" & i).Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sayfa2!C1:C3,2,0)"
    Range("C" & i).Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],Sayfa2!C1:C3,3,0)"
    Range("B" & i & ":C" & i).Select
    Selection.AutoFill Destination:=Range("B2:C21")
Next
    'Range("B2:C21").Select
End Sub
 
Denedim fakat herhangi bir sonuç alamadım herhangi birşey yazmadı
 
Eğer sadece c21 satır ile sınırlı ise For i = 2 To sonsat yerine For i = 2 To 21 yazın. Örnek dosyanızı antivirüs engellemesinden dolayı indiremiyorum.
 
Eğer sadece c21 satır ile sınırlı ise For i = 2 To sonsat yerine For i = 2 To 21 yazın. Örnek dosyanızı antivirüs engellemesinden dolayı indiremiyorum.

Dediğinizi yaptım fakat sonuca ulaşamadım

http://hizliresim.com/r67VGm
http://hizliresim.com/yNXlQn

Resimdeki gibi bir tabloda sayfa1 e yazdırıyorum formulü veriyide sayfa2 den çektiriyorum. yazdırılan formulü belirlediğim satıra kadar uygulatıyorum fakat her tabloda farklı uzunluk olduğu için tablodaki son veriye kadar uygula ve bitir demem gerek inşallah anlaşılır olmuştur.
 
Deneyin.

Kod:
Sub TEST()
    With Sheets("Sayfa1")
        Son = .Cells(.Rows.Count, 1).End(3).Row
        .Range("B2:B" & Son).Formula = "=VLOOKUP($A2,Sayfa2!$A:$C,2,0)"
        .Range("C2:C" & Son).Formula = "=VLOOKUP($A2,Sayfa2!$A:$C,3,0)"
    End With
End Sub
 
Deneyin.

Kod:
Sub TEST()
    With Sheets("Sayfa1")
        Son = .Cells(.Rows.Count, 1).End(3).Row
        .Range("B2:B" & Son).Formula = "=VLOOKUP($A2,Sayfa2!$A:$C,2,0)"
        .Range("C2:C" & Son).Formula = "=VLOOKUP($A2,Sayfa2!$A:$C,3,0)"
    End With
End Sub

Tam istediğim gibi olmuş Korhan bey ellerinize sağlık. Tahmin ettiğiniz üzere VBA konusunda yeni sayılırım makro oluştururken bu konuda sıkıntı yaşıyordum istenilen komutu tablonun son satırına indiren komut hangisidir öğrenmek amaçlı soruyorum;
Son = .Cells(.Rows.Count, 1).End(3).Row===?
.Range("B2:B" & Son)===?
.Range("C2:C" & Son)===?
Bu 3 komutun anlamı nedir acaba
 
Merhaba,

Son = .Cells(.Rows.Count, 1).End(3).Row 'Sayfa1 isimli sayfanın "A" sütunundaki son dolu hücrenin satır numarasını bulur.

.Range("B2:B" & Son) 'Sayfa1 isimli sayfanın "B2:B Son" hücre aralığını ifade eder.

.Range("C2:C" & Son) 'Sayfa1 isimli sayfanın "C2:C Son" hücre aralığını ifade eder.
 
Merhaba,

Son = .Cells(.Rows.Count, 1).End(3).Row 'Sayfa1 isimli sayfanın "A" sütunundaki son dolu hücrenin satır numarasını bulur.

.Range("B2:B" & Son) 'Sayfa1 isimli sayfanın "B2:B Son" hücre aralığını ifade eder.

.Range("C2:C" & Son) 'Sayfa1 isimli sayfanın "C2:C Son" hücre aralığını ifade eder.

Korhan Bey, sizin bu yazmış olduğunuz kodları benim bu yazmış olduğum kodlara uyarlamaya çalışıyorum fakat hata alıyorum
Sub deneme()
'
' deneme Makro
'

'
Range("B2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sayfa2!C1:C3,2,0)"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],Sayfa2!C1:C3,3,0)"
Range("B2:C2").Select
Selection.AutoFill Destination:=Range("B2:C21")
Range("B2:C21").Select
End Sub

Bu koda uyarlarken hangilerini değiştirirsem bu ve bunun gibi yazmış olduğum kodları istediğim sütunu göstererek dolu olan son satıra kadar formulü uygulatabilirim. Yardımcı olursanız çok sevinirim bu tarz hazırladığım farklı kodlar var butonlara atadım farklı excel sayfalarından istediğim butonu ekleyerek kullanıyorum kendi yazdığım kodlara uyarlayabilirsem çok iyi olacak. Yardımınız için çok teşekkür ederim.
 
Ben sade ve anlaşılır olan yöntemi önermiştim.

Sizin kullandığınız kodu aşağıdaki gibi düzenleyebilirsiniz.

Kod:
Sub TEST()
    Son = Cells(Rows.Count, "A").End(3).Row
    Range("B2").FormulaR1C1 = "=VLOOKUP(RC[-1],Sayfa2!C1:C3,2,0)"
    Range("C2").FormulaR1C1 = "=VLOOKUP(RC[-2],Sayfa2!C1:C3,3,0)"
    Range("B2:C2").AutoFill Destination:=Range("B2:C" & Son)
End Sub
 
Ben sade ve anlaşılır olan yöntemi önermiştim.

Sizin kullandığınız kodu aşağıdaki gibi düzenleyebilirsiniz.

Kod:
Sub TEST()
    Son = Cells(Rows.Count, "A").End(3).Row
    Range("B2").FormulaR1C1 = "=VLOOKUP(RC[-1],Sayfa2!C1:C3,2,0)"
    Range("C2").FormulaR1C1 = "=VLOOKUP(RC[-2],Sayfa2!C1:C3,3,0)"
    Range("B2:C2").AutoFill Destination:=Range("B2:C" & Son)
End Sub

Korhan bey ilginiz için teşekkür ederim şimdi diğer benzer butonlarada uygulayabildim teşekkür ederim elinize sağlık.
 
Ben sade ve anlaşılır olan yöntemi önermiştim.

Sizin kullandığınız kodu aşağıdaki gibi düzenleyebilirsiniz.

Kod:
Sub TEST()
    Son = Cells(Rows.Count, "A").End(3).Row
    Range("B2").FormulaR1C1 = "=VLOOKUP(RC[-1],Sayfa2!C1:C3,2,0)"
    Range("C2").FormulaR1C1 = "=VLOOKUP(RC[-2],Sayfa2!C1:C3,3,0)"
    Range("B2:C2").AutoFill Destination:=Range("B2:C" & Son)
End Sub

Korhan Bey merhaba;

Bu formülü sadece bir sayfada yani başka sayfadan veri almadan formüllerin kendi sayfasında B hücresinde metin veya sayı olduğunda A,J,K,L sütünlarında bulunun formülleri aşağı doğru nasıl uygulatabiliriz.

Benim çalışmamda formüller A2;J2;K2;L2 sütünlarında bulunuyor.

Cevaplarsanız memnun olurum. Kolay gelsin.
 
Geri
Üst