• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü Vba da hızlı veri nasıl getirilir.

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

yapıcı

Yeni Üye
Katılım
30 Ağu 2023
Mesajlar
70
Aldığı beğeni
7
Excel V
Office 2021 TR
Konu Sahibi
Arkadaşlar Merhaba
Göndermiş olduğum dosyada verileri aldım fakat çok yavaş çalışıyor bunu nasıl
hızlı bir şekilde yapabilirim yardımcı olabilir misiniz.
İstediğim sayfa açılınca çalışan kodda
Kodlar ThisWorkbook da
 
Arkadaşlar Merhaba
Göndermiş olduğum dosyada verileri aldım fakat çok yavaş çalışıyor bunu nasıl
hızlı bir şekilde yapabilirim yardımcı olabilir misiniz.
İstediğim sayfa açılınca çalışan kodda
Kodlar ThisWorkbook da
Application.ScreenUpdating = False


'For i = 2 To 1000000 ' bu ve bunun gibi döngüleri alttaki satır gibi yap.

For i = 2 To Sheets("CekleriDüzenle").Range("A1048576").End(xlUp).Row
 
Application.ScreenUpdating = False


'For i = 2 To 1000000 ' bu ve bunun gibi döngüleri alttaki satır gibi yap.

For i = 2 To Sheets("CekleriDüzenle").Range("A1048576").End(xlUp).Row
Application.ScreenUpdating = False 'makro başlangıcında
Application.ScreenUpdating =true' end sub dan önce

Döngülerini
'For i = 2 To 1000000 ' bu ve bunun gibi döngüleri alttaki satır gibi yap.

For i = 2 To Sheets("CekleriDüzenle").Range("A" & Rows.Count).End(xlUp).Row
"CekleriDüzenle" hangi sayfada döngü yapacaksan sayfanın adı.
Bu şekilde dene.
 
Hız olayı için dizileri öğrenmenizi tavsiye ederim.Tek tek tek hücrelere döngü ile veri almak yavaş çalışır.

HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Çözüm
Konu Sahibi
Özcan bey
Dizi olunca daha hızlı oldu teşekkür ederim emeğinize sağlık.

'For i = 2 To 1000000 ' bunun ile alttaki satırın farkı nedir.

For i = 2 To Sheets("CekleriDüzenle").Range("A1048576").End(xlUp).Row

Evet dizileri öğrenmek istiyorum ama mantığını kavrayamadım. Neyi nereye nasıl formüle edeceğimi anlayamadım
 
Özcan bey
Dizi olunca daha hızlı oldu teşekkür ederim emeğinize sağlık.

'For i = 2 To 1000000 ' bunun ile alttaki satırın farkı nedir.

For i = 2 To Sheets("CekleriDüzenle").Range("A1048576").End(xlUp).Row

Evet dizileri öğrenmek istiyorum ama mantığını kavrayamadım. Neyi nereye nasıl formüle edeceğimi anlayamadım
Dizi ile yapmayı bilmediğim için ben de for next kullanıyordum. Refaz Bey sayesinde dizilere merak saldım. Diziler benim de çok işime yarayacak. Refaz Beye de ayrıca teşekkür edeyim bu arada. Refaz Beyin zamanını almayacaksa 8. mesajdaki diziler ile ilgili kodları açıklamasını rica edeceğim.
 
Konu Sahibi
Dizi ile yapmayı bilmediğim için ben de for next kullanıyordum. Refaz Bey sayesinde dizilere merak saldım. Diziler benim de çok işime yarayacak. Refaz Beye de ayrıca teşekkür edeyim bu arada. Refaz Beyin zamanını almayacaksa 8. mesajdaki diziler ile ilgili kodları açıklamasını rica edeceğim
 
8. mesajdaki diziler ile ilgili kodları açıklamasını rica edeceğim
Rica ederim.Örneğin alttakini 10 satır 1 sütunluk excel sayfa gibi düşünebilirsiniz.En sondaki 5 olsaydı 5 sütunluk gibi olurdu.
Bu dizi döngü ile dolunca resize yada benzeri kodla toptan aktarma yapılır.
Ayrıca birde redim preserve olayı var o da tersi.Bununlailgili bir video vatdı bulursam eklerim.

ReDim arr_cek(1 To 10, 1 To 1)
 
Konu Sahibi
Son mesajı Refaz Üstad atmış ona dikkat etmemişim kusura bakmayın
Refaz Üstad size de çok teşekkür ederim
Özcan Beye katılıyorum 8. mesajdaki diziler ile ilgili kodları açıklaya bilirseniz bir yandan dizilerin mantığını çözmeye çalışalım
Yaptığım programda birçok yer var bu şekilde yavaş çalışan
 
Sabırla sonuna kadar izlerseniz anlarsınız sanıyorumki ben bu adamdan çözmüştüm tabii yabancı dil ama anlaşılıyor.Adım adım anlatıyor videoda herşeyi.

 
Konu Sahibi
Yani size nasıl teşekkür etsem az Refaz Üstad for next döngülerini anca anca kavradım
programı ilerlettim ama bu şekilde hızlı çalıştıramıyorum diziler çok karışık gibi duruyor
program seri çalıştı mı işlerde seri ilerliyor :):)
 
Rica ederim.Örneğin alttakini 10 satır 1 sütunluk excel sayfa gibi düşünebilirsiniz.En sondaki 5 olsaydı 5 sütunluk gibi olurdu.
Bu dizi döngü ile dolunca resize yada benzeri kodla toptan aktarma yapılır.
Ayrıca birde redim preserve olayı var o da tersi.Bununlailgili bir video vatdı bulursam eklerim.

ReDim arr_cek(1 To 10, 1 To 1)
Teşekkürler.
 
Yani size nasıl teşekkür etsem az Refaz Üstad for next döngülerini anca anca kavradım
programı ilerlettim ama bu şekilde hızlı çalıştıramıyorum diziler çok karışık gibi duruyor
program seri çalıştı mı işlerde seri ilerliyor :):)
Rica ederim abey,aslında zor değil pratik yaparsanız tam çözersiniz.Öncedende dediğim gibi excel sayfası gibi düşünülür ve satır ve sütunu doldurulur ve offsetyada resize gibi kodlarlada toptan aktarılır.Tabii bazı durumlarda transpose ve preserve işin içine girebilir videoda tümü var.
 
ReDim arr_cek(1 To 10, 1 To 1)
Resize olayınıda açıklayayım tabii bunun yerine offset te kullanılır.
Yanlışta yazabilirim tabii bende bazen karıştırıyorum bunu.
Diyelimki yukardaki gibi 10 satır bir sütunluk doldurduk.A2 den itibaren tüm aktarmak için Range("a2").resize(10,1) gibi yazılacaktı.
Eğer redim içindeki en sondaki 1 yerine 5 olsaydı 5 sütunluk dizi olacağı için range("a2").resize(10,5) yazılacaktı.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst