• DİKKAT

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

Formülü değere çevirme

Katılım
15 Eylül 2008
Mesajlar
132
Excel Vers. ve Dili
office 2016
Merhabalar;
bir excel çalışma dosyam var ve içinde çeşitli formüller var. İstediğim bu excel çalışma dosyasındaki tüm içeriği başka bir excel dosyasına değer olarak kaydedebileyim.
 
kopyalamak istediğiniz alanı seçin yapıştırmak istediğiniz alana sağ click yapın / özel yapıştır / sadece değerler ve sayı biçimlerini seçin formülsüz olarak yapıtırmış olacaksınız
 
dostum biliyorumda çalışmamım bir sayfasına çok formül olduğu için açılması ve tümünü seçmak dakikalar alıyor. o yüzden sayfayı açmadan bir makro ile bunu yapmam lazım
 
Direk sol üst tarafa tıklayın hepsini el ile seçmeyin A nın solu 1 in üstünde ok gibi birşey var ona tıklatın. sonra Kopyalayıp özel yapıştırın
 
Çalışma sayfasında istediğiniz kısmı tarayıp kopyalayın ( Ctrl+C) aktarmak istediğiniz sayfayı açıp A1 hücresine sağ tıklatıp özel yapıştıra basın oradan "değerleri" kısmını işaretleyip tamama basın.


bunu yapan makro lazım
 
Sub farlı_kaydet()
Cells.Select
Range("A1").Activate
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
End Sub
 
Sub farlı_kaydet()
Cells.Select
Range("A1").Activate
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
End Sub


dostum çalışıyor fakat sadece tek sayfayı kopyalıyor diğer sayfaların hepsini kopyalamak için nasıl yaparız
 
Örnek kodu deneyiniz.
Kod:
[d1:d20].Value = [a1:a20].Value
 
Merhaba,

Aşağıdaki kod dosyanızdaki tüm sayfaları yeni kitaba değer olarak kopyalayarak asıl dosyanızın bulunduğu klasöre kayıt eder.

Yeni dosyayı "Dosya adı - FORMÜL YOK" şeklinde kayıt eder.


Kod:
Option Explicit
 
Sub SAYFALARI_DEĞER_OLARAK_KOPYALA()
    Dim Dosya_Yolu As String, K1 As Workbook, K2 As Workbook, Sayfa As Worksheet
 
    Application.ScreenUpdating = False
 
    Dosya_Yolu = ThisWorkbook.Path & "\" & Replace(ThisWorkbook.Name, ".xls", "") & " - FORMÜL YOK.xls"
 
    Set K1 = ThisWorkbook
    Set K2 = Workbooks.Add(1)
    K2.Sheets(1).Name = "-"
 
    For Each Sayfa In K1.Worksheets
        Sayfa.Copy After:=K2.Sheets(K2.Sheets.Count)
        K2.ActiveSheet.Cells.Copy
        K2.ActiveSheet.Cells.PasteSpecial Paste:=xlPasteValues
        Range("A1").Select
    Next
 
    Application.DisplayAlerts = False
    K2.Sheets(1).Delete
    K2.Sheets(1).Select
    K2.SaveAs Filename:=Dosya_Yolu, FileFormat:=xlNormal
    K2.Close
    Application.DisplayAlerts = True
 
    Set K1 = Nothing
    Set K2 = Nothing
 
    Application.ScreenUpdating = True
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Merhaba,

Aşağıdaki kod dosyanızdaki tüm sayfaları yeni kitaba değer olarak kopyalayarak asıl dosyanızın bulunduğu klasöre kayıt eder.

Yeni dosyayı "Dosya adı - FORMÜL YOK" şeklinde kayıt eder.


Kod:
Option Explicit
 
Sub SAYFALARI_DEĞER_OLARAK_KOPYALA()
    Dim Dosya_Yolu As String, K1 As Workbook, K2 As Workbook, Sayfa As Worksheet
 
    Application.ScreenUpdating = False
 
    Dosya_Yolu = ThisWorkbook.Path & "\" & Replace(ThisWorkbook.Name, ".xls", "") & " - FORMÜL YOK.xls"
 
    Set K1 = ThisWorkbook
    Set K2 = Workbooks.Add(1)
    K2.Sheets(1).Name = "-"
 
    For Each Sayfa In K1.Worksheets
        Sayfa.Copy After:=K2.Sheets(K2.Sheets.Count)
        K2.ActiveSheet.Cells.Copy
        K2.ActiveSheet.Cells.PasteSpecial Paste:=xlPasteValues
        Range("A1").Select
    Next
 
    Application.DisplayAlerts = False
    K2.Sheets(1).Delete
    K2.Sheets(1).Select
    K2.SaveAs Filename:=Dosya_Yolu, FileFormat:=xlNormal
    K2.Close
    Application.DisplayAlerts = True
 
    Set K1 = Nothing
    Set K2 = Nothing
 
    Application.ScreenUpdating = True
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub


eyvallah çalıştı kolay gelsin
 
Korhan hocam yazmış olduğun kod benim de işime yaradı, sağolasın.

Benim de benzer bir konuda yardıma ihtiyacım var, o nedenle ayrı başlık açmadım. Gerek sizin, gerekse diğer arakadaşların yardımcı olabileceğini umuyorum.


Biz proje değerlendirme işlemi yapıyoruz. Benim elimde değerlendirme için hazırlanmış formüllü bir excel kitabı var (1100-formul.xls). Ayrıca işyerinde network üzerinden açtığımız her projeye özel boş 1100.xls var (Bu boş 1100.xls'leri bilgisayarımıza kaydedemiyoruz,network üzerinden açıp direk networke kaydediyoruz).

1100-formul.xls'de 3 tane sayfa var: ""VeriGiris","Sonuc1","Sonuc2"
1100.xls'de 2 sayfa var: "Sonuc1","Sonuc2"

"1100-formul.xls" ile "1100.xls" de ortak olarak yer alan Sonuc1 ve Sonuc2 sayfalarının formatları birebir aynı. Tek fark bir tanesinde tablolarda formül var, diğerinde yok.

Soruma gelince;
Ben "1100-formul.xls" dosyasının sadece "Sonuc1" ve "Sonuc2" sayfalarında yer alan tabloları (ya da sayfa içeriğinin tamamını) makro ile network üzerinden açmış olduğumuz 1100.xls kitabındaki aynı tablolara değerleri yapıştır şeklinde (yani formülsüz olarak) aktarabilirmiyiz. (1100.xls bilgisayarda açık olacak ama bilgisayara kayıtlı değil).

Örnek dokümanları ekledim. Umarım yardımcı olabilirsiniz. (Gerekiyorsa yeni konu açarak iletebilirim talebimi).

Teşekkürler.

(uzun oldu kusura bakmayın)
 

Ekli dosyalar

Sub Burak()
Sheets.Select
Cells.Select
Range("A1").Activate
Selection.Copy
Sheets.Select
Cells.Select
Range("A1").Activate
Range("A1").Activate
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
End Sub
 
Formüllü Tüm Sayfaları Değerlere Dönüştürerek Aynı Sayfalara Değer İle Kaydetme

Sub Burak()
Sheets.Select
Cells.Select
Range("A1").Activate
Selection.Copy
Sheets.Select
Cells.Select
Range("A1").Activate
Range("A1").Activate
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
End Sub
 
Geri
Üst