Çözüldü Bu kod hızlandırılabilir mi?

  • Konuyu başlatan Konuyu başlatan vurkan
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

vurkan

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Öncelikle Selamün Aleyküm.
Bu güzel oluşumun bir parçası olmak, birbirinden değerli üstadlardan feyz alma imkanına kavuşmaktan mutluyum. Aranıza yeni katıldığım için site kurallarını bilemeyebilirim. Daha önce defalarca bana destek olan Sayın Ömer Baran Üstadın davetiyle soruyu buradan soruyorum.
Sayın Korhan Ayhan Üstadın ****** de yardımlarını esirgemediği bir dosyanın devamı olarak aynı dosyayla alakalı bir kod hakkında yardım isteyecektim.
Ben kod yazmayı bilmiyorum. Bu dosyadaki kodlar ***** deki güzel insanlar tarafından yazıldı.
Geçen sene yazımına başladığımız bu dosyaya yeni şeyler ekledikçe başlangıçta çok hızlı çalışan kodlar yavaşlamaya başladı. Öyle ki yaklaşık 10 dakika süren bir aktarma işleminin Sayın Korhan Beyin güzel dokunuşuyla birkaç saniyeye düşmesi, yaklaşık üç dört dakika süren aşağıdaki kod için birşeyler yapılabileceği fikrini doğurdu. Birşeyler yapılabilirse güzel olur kanaatindeyim. Saygılar sunuyorm.

Kod:
You must log in to view content
(75 satır)
 
Dosya açılmadan da Ado ile veri alınabilir.( Daha hızlı olduğunu duymuştum )
Ado konusunda fazla bilgim olmadığı için excel üstadlarımız cevap verecektir.
 
Merhaba Sayın @Vurkan . Önce forumumuza hoşgeldiniz diyorum.

Kodları vermişsiniz, bir miktar anladım ancak sorunuzun ekinde örnek belge olmadığından ve
yapılacak işleme dair herhangi bir açıklama da yazmadığınızdan kafamda çok canlandıramadım doğrusu.

İsterseniz, verinin yazılacağı belge ile verinin alınacağı bir belgenin özel bilgi içermeyen birer kopyasını ekleyin.
Özel bilgilerin yerine iç tutarlılığı olacak şekilde başka veriler yazınız.
Ayrıca dosyalardaki veri yoğunluğunun çok olmaması da iyi olur.

Sonra da yapılacak işleme ilişkin biraz açıklama yazın ki cevap vermeyi düşünecek kişiye kolaylık sağlamış olun.

Benim anladığım; OKUL LİSTE ve SINIF adını taşıyan en azından iki sayfası olan asıl belgeniz var ve
bu belgenin bulunduğu klasörde de SINIF sayfasının A sütununda yazılı değerlerle aynı adı taşıyan xls uzantılı belgelerle ilgili
işlem yapılmasını öngörüyorsunuz. Salt okunur olmayan (sanırım bir paylaşım klasöründe bulunuyorlar ki, işlem sırasında
başkasının açarak üstünde çalıştığı belgeleri atlamak için olsa gerek) bu xls uzantılı belgeleri tek tek açıp bunlar üzerinde işlem yapmak istiyorsunuz.

Örnek belgeler ve açıklama ???
 
Sayın Baran çok haklısınız. Dosyaları ekliyorum.
Buradaki 1A isimli dosya örnek olarak iki çocuğun bilgileri bu formatta. Sınıflar yaklaşık 30 kişi. 41 tane sınıf var. Sınıf isimleri bu formatta.
Yukarıdaki makroyu çalıştırdığımızda (Sub getirr() )aynı klasör içindeki sınıf listeleri (Ana dosyadaki SINIF isimli sayfada olanları baz alarak) Okul liste isimli sayfaya alt alta aktarılıyor.
Daha sonra Sub Verileri_Aktar() makrosu OKUL LİSTE sayfasındaki verileri VERİ sayfasına aktarırken Call VURKAN_BRN (Sizin hazırladığınız) isimli kodla da çocukların doğum yeri ve yılı verilerini birbirinden ayırıyorum. Sonra OKUL LİSTE sayfasındaki verileri temizliyorum. (Dosya çok şişmesin diye) Böylece veri sayfasını baz alan diğer sayfaları kullanıyorum.

Dosya gittikçe hantallaşıyor. Verileri aktarma makrosunu 10 dakikadan 5 saniyeye (yaklaşık) indirdik. Getirr makrosu da hızlanırsa daha iyi olur. Bu haliyle 3 - 4 dakika sürüyor.
Veya Sınıf ve Okul Liste sayfalarına gerek kalmadan bu sınıflardaki bilgiler VERİ sayfasındaki formatta direkt aktarılabilirse belki o daha da hızlı olabilir. Bilemiyorum.

Çünkü ben kod yazmayı hiç bilmiyorum. Bazen çok uğraşarak ta olsa sizlerin kodlarında küçük değişiklikler yapıp kullanıyorum. Bazen de tutturabilirsem makro kaydederek amacıma ulaşıyorum. Saygılar.
 

Ekli dosyalar

Anladığım kadarıyla verileri bir yerden indirip çeşitli aşamalardan geçirip işleminizi yapıyorsunuz. Bunun yerine daha hızlı olacak internet üzerinden veri çekebilmeniz. Tabi e-okul arayüzüne giriş yapabilen birinden yardım istemeniz gerekir bu durumda. Ya da yukarıdaki istediğiniz gibi direk veri sayfasına indirdiğiniz excel üzerinden veri aktarmak olacaktır. Bir çalışma yapabilirsem dosyayı buradan paylaşırım.
 
Evet ben öğretmenim. Bilgileri e okuldan excele aktarıp kullanıyorum. Ancak kod yazmayı bilmediğimden oradan verilerin nasıl çekileceğini bilmiyorum. Bu haliyle dosyam istediğim gibi çalışıyor. Ancak kodların işlem yapması uzun sürüyor. Öğrenci bilgilerini paylaşmam mümükün değil. Ama verdiğim formatı 1400 kişilik çoğaltabilirseniz kodun çalışmasını deneyebilirsiniz. Çalışmanızı bekleyeceğim. Saygılar.
 
sayın feyzullah ilginize teşekkür ediyorum. Önerdiğiniz kod verileri alırken OKUL LİSTE sayfasına A2 ten başlayarak ve her öğrenci arasında bir boşluğu koruyarak yapıştırıyor. Oysa A2 den başlayıp öğrenciler arasında boş satır bırakmadan birleştirmeli. Aktarma kodumuz buna göre ayarlanmış. Saygılar
 
sayın feyzullah ilginize teşekkür ediyorum. Önerdiğiniz kod verileri alırken OKUL LİSTE sayfasına A2 ten başlayarak ve her öğrenci arasında bir boşluğu koruyarak yapıştırıyor. Oysa A2 den başlayıp öğrenciler arasında boş satır bırakmadan birleştirmeli. Aktarma kodumuz buna göre ayarlanmış. Saygılar


VBA:
You must log in to view content
(32 satır)
[/CODE]
 
Sayın feyzullah Verilerin alındığı e okuldan aktarılan 1A gibi dosyalarda öğrenciler arasında her 21 satırdan sonra bir boş satır var. Bu boş satır ÖĞRENCİ PROGRAMI dosyasındaki OKUL LİSTE sayfasında birleştirilirken olmamalı bütün veriler aralıksız olmalı. Bu son verdiğiniz kod da ilk kod gibi aradaki boşluklarla beraber aktarıyor. Benim VERİ sayfasına aktarma kodlarımda bu boş satır tanımlı olmadığından hata veriyor. Yukarıdaki 4 nolu mesajımdaki ekli orjinal dosyanın OKUL LİSTE sayfasındaki Getirr ve Verileri aktar kodları çalışan kodlar. Bunlardaki adres tanımlamaları doğru. sadece sizin anternatif yazdığınız getirr kodunu hızlandırmak istiyorum. Saygılar.
 
Sayın Feyzullah verdiğiniz kod eskisine göre yüzde 60 daha hızlı. Ancak çalıştırdığımda ekli resimlerdeki hatayı veriyor. bu kodu yazıcı sayfasındaki İlk yapılacak işlemlerdeki e-okuldan alınan DOSYALARI BİRLEŞTİR dügmesine atayacağım. Sizdeki çalışan haliyle paylaşabilirseniz ben nerede hata yaptığımı görürüm. Bendeki gerçek verilerle çalıştırınca OKUL LİSTE sayfasında hala bir boşluk bırakıyor. Saygılar.
 

Ekli dosyalar

  • hata.webp
    hata.webp
    33.9 KB · Görüntüleme: 3
  • OKUL LİSTE SAYFASI.webp
    OKUL LİSTE SAYFASI.webp
    24.1 KB · Görüntüleme: 3
Sayın Feyzullah verdiğiniz kod eskisine göre yüzde 60 daha hızlı. Ancak çalıştırdığımda ekli resimlerdeki hatayı veriyor. bu kodu yazıcı sayfasındaki İlk yapılacak işlemlerdeki e-okuldan alınan DOSYALARI BİRLEŞTİR dügmesine atayacağım. Sizdeki çalışan haliyle paylaşabilirseniz ben nerede hata yaptığımı görürüm. Bendeki gerçek verilerle çalıştırınca OKUL LİSTE sayfasında hala bir boşluk bırakıyor. Saygılar.


Bendeki çalışan dosya ektedir.
 

Ekli dosyalar

Sayın Feyzullah Bana gönderdiğiniz dosyayı denediğimde aynı sorunun devam ettiğini üzülerek söylemek zorundayım. Yazdığınız kod gerçekten hızlı çalışıyor ama OKUL LİSTE sayfasındaki boşluk sorunum devam ediyor. OKUL LİSTE (2) isimli sayfayı niçin eklediğinizi de anlamadım. Saygılar.
 
Sayın Feyzullah Bana gönderdiğiniz dosyayı denediğimde aynı sorunun devam ettiğini üzülerek söylemek zorundayım. Yazdığınız kod gerçekten hızlı çalışıyor ama OKUL LİSTE sayfasındaki boşluk sorunum devam ediyor. OKUL LİSTE (2) isimli sayfayı niçin eklediğinizi de anlamadım. Saygılar.


Öncelikle OKUL LİSTE (2) sayfasını test amaçlı aradaki farkı görmek için yapmıştım ve öyle kalmış. Kodu ben mevcut veri ile denediğimde boşluk olmuyor ilginç.

Aşağıdaki kodu test eder misiniz?

VBA:
You must log in to view content
(29 satır)
 
Sayın Feyzullah Üstadım. Son verdiğiniz kod sorunsuz çalıştı ve aktarma 45 saniye sürdü ki gayet iyi bir süre. Teşekkür ediyorum. Seni çok yordum hakkını helal et. Dosyaya yapmayı düşündüğüm bazı eklemelerde de yardımlarınızı esirgemeyeceğinizi umuyor saygılar sunuyorum.
 
Merhaba.
Sorununuz çözüldü sanırım ama bir fikrimi belirteyim ve
belirttiğim yöntemin başka sakıncası yoksa alternatif bir çözüm önerisinde bulunayım.

Belgenizde yer alan OKUL LİSTE isimli sayfayı sadece,
buraya aldığınız verileri tasnifleyerek VERİ isimli sayfaya AKTARMAK için kullanıyorsanız aklıma şöyle bir soru geliyor;
SINIF isimli sayfadaki ismi taşıyan belgelerden alıp NEDEN doğrudan VERİ sayfasına aktarmayı düşünmüyorsunuz.

Sınıfların isimlerini taşıyan belgelerden verileri alıp doğrudan VERİ sayfasına aktarmak isterseniz
aşağıdaki kod bu işlemi yapar.
Kodu, VERİ isimli sayfaya ekleyeceğiniz yeni bir düğmeyle ilişkilendirerek çalıştırın. OKUL LİSTE sayfasını da tamamen silin.
CSS:
You must log in to view content
(34 satır)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst