Çözüldü Kapalı Sayfalardan Belirtilen Koşulla Göre Veri Aktarmak.

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,310
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bilemiyorum, bende bir sıkıntı olmadı.

Sorun belki kullanılan driver'ın sizin 64 bit'i desteklememesi olabilir. Dosyayı diğer dosyaların olduğu klasöre yerleştirip de açtınız değil mi?

.
 

gicimi

Altın Üye
Katılım
3 Şubat 2008
Mesajlar
594
Excel Vers. ve Dili
Office 2016 Eng. 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2024
Evet. Aynı klasör içerisinde çalıştırdım.
 

gicimi

Altın Üye
Katılım
3 Şubat 2008
Mesajlar
594
Excel Vers. ve Dili
Office 2016 Eng. 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2024
@Ziynettin Bey Merhaba;

Reportun A-B-C Sütunları boş olduğu zaman hata veriyor şimdi çözdüm. G sütunundaki saat formatını (ss:dd:nn) düzeltebilir miyiz. "
 

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,104
Excel Vers. ve Dili
office2010
F sütunu tarih, G sütunu saat biçimi olarak düzenlendi.
Ne kadar sürede işleminiz gerçekleşiyor.

PHP:
Sub bul()
Application.ScreenUpdating = False
Z = TimeValue(Now)
yol = "C:\Veri"
dosya1 = "Data.xlsx"
dosya2 = "ADM.xlsx"
dosya3 = "SDM.xlsx"

GetObject (yol & "\" & dosya1) 'Data
Set s1 = Workbooks(dosya1).Sheets("Sayfa1")
a = s1.Range("C2:O" & s1.Cells(Rows.Count, 3).End(3).Row).Value
Set d = CreateObject("scripting.dictionary")
For i = 1 To UBound(a): d(a(i, 1)) = i: Next i

GetObject (yol & "\" & dosya2) 'AMD
Set s1 = Workbooks(dosya2).Sheets("Sayfa1")
a1 = s1.Range("D2:H" & s1.Cells(Rows.Count, 4).End(3).Row).Value
Set d1 = CreateObject("scripting.dictionary")
For i = 1 To UBound(a1): d1(a1(i, 1)) = a1(i, 5): Next i

GetObject (yol & "\" & dosya3) 'SMD
Set s1 = Workbooks(dosya3).Sheets("Sayfa1")
a2 = s1.Range("D2:H" & s1.Cells(Rows.Count, 4).End(3).Row).Value
Set d2 = CreateObject("scripting.dictionary")
For i = 1 To UBound(a2): d2(a2(i, 1)) = a2(i, 5): Next i


Workbooks(dosya1).Close
Workbooks(dosya2).Close
Workbooks(dosya3).Close

On Error Resume Next
Set sh = Sheets("Sayfa1")
b = sh.Range("D2:D" & sh.Cells(Rows.Count, 3).End(3).Row).Value
ReDim c(1 To UBound(b), 1 To 8)
For i = 1 To UBound(b)
    For j = 1 To 7
        c(i, j) = a(d(b(i, 1)), j + 6)
    Next j
    c(i, 8) = d1(b(i, 1))
    If c(i, 8) = "" Then
        c(i, 8) = d2(b(i, 1))
    End If
Next i

sh.[E2].Resize(UBound(b), 8) = c
sh.[F2].Resize(UBound(b)).NumberFormat = "dd.mm.yyyy"
sh.[G2].Resize(UBound(b)).NumberFormat = "hh:mm:ss"
Application.ScreenUpdating = True

MsgBox "İşlem tamam." & vbLf & vbLf & CDate(TimeValue(Now) - Z), vbInformation
End Sub
 

gicimi

Altın Üye
Katılım
3 Şubat 2008
Mesajlar
594
Excel Vers. ve Dili
Office 2016 Eng. 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2024
@Ziynettin Bey 2-4 dk arası sonuç elde edebiliyorum.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,269
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Ekli dosyayı klasörün içine attıktan sonra çalıştırıp test edebilirsiniz.
(64 bit Excel ile daha performanslı çalışmakta)
 

Ekli dosyalar

gicimi

Altın Üye
Katılım
3 Şubat 2008
Mesajlar
594
Excel Vers. ve Dili
Office 2016 Eng. 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2024
@Zeki Gürsoy Merhaba;
Aynı Dosyaların içerisine yüklediğiniz dosyayı indirdim ve çalıştırdım. Resimlerdeki hata ile karşılaştım.
1.JPG2.JPG
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,269
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Sayfa1 isimli çalışma sayfasını bulamadığını söylüyor. İsimleri her dört dosyanın adını Sayfa1 olarak ayarlayın. Çalıştırmadan önce de o dört dosya kapalı olmasına dikkat edin.
 

gicimi

Altın Üye
Katılım
3 Şubat 2008
Mesajlar
594
Excel Vers. ve Dili
Office 2016 Eng. 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2024
Zeki Bey Tüm sayfaların ismi "Sayfa1" ve hepsi kapalıyken çalıştırdım. Aynı hata ile karşılaşıyorum. Göndermiş olduğunuz dosyanın adını da Report ismini verdim. Aynı hatayı verdi.
 

gicimi

Altın Üye
Katılım
3 Şubat 2008
Mesajlar
594
Excel Vers. ve Dili
Office 2016 Eng. 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2024
@Ziynettin Bey emeğinizi sağlık. Bunu da alternatif olarak kullanacağım. Kolaylıklar.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,310
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Zeki Bey, elinize sağlık ....

32 Bit Office 2010 ile, örnek dosyalarda işlem 6,48 saniyede tamamlandı.

Selamlar,
.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,269
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Teşekkürler Haluk Bey.
Gördüğünüz süre aslında örnek dosyalardaki 40-50 satırlık verilerin işlenme süresi değil. Dosyalarda CTRL + End yapıldığında çalışma alanının çok daha büyük olduğunu görebilirsiniz. Yani gerçekte işlenen kayıt sayıları (null değerler dahil) aşağıdaki gibidir:
Report.xlsx : 100.000
Data.xlsx : 100.000
ADM.xlsx : 100.000
SDM.xlsx : 100.000
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,310
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Farkındayım Zeki Bey;

Ben de konuyla ilgili epey kafa yormuştum. Dosyalardaki "null" değerleri o zaman fark ettim ben de.

Kısıtlı SQL bilgim ve sorudan anladığım kadarıyla 35. mesajda bir şeyler yapmaya çalışmıştım. Soruyu soran arkadaş o dosyada da hata almıştı.

.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,598
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Zeki Bey, elinize sağlık ....

32 Bit Office 2010 ile, örnek dosyalarda işlem 6,48 saniyede tamamlandı.

Selamlar,
.
Haluk bey merhaba,

Zeki bey'in kodlarının çalıştığı örnek excelleri yükleyebilir misiniz.
İlk mesajdaki örnekler kaybolmuş.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,310
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Üst