Çok geniş bir listede formülleri değere dönüştürme

Katılım
18 Ağustos 2009
Mesajlar
199
Excel Vers. ve Dili
Excel 365 - Türkçe
150 sütundan ve sayısı değişkenlik gösteren yaklaşık 30.000 satırdan oluşan geniş bir listem var.
Bu listedeki bilgileri formüllerle başka bir sayfaya aktarıp burada analiz etmeye çalışıyorum.
Ancak liste çok geniş olduğu için formüller çok kasıyor.

Bu yüzden sadece 1.satıra formül yazıp, o formülü kaç tane gerekiyorsa aşağı satırlara kopyalayan
ve sonrasında da formülleri değerlere dönüştüren bir makro yazdım. Ancak bu makronun çalışması da
çok uzun sürüyor. Buna daha kısa sürede yapan kasmayan bir çözüm yolu önerecek var mıdır?

Aşağıdaki kodda öncelikle, 4.satır ve aşağısındaki bilgileri temizleyip, sonra 3.satırdaki formülleri
4.satırdan itibaren kaç tane satır varsa aşağıya doğru o kadar kopyalayıp, formülleri değerlere dönüştürüyor.

Range("A4:AZ" & [B1]).Select
Selection.ClearContents
Range("A3:AZ3").Select
Selection.Copy
Range("A4:AZ" & [A1] + 2).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Formülü bilseydik ve bir de örnek dosya olsaydı iyi olmaz mıydı?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
150 sütun X 30.000 satır = 4.500.000 adet formül varsa, dosyanın kasılması normaldir, zaten yakında dosya da bozulur...... O zaman orjinal verilerinizi kurtarma şansınız da kalmaz.

Bu işin doğrusu; başka bir Excel dosyasına yazılacak kodla, orjinal dosyanızdan verilerin alınarak gerekli analiz işlerinin yine VBA ile yapılmasıdır.


.
 
Katılım
18 Ağustos 2009
Mesajlar
199
Excel Vers. ve Dili
Excel 365 - Türkçe
örnek listem ektedir.
zaten ben de vba ile yapmaya çalışıyorum.
1.satırdaki mevcut formülleri ihtiyaç kadar aşağıya kopyalayıp sonra da formülleri değerlere dönüştürmek istiyorum.
kullandığım kodlar ekteki dosyada Module1 içerisindedir.
kullandığım dosya çok geniş ve kapsamlı olduğu için kullandığım bu yol biraz uzun sürüyor.
aynı işi yapacak daha kısa bir yol var mıdır onu bulmaya çalışıyorum.

.Value = .Value

bunu denedim ama ama başaramadım.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Örnek dosyanızda Liste sayfasında herhangi bir veri bulunmuyor.

Liste ve LİSTE 2 sayfasında sütun başlıkları aynı olduğu halde neden İNDİS formülü kullandınız anlamadım.

LİSTE 2 sayfasının A1 ve B1 hücrelerindeki sayılar neyi ifade ediyor?

İşin özü bu dosyada formüllerle ne yapmaya çalıştığınızı anlamadım maalesef.
 
Katılım
18 Ağustos 2009
Mesajlar
199
Excel Vers. ve Dili
Excel 365 - Türkçe
Sayın YUSUF44, siz formülleri dikkate almayın.
benim istediğim o formülleri aşağıdaki hücrelere hızlı bir şekilde kopyalamak ve formülleri değerlere dönüştürmek istiyorum.
bunun için önereceğiniz kod var mıdır?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,316
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif olarak "Özet Tablo - Pivot Table" kullanmayı deneyebilirsiniz.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Belki formüllerin ne olduğunu ne yaptığını bilseydik ona göre farklı bir yöntem geliştirilebilirdi, formül yerine tamamen makro kullanılabilirdi mesela.
 
Üst