• DİKKAT

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

klasördeki dosyalarda bulunan formüller

Katılım
27 Aralık 2008
Mesajlar
131
Excel Vers. ve Dili
Excel 2007 & 2003 Türkçe
Bir konuda yardımlarınıza ihtiyacım var,
İşim gereği yıl içinde gerçekleştirilen faaliyetler için raporlar oluşturulmaktadır ve bu raporlar bir klasörde dosyalanmaktadır. Bu raporlar formüllü excel dosyalarıdır ve değişken sayfa sayısına sahiptir. Sayfa yapıları aynıdır. Bu excel dosyalarındaki tüm sayfalarında bilgileri kopyala ve değerleri yapıştır ile sabitlemek gerekiyor.
Forumda excel dosyalarını birleştirmek olarak konular mevcut ancak bu dosyaların sadece tek sayfasını alıyor. Benim istediğim raporlardaki tüm sayfaların değerlerinin yapıştırılmasıdır. Yardımlarınız için teşekkür ederim.
 
Klasörünüzün yedeğini aldıktan sonra aşağıdaki proseduru boş bir excel sayfasında test edin.

Kod:
Sub xyz()
Dim d$, w As Workbook, s As Worksheet

d = Dir([B]"c:\belgeler\[/B]*.xlsx") [COLOR=DarkGreen]'-- Bu satırı düzenleyin.[/COLOR]

Do While d <> ""
    DoEvents
    Set w = Workbooks.Open([B]"c:\belgeler\[/B] & d) [COLOR=DarkGreen]'-- Bu satırı düzenleyin.[/COLOR]
    For Each s In w.Worksheets
        w.s.Cells.Copy
        w.s.[a1].PasteSpecial Paste:=xlPasteValues
    Next
    w.Close True
Loop
End Sub
 
Cevabınız için teşekkür ederim.
Söylediğiniz şekilde öncelikle c directory içerisinde belgeler isimli bir klasör oluşturarak excel dosyalarından bir kısmını buraya attım. Kullandığım dosyalar 2003 dosyası olduğundan
d = Dir("c:\belgeler\*.xlsx")
satırını
d = Dir("c:\belgeler\*.xls")
olarak düzenledim . Sonra boş bir excel dosyasında tanımlanan prosedürü uyguladım.
Set w = Workbooks.Open("c:\belgeler\ & d)
satırında hata mesajı verdi.
 
İletmiş olduğum soru ile ilgili bir dosya iliştiryorum. Mevcut dosyalarım bir klasör içerisinde belgeler klasöründeki gibi değişken sayfa sayılarına sahip xls dosyaları

Bu dosyaları oluşturulan makro ile içindeki formuller yerine değerler yapıştırılmış olarak belgeler1 klasöründeki gibi yapmak istiyorum. Yardımlarınız için teşekkür ederim.
 

Ekli dosyalar

Son düzenleme:
Selamlar,

Zeki beyin önerdiği koddaki hata veren satırı aşağıdaki şekilde değiştirip denermisiniz.

Kod:
Set w = Workbooks.Open("c:\belgeler\[COLOR=red]"[/COLOR] & d)
 
Korhan beyin önerisine uygun olarak modülü düzenleyip uyguladım Bu seferde
w.s.Cells.Copy
satırında hata verdi. İlginiz için teşekkürler.
 
Selamlar,

Eğer kopyalama yapacağınız sayfalarda filtre uygulaması varsa bunlar sorun çıkaracaktır. Filtrelemeleri kaldırmanız gerekecektir.
 
Selamlar Uzman
Problemim olan çalışmadan örnekleri bir önceki yazıda (belgeler.rar) ekledim. Dosyalarda filtreleme bulunmamaktadır.
 
Son düzenleme:
Selamlar,

Alternatif olarak aşağıdaki kodu denermisiniz.

Kod:
Option Explicit
 
Sub FORMÜLLERİ_KOPYALA_DEĞER_OLARAK_YAPIŞTIR()
    Dim Dosya As Object, Kaynak_Dosya As Workbook, Sayfa As Worksheet
    
    Application.ScreenUpdating = False
    
    If CreateObject("Scripting.FileSystemObject").GetFolder("C:\Belgeler").Files.Count = 0 Then GoTo Son
    
    For Each Dosya In CreateObject("Scripting.FileSystemObject").GetFolder("C:\Belgeler").Files
        
        Set Kaynak_Dosya = Workbooks.Open(Dosya, False, False)
    
        For Each Sayfa In Kaynak_Dosya.Sheets
            Sayfa.Select
            Cells.Copy
            Range("A1").PasteSpecial Paste:=xlPasteValues
            Range("A1").Select
            Application.CutCopyMode = False
        Next
        Kaynak_Dosya.Close True
    Next
    Application.ScreenUpdating = True
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
    Exit Sub
Son:
    Application.ScreenUpdating = True
    MsgBox "Dosya bulunamamıştır !", vbCritical, "Dikkat !"
End Sub
 
Selamlar Uzman
Kod mükemmel olmuş. Ellerinize sağlık. İstenilen fonksiyonu yerine getiriyor. Ne kadar teşşeküür etsem azdır.
 
Geri
Üst