Formül ve Makro İçeren Çalışma Kitabını Değer Olarak Farklı Kaydetmek

Katılım
29 Mart 2013
Mesajlar
13
Excel Vers. ve Dili
2007 Türkçe
Merhaba değerli üstadlar...

Oldukça yoğun biçim formül içeren ve dış veri alan makroları bulunan xlsm çalışma kitabını .xlsx olarak hücre biçimlendirmelerini bozmadan sadece değer içerek biçimde farklı kaydetmek için nasıl bir yol izlemek lazım..

Şimdiden teşekkürler...
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,822
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba değerli üstadlar...

Oldukça yoğun biçim formül içeren ve dış veri alan makroları bulunan xlsm çalışma kitabını .xlsx olarak hücre biçimlendirmelerini bozmadan sadece değer içerek biçimde farklı kaydetmek için nasıl bir yol izlemek lazım..

Şimdiden teşekkürler...
Merhaba
.xlsx kitabı makroları çalıştırmaz onu nasıl yapacaksınız.
 
Katılım
29 Mart 2013
Mesajlar
13
Excel Vers. ve Dili
2007 Türkçe
Merhaba
.xlsx kitabı makroları çalıştırmaz onu nasıl yapacaksınız.
Merhaba Asi Kral;

Forumda diğer arkadaşlara verdiğiniz yanıtları çok okudum, dosyalarınızı inceledim, sizden çok şey öğrendim gerçekten... Çok başarılısınız :)

Makrolardan ve formüllerden arınmış bir biçimde kaydetmek istiyorum... Hazırladığım dosya 11-12 mb olduğu için yüklemedim buraya.

Amacım bir çok farklı kaynaktan DÜŞEYARA, İNDİS ve MAKRO ile veri alan bu ana xlsm dosyasındaki sayfaları sadece satır - sütun başlıkları ve değerleri ile farklı kaydetmek...

Farklı kaydettipim bu dosyayı başkalarına yollayacağım. İçeriği etkinleştir, makroları etkinleştir vs ile uğraşmasınlar istiyorum...
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,822
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba
Sorunuzu anladım. Bunu yapabilmek için 2 tane soru sormam gerek.
1 . Bu dosyayı nereye kaydedecek.
2 . Farklı Kaydedilen dosyanın adı ne olacak.
 
Katılım
29 Mart 2013
Mesajlar
13
Excel Vers. ve Dili
2007 Türkçe
Merhaba
Sorunuzu anladım. Bunu yapabilmek için 2 tane soru sormam gerek.
1 . Bu dosyayı nereye kaydedecek.
2 . Farklı Kaydedilen dosyanın adı ne olacak.
Tekrar merhaba...

1. xlsm uzantılı anadosyayı (birden fazla farklı isimde sayfa içeriyor) bütünüyle aynı klasöre xlsx uzantılı biçimde
2. aynı adla ya da belirlenmiş hücrelerden birine yazdığımız bir adla kaydetmesi
uygun olacaktır hocam.

Eğer daha kolay olacaksa önceden aynı klasöre açtığımız Final Dosya.xlsx adlı çalışma kitabına verileri sadece sayı olarak da kaydedebiliriz.

Hangisi kolay olacaksa...

Esasen gönül ister ki;

xlsm uzantılı ana dosyada butonlar vasıtasıyla farklı kaydetmek istediğim sayfayı (Sayfa1, Sayfa2 gibi. Bu sayfalarda farklı veriler-formülle elde edilmiş- ve satır sütun biçimleri mevcut.) seçebileyim. Lakin sizleri de zorlamak istemiyorum.

Bu işlerin sonu yok, tamamen konuya hakimiyetle ilgili. İnşallah bir gün mantığı kavrayıp kod yazabilecek seviyeye gelirim. Elbette örneklerinizi inceleyerek olaraktır bu :)
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,822
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba
1. Kod aynı adı vererek aynı yerde .xlsx dosyası oluşturur.
Kod:
Sub farklı()
Dim YL As String, ÇLŞ As Variant, KÇLŞ As Variant
YL = ThisWorkbook.Path & "\"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
KÇLŞ = ActiveWorkbook.Name
ÇLŞ = ActiveCell.Address
ActiveWorkbook.SaveAs YL & Replace(KÇLŞ, ".xlsm", ".xlsx"), xlOpenXMLWorkbook
Cells.Select: Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range(ÇLŞ).Select
ActiveWorkbook.Save
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Workbooks.Open (YL & KÇLŞ)
Workbooks(Replace(KÇLŞ, ".xlsm", ".xlsx")).Close
End Sub
2. Kod E1 hücresine yazdığınıza göre .xlsx oluşturur.
Kod:
Sub farklı1()
Dim YL As String, ÇLŞ As Variant
Dim KÇLŞ As Variant, KTP As String
YL = ThisWorkbook.Path & "\"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
KÇLŞ = ActiveWorkbook.Name
ÇLŞ = ActiveCell.Address
KTP = Range("E1").Text
ActiveWorkbook.SaveAs YL & KTP & ".xlsx", xlOpenXMLWorkbook
Cells.Select: Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range(ÇLŞ).Select
ActiveWorkbook.Save
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Workbooks.Open (YL & KÇLŞ)
Workbooks(KTP & ".xlsx").Close
End Sub
Boş bir Module de olacak bu kodlar.
Bu kodları herhangi bir sayfada çalıştırdığınızda aktif olan sayfada işlem yapar sayfa seçmenize gerek kalmaz.
Dosyayı göndermeyeyim çünkü butonu yerleştirdiğimde diğer dosyaya butonu atıyor. Bu da görüntü kirliliğine neden oluyor.
Dilerseniz kodları asıl dosyanıza kaydettikten sonra kısayol tuşu atayabilirsiniz.
Kısayol Atama : Alt+F8 tuş komibnasyonu ile kayıtlı makroları görürüz buradan bir makro adını seçeriz sonra seçenekler Kısayol yazan yere tuşu yazarız sonra tamam diyerek işlemi bitiririz. Sonra açık olanı kapatır işlemimizi yaparız.
 
Katılım
29 Mart 2013
Mesajlar
13
Excel Vers. ve Dili
2007 Türkçe
Tek kelimeyle mükemmel!

Sayın Asi Kral çok ama çok teşekkür ederim...
 
Katılım
29 Mart 2013
Mesajlar
13
Excel Vers. ve Dili
2007 Türkçe
Boş bir Module de olacak bu kodlar.
Bu kodları herhangi bir sayfada çalıştırdığınızda aktif olan sayfada işlem yapar sayfa seçmenize gerek kalmaz.
Dosyayı göndermeyeyim çünkü butonu yerleştirdiğimde diğer dosyaya butonu atıyor. Bu da görüntü kirliliğine neden oluyor.
Dilerseniz kodları asıl dosyanıza kaydettikten sonra kısayol tuşu atayabilirsiniz.
Kısayol Atama : Alt+F8 tuş komibnasyonu ile kayıtlı makroları görürüz buradan bir makro adını seçeriz sonra seçenekler Kısayol yazan yere tuşu yazarız sonra tamam diyerek işlemi bitiririz. Sonra açık olanı kapatır işlemimizi yaparız.
Tekrar merhaba... Aktif Sayfayı mükemmel derece sorunsuz kaydediyor.

Çalışma kitabındaki sayfaları tek tek değil de tüm sayfaları aynı anda, aynı biçimde formülsüz ve makrosuz kaydetmek için kodda ne gibi bir değişiklik yapmak lazım hocam?
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,822
Excel Vers. ve Dili
Excel 2007 Türkçe
Tekrar merhaba... Aktif Sayfayı mükemmel derece sorunsuz kaydediyor.

Çalışma kitabındaki sayfaları tek tek değil de tüm sayfaları aynı anda, aynı biçimde formülsüz ve makrosuz kaydetmek için kodda ne gibi bir değişiklik yapmak lazım hocam?
Merhaba
Bunu ilk verdiğim kodda yapmak mantıksız o zaten aynı dosya adını taşıyor.
İkinci kodu bununla değiştirip dener misiniz_?
Kod:
Sub farklı1()
Dim YL As String, ÇLŞ As Variant, SYF As Long
Dim KTP As Workbook, KÇLŞ As String, KTP1 As Workbook
Dim S1 As Worksheet, KSYF As Long, S2 As Worksheet
Dim SÇLŞ As String
Application.ScreenUpdating = False
Set KTP = ActiveWorkbook
YL = ThisWorkbook.Path & "\"
SÇLŞ = ActiveSheet.Name
For SYF = 1 To KTP.Sheets.Count
Set S1 = KTP.Sheets(SYF)
If S1.Range("E1") <> Empty Then
S1.Select
ÇLŞ = ActiveCell.Address
Workbooks.Add
Set KTP1 = ActiveWorkbook
S1.Copy KTP1.Sheets(1)
For KSYF = KTP1.Sheets.Count To 2 Step -1
Application.DisplayAlerts = False
Sheets(KSYF).Delete
Application.DisplayAlerts = True
Next
Set S2 = KTP1.Sheets(1)
S2.Cells.Copy
S2.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range(ÇLŞ).Select
S2.Name = S1.Range("E1").Text
KTP1.SaveAs YL & S1.Range("E1").Text & ".xlsx", xlOpenXMLWorkbook
KTP1.Close
End If: Next
Sheets(SÇLŞ).Select
Application.ScreenUpdating = True
End Sub
 
Katılım
29 Mart 2013
Mesajlar
13
Excel Vers. ve Dili
2007 Türkçe
Merhaba
Bunu ilk verdiğim kodda yapmak mantıksız o zaten aynı dosya adını taşıyor.
İkinci kodu bununla değiştirip dener misiniz_?
Kod:
Sub farklı1()
Dim YL As String, ÇLŞ As Variant, SYF As Long
Dim KTP As Workbook, KÇLŞ As String, KTP1 As Workbook
Dim S1 As Worksheet, KSYF As Long, S2 As Worksheet
Dim SÇLŞ As String
Application.ScreenUpdating = False
Set KTP = ActiveWorkbook
YL = ThisWorkbook.Path & "\"
SÇLŞ = ActiveSheet.Name
For SYF = 1 To KTP.Sheets.Count
Set S1 = KTP.Sheets(SYF)
If S1.Range("E1") <> Empty Then
S1.Select
ÇLŞ = ActiveCell.Address
Workbooks.Add
Set KTP1 = ActiveWorkbook
S1.Copy KTP1.Sheets(1)
For KSYF = KTP1.Sheets.Count To 2 Step -1
Application.DisplayAlerts = False
Sheets(KSYF).Delete
Application.DisplayAlerts = True
Next
Set S2 = KTP1.Sheets(1)
S2.Cells.Copy
S2.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range(ÇLŞ).Select
S2.Name = S1.Range("E1").Text
KTP1.SaveAs YL & S1.Range("E1").Text & ".xlsx", xlOpenXMLWorkbook
KTP1.Close
End If: Next
Sheets(SÇLŞ).Select
Application.ScreenUpdating = True
End Sub
Hocam büyüksün...

Çok teşekkürler...

Harika çalışıyor...
 
Katılım
22 Şubat 2015
Mesajlar
1
Excel Vers. ve Dili
Excel 2010 Turkce
farkli kaydedilmis bilgiye otomatik link verdirme.

Merhabalar,

Degerli bilgilerinize istinaden benimde bir sorum var iznini ile; yardimci olabilir misiniz?

Excelde A sayfasından tıklamalı buton ile pc de bir klasöre PDF veya xlsx kaydediyoruz, yine aynı formül içerisinde (aynı tıklamalı buton) A sayfasındaki bir hücreden alınan bilgiyi B sayfasında başka bir hücreye bilgi olarak aktartıyoruz.

*

Problemimiz şu ki; B sayfasındaki hücrede aktarılmış bulunan nota-bilgiye tıklandığında ilgili klasöre kaydedilmiş PDF veya xlsx i açmasını istiyoruz. Yani otomatik olarak link verdirmek istiyoruz (yine aynı buton formülü içerisinde)

*Konu ile ilgili kod paylasimi konusunda yardim rica ederim.

Tesekkurler
 

huseyinn31

Altın Üye
Katılım
7 Mart 2021
Mesajlar
46
Excel Vers. ve Dili
2019 - Türkçe
Altın Üyelik Bitiş Tarihi
10-10-2025
Merhaba
Bunu ilk verdiğim kodda yapmak mantıksız o zaten aynı dosya adını taşıyor.
İkinci kodu bununla değiştirip dener misiniz_?
Kod:
Sub farklı1()
Dim YL As String, ÇLŞ As Variant, SYF As Long
Dim KTP As Workbook, KÇLŞ As String, KTP1 As Workbook
Dim S1 As Worksheet, KSYF As Long, S2 As Worksheet
Dim SÇLŞ As String
Application.ScreenUpdating = False
Set KTP = ActiveWorkbook
YL = ThisWorkbook.Path & "\"
SÇLŞ = ActiveSheet.Name
For SYF = 1 To KTP.Sheets.Count
Set S1 = KTP.Sheets(SYF)
If S1.Range("E1") <> Empty Then
S1.Select
ÇLŞ = ActiveCell.Address
Workbooks.Add
Set KTP1 = ActiveWorkbook
S1.Copy KTP1.Sheets(1)
For KSYF = KTP1.Sheets.Count To 2 Step -1
Application.DisplayAlerts = False
Sheets(KSYF).Delete
Application.DisplayAlerts = True
Next
Set S2 = KTP1.Sheets(1)
S2.Cells.Copy
S2.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range(ÇLŞ).Select
S2.Name = S1.Range("E1").Text
KTP1.SaveAs YL & S1.Range("E1").Text & ".xlsx", xlOpenXMLWorkbook
KTP1.Close
End If: Next
Sheets(SÇLŞ).Select
Application.ScreenUpdating = True
End Sub
Hocam merhaba,

Bu kod istediğim işlemi yapıyor fakat 2 ayrı sayfayı kaydediyor. Ben sadece "butonu koyduğum sayfanın", "56R x 10C hücre aralığını" ve dosya isminin "E1 - B4" olacak şekilde düzenlemek istiyorum fakat yapamadım. Yardımcı olabilir misiniz
 
Üst