• DİKKAT

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

formu kaydetme

spacebar

Altın Üye
Katılım
2 Temmuz 2009
Mesajlar
553
Excel Vers. ve Dili
office 2019 Türkçe
Arkadaşlar merhaba.
Formüllerle düzenlediğim bir form var. Bu form seçimlere göre düşeyara vs gibi formüllerle değişip hazırlanıyor. Ve bunu mail atıyorum. Aralık A1:J50 de olabiliyor. A1:J70 de olabiliyor.
Sorum şu : bu formu "yedek" adlı sayfaya kaydetmek istiyorum.
Birinci formu hazırlayıp kaydet dediğimde “yedek” sayfasının A1:J50 arasında kaydetsin.
İkinci formu hazırlayıp kaydet dediğimde “yedek” sayfasının A51:J120 aralığına kaydetsin.
Üçüncü formu hazırlayıp kaydet dediğimde “yedek” sayfasının A121:J180 aralığına kaydetsin. Şeklinde süregelsin.
Yardımlarınız için teşekkürler…
 
mesela A1:ZZ500000 veri tablomuz olsun
burada bir tam satır veya bir tam sütun tamamen boş olmadıkça aşağıdaki iş görür.

Kod:
Sub xlTR_174117()

    Dim veri As Variant
   
    veri = Range("A1").CurrentRegion.Value
    Worksheets("yedek").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(UBound(veri, 1), UBound(veri, 2)).Value = veri

End Sub

1. satırda tablonun başlıkları var ve bu satır kopyalanmayacak ise:
veri = Range("A1").CurrentRegion.Offset(1).Value
 
üstad çok teşekkür ederim ama type mismatch hatası veriyor. ne yapmalıyım.
 
debug tuşuna bastığımızda hangi satırı işaret ediyor.
muhtemelen veri = ... kısmıdır.

örnek veri içeren bir dosya yükleyebilir miyiz?
 
debug uyarısı vermiyor. sadece ekrana run time error 13 type mismach yazıyor.
 
üstad modüle değilde vba ya kopyalamışım. worksheets satırı debug veriyor. bir de biçimlendirmelerle beraber kopyalayabilirmi.
 
ayrıca makroyu çalıştırıken koyalanacak verinin bulunduğu sayfanın içinde olmalıyız.
veya kodu değiştirmeliyiz.

Kod:
Sub xlTR_174117()

    Dim veri

    veri = Worksheets("KopyalanancakVerininBulunduğuSayfaAdınıBurayaYaz").Range("A1").CurrentRegion.Value
    Worksheets("yedek").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(UBound(veri, 1), UBound(veri, 2)).Value = veri

End Sub

yine 1. satırda tablonun başlıkları var ve bu satır kopyalanmayacak ise:
veri = Worksheets("KopyalanancakVerininBulunduğuSayfaAdınıBurayaYaz").Range("A1").CurrentRegion.Offset(1).Value
 
üstad merhaba. öncelikle ilginize teşekkür ederim. biraz geç döndüm çünkü bir sağlık problemim vardı. dün bilgisayarı hiç açamadım. kusura bakmayın. ben bu çalışmayı bilanço, gelir tablosu, ba bs formları gibi bir çok mesleki çalışmalarımı arşivlemek için kullanacaktım. bu formları hazırlarken arada boşluklar gizlenen satırlar olabiliyor. kodları bu çalışmaların hepsinde denedim hiçbirinde çalışmadı hata verdi. sonra yeni bir excel sayfası açtım sadece 1111 yazdım tüm satır ve sutunlara kopyaladım. kodlar çalıştı.burada birleştirilmiş hücrelermi yoksa formüllermi engelliyor diye denemeler yaptım ama bulamadım. ekte dosyalardan bir tanesini örnek olarak ekliyorum. bakabilirseniz sevinirim. teşekkürler
 

Ekli dosyalar

üstad merhaba.sorunun bir kısmını çözdüm. boş satırlardan kaynaklanıyormuş. A sütununun tamamına bir değer verdim ve bunu her iki sayfada gizledim. böylece tümünü kopyaladı. ancak kodda düzenleme yapılarak tüm biçimlendirme, satır ve sütün genişlikleriyle beraber kopyalama yapılabilirmi.
 
Kod:
Sub xlTR_174117()
        
    With Application
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With
    
    Worksheets("form").UsedRange.Copy
    
    With Worksheets("yedek")
        .Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial
        .UsedRange.Value = .UsedRange.Value
    End With
        
    With Application
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
    End With

End Sub
 
üstad teşekkür ederim. ellerinize sağlık.
 
rica ederim. kolay gelsin.
 
Geri
Üst