• DİKKAT

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

Soru Formülü son dolu satıra kadar kopyalama?

  • Konbuyu başlatan Konbuyu başlatan s.savas
  • Başlangıç tarihi Başlangıç tarihi
Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Merhaba arkadaşlar.
=EĞER(D5="";"";DÜŞEYARA(D5;Devamsızlık_Formu!B8:AI32;34;0))
Formülünü makro kaydet yöntemi ile aşağıdaki kodu elde ettim.
Bordro isimli şablonumda B5 hücresine bakıp son dolu satıra kadar F5 hücresine bu formülü işlemesini istiyorum.
Kod:
Sub Makro3()
'
' Makro3 Makro
'

'
    Range("F5").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-2]="""","""",VLOOKUP(RC[-2],Devamsızlık_Formu!R[3]C[-4]:R[27]C[29],34,0))"
    Range("F5").Select
    Selection.AutoFill Destination:=Range("F5:F29")
    Range("F5:F29").Select
End Sub
 

Ekli dosyalar

  • typ.rar
    typ.rar
    310.2 KB · Görüntüleme: 14
Aşağıdaki Kodu denermisin;

Kod:
Sub Makro3()
'
' Makro3 Makro
'

'
    Dim i As Long
    Sheets("Bordro").Select
    i = WorksheetFunction.CountA(Range("C5:C65536"))
    
    Range("F5").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-2]="""","""",VLOOKUP(RC[-2],Devamsızlık_Formu!R[3]C[-4]:R[27]C[29],34,0))"
    Range("F5").Select
    Selection.Copy
    Range("F6:F" & i).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("A1").Select
End Sub
 
Aşağıdaki Kodu denermisin;

Kod:
Sub Makro3()
'
' Makro3 Makro
'

'
    Dim i As Long
    Sheets("Bordro").Select
    i = WorksheetFunction.CountA(Range("C5:C65536"))
  
    Range("F5").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-2]="""","""",VLOOKUP(RC[-2],Devamsızlık_Formu!R[3]C[-4]:R[27]C[29],34,0))"
    Range("F5").Select
    Selection.Copy
    Range("F6:F" & i).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("A1").Select
End Sub
Makroyu D, E, F ve G sütunlarının tamamına ve en son satır olan 65536ya kadar yazdı.
Olması gereken ise sadece F sütununa son dolu satıra kadar olması gerekiyor.
Ekran Alıntısı.JPG
 
F5 hücresinin altındaki birleşmiş hücreleri kaldırıp dener misin?
 
i = WorksheetFunction.CountA(Range("C5:C65536"))

Yukardaki Kodu aşağıdaki ile değiştirirmisin

i = WorksheetFunction.CountA(Range("C5:C65536")) + 4
 
Merhaba.
Alternatif olsun.

Kullandığınız Makro3 isimli makroyu aşağıdakiyle değiştirerek deneyiniz.
Son satır tespiti B sütunundaki en yüksek sayı değerine göre yapılır.
CSS:
Sub Makro3()
    [F5].Formula = "=IF(D5="""","""",VLOOKUP(D5,Devamsızlık_Formu!$B$8:$AI$32,34,0))"
    [F5].AutoFill Destination:=Range("F5:F" & WorksheetFunction.Max([B:B]) + 4)
End Sub
 
Merhaba.
Alternatif olsun.

Kullandığınız Makro3 isimli makroyu aşağıdakiyle değiştirerek deneyiniz.
Son satır tespiti B sütunundaki en yüksek sayı değerine göre yapılır.
CSS:
Sub Makro3()
    [F5].Formula = "=IF(D5="""","""",VLOOKUP(D5,Devamsızlık_Formu!$B$8:$AI$32,34,0))"
    [F5].AutoFill Destination:=Range("F5:F" & WorksheetFunction.Max([B:B]) + 4)
End Sub
Teşekküler üstadım.
Bordro şablonunda iken makroyu çalıştır yapınca; makro çalışıyor, sorun yok.
Ancak aynı kodu userform'dan çalıştırınca aşağıdaki hatayı veriyor.
1.JPG

3.JPG


2.JPG
 
Belgenizde çok sayıda userform ve modul mevcut.
Hangi userform, hangi commandbutton kullanılıyor, net ifade ederseniz bakayım.
 
Belirttiğiniz Combobox ile Bordro sayfasına formül uygulayan makronun bağlantısını göremedim.
UserForm açılma denemesi yaptığımda da veri tabanına bağlantı kurulamadığı için form açılamıyor.
En iyisi; verdiğim kod'a sayfa isimlerini ekleyerek deneyin.
Rich (BB code):
    Sheets("Bordro").[F5].Formula = "=IF(D5="""","""",VLOOKUP(D5,Devamsızlık_Formu!$B$8:$AI$32,34,0))"
    Sheets("Bordro").[F5].AutoFill Destination:=Sheets("Bordro").Range("F5:F" & WorksheetFunction.Max(Sheets("Bordro").[B:B]) + 4)
 
Belirttiğiniz Combobox ile Bordro sayfasına formül uygulayan makronun bağlantısını göremedim.
UserForm açılma denemesi yaptığımda da veri tabanına bağlantı kurulamadığı için form açılamıyor.
En iyisi; verdiğim kod'a sayfa isimlerini ekleyerek deneyin.
Rich (BB code):
    Sheets("Bordro").[F5].Formula = "=IF(D5="""","""",VLOOKUP(D5,Devamsızlık_Formu!$B$8:$AI$32,34,0))"
    Sheets("Bordro").[F5].AutoFill Destination:=Sheets("Bordro").Range("F5:F" & WorksheetFunction.Max(Sheets("Bordro").[B:B]) + 4)
Teşekkür ederim üstat, şimdi sorunsuz.
 
Geri
Üst