Çözüldü Çalışma Kitapları Arasında Veri Transferi Yapma

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

ERMAN.SAYINALP

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhabalar,

Tüm Sayfaları aynı Formatta olan iki ayrı Çalışma Kitabı arasında, Veri Transferi yapmak istemekteyim.

Gerekçe:
Makroları, Fonksiyonları bir şekilde hasar görmüş, bozulmuş, ancak verileri olduğu gibi duran bir Çalışma Kitabından, aynı Formatta hazırlanmış Makroları, Fonksiyonları düzgün çalışan içi veri içermeyen bir başka Çalışma Kitabına tüm veriler aktarılmak istenmektedir.

Çalışma Kitabının biri (bozuk olan) Kaynak-Veri Tabanı olarak kullanılacak, diğer (düzgün çalışan) Çalışma Kitabı Hedef-Veri Tabanının aktarılacağı olacak.

Oldukça fazla sayıda Sayfa, Sütun, Satır veri içermektedir. Bozuk Kitaptan KOPYALA, Sağlam Kitaba YAPIŞTIR yerine bu eylem Excele yaptırılabilir mi ?
 
Çözüm
Aşağıdaki güncel kodu kullanınız. Neler mi değişti?
  • Kopyalanacak dosya ismini otomatik almaktadır.
  • Hedef dosya için Gözat ekranı ile dosya seçimi yaptırılmaktadır. Bu sayede dosya ismi otomatik almaktadır.
  • İşlem sırasında excel programının görünümü gizlenmiştir. Ekran güncelleme kapatılmış, uygulama hesaplaması manuele çevrilmiştir. Bittiğinde tersine işlem yapılmaktadır..
  • Usedrange ile biçimi değişmiş ( varsayılan hücre değerlerinden başka bir değer, renk, hücre genişliği, hücre yüksekliği, vb...) tüm hücreleri almaktaydı. Küçük bir düzeltme ile boş hücreler atlanır oldu.

@Ömer BARAN hocama desteklerinden dolayı teşekkür ederim.

Herhalde bundan sonra kod kısmına güncelleme gelmez :) Aslında dosya açtırmadan...
Aşağıdaki kodu deneyiniz. ( Boş bir modül içerisine yapıştırıp copy makrosunu çalıştırınız. )
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(9 satır)
Not : Hedef dosya ile kopyalanacak dosyadaki sayfa isimlerinin aynı olduğu/oluşturulduğu varsayılmıştır.
Not : Kod kısmında ki kopyalanacakdosya ve hedefdosya karşılık değerlerini kendinize göre ayarlayınız.
Not: Her iki dosyada açık olsun.
 
Merhaba,

Başlangıçta, açtığım konunun olabilirliği konusunda ön bilgi almak istemiştim, Çözümlenebildiği konusunda ön bir Kodlama yapmışsınız, teşekkür ederim.
Lakin, amacına tam olarak hizmet etmediği için Örnek bir dosya ile desteklemeye çalışmak isterim.

Koşullar:
>>>
KAYNAK Kitap da, HEDEF Kitap da, aynı FORMAT'ta hazırlanmış Kitaplardır.
>>> KAYNAK Kitaptan açık Hücrelerdeki serbest haldeki veriler KOPYA'lanıp, HEDEF Kitaba DEĞER olarak taşınacaktır.
>>>
KODLAMA'da Sayfa Adı ve Hücreler ayrı ayrı ADRESLENMELİ'dir.
>>> KAYNAK Kitapta Onlarca Sayfa, Onlarca Sütun ve Binlerce Satır olmasına rağmen, ADRESLENECEK Sayfa ve Hücreler sınırlıdır.
>>> KAYNAK Kitaptan çekilecek VERİ'ler, ardışık Sayfalarda değildir, Sayfalardaki VERİ'ler farklı ADRESLER'dedir. (Hücrelerde)
>>> HEDEF Kitabın SAYFA, SÜTUN ve SATIR Adreslemesi, KAYNAK Kitabın aynısıdır.

Yardımlarınız lütfen.
 

Ekli dosyalar

Merhabalar.
Sayın @erman SAYINALP , örnek belgelerinizin, gerçek belgenin özel bilgi içermeyen kopyası olmana özen gösterir,
olması gereken sonucu da elle yazarak/kopyala yapıştır yaparak vs. örneklendirirseniz, gereksiz yazışmalar olmadan
daha hızlı sonuca ulaşabileceğinizi belirtmek istedim.
Ayrıca kilitli olma durumundan filan söz etmişsiniz ancak örnek belgenizde böyle bir şey de yok.
 
Ekteki dosyayı inceleyiniz.

İlgili kod yapısı:

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(11 satır)

Not : Hedef dosya ile kopyalanacak dosyadaki sayfa isimlerinin aynı olduğu/oluşturulduğu varsayılmıştır.
Not : Kod kısmında ki kopyalanacakdosya ve hedefdosya karşılık değerlerini kendinize göre değiştiriniz.
Not: Her iki dosyada aynı dizinde olmalıdır. Kodu çalıştırmadan önce iki dosyada açık olsun.
 

Ekli dosyalar

Dilimin döndüğünce ifade etmeye çalıştım, şöyle ki;

Sheets("PARA").Select
Range("C13:M9999").Select

bir çeşit ADRESLEME değil midir ?

Diğer taraftan;
Kod bloğunu formül içermeyen hücreleri kopyala şeklinde güncelleyeceğim. Anladığım kadarıyla formüllü hücreler kilitlenmiş.
anladığınız doğrudur. Ancak, burada özellikle istediğim, bir tarafta Kod komutu "KOPYALA" iken, diğer tarafta "DEĞERLERİ YAPIŞTIR" olmalıdır.
Selamlar...
 
Ömer bey,

Örnek mantığı ile aslının mantığı arasında hiçbir fark yoktur, Örnekteki Sayfalarda SARI alanlarda olan veriler, KAYNAK Çalışma Kitabıdır, aynı formatta HEDEF Çalışma Kitabına ve aynı adreslere (hücrelere) KODLAMA ile aktarılacaktır. Ancak bu aktarım, KOPYALA (Kaynak Kitaptan) >>> DEĞERLERİ YAPIŞTIR (Hedef Kitaba) şeklinde olacaktır.

Konunun fazlaca detayı yoktur. (Örnek dosyayı da Kilitli hale getirdim.)
Selamlar.
 

Ekli dosyalar

Merhabalar,

İlk denemede gayet güzel çalıştığını gördüm, çok yoğun veri aktarımı var, biraz daha test etmem lazım ! şimdilik sorun yok gibi gözüküyor...
Elinize sağlık, çok teşekkür ederim. Bir sorunla karşılaşırsam tekrar soru sormama izin verin lütfen.
 
Sayın @cakarem şu an çevrimiçi değil.
Çok fazla sayfa ve çok sayıda hücrenin aktarılacağını belirttiğiniz için;
işlem sırasında ekranda işlemin yapıldığının görüntülenmesi geçici olarak durduruluyor,
bu nedenle kod işini bitirene kadar bekleyiniz.
Kod'un çalışma mantığı şöyle; sayfalarda, kullanılan her hücre tek tek kontrol ediliyor, hücrede formül yoksa ve doluysa veri aktarılıyor.
 
Bu açıklama iyi oldu, zira ben de KOD'u okumaya ve anlamaya çalışıyordum. Dediğiniz/dediğim gibi, 130 civarında Sayfa, 1000'lerce satır, 10'larca Sütun veri içermekte, yaklaşık aktarım, 8-10 dakika kadar sürüyor. Dolayısıyle bu KOD'lama harika oldu.

Alakalarınıza teşekkürler.
 
Ayrıca, ben de size bir tespitimi aktarayım. Şöyle ki;

Binlerce satır içeriğinde (kilitli halde olan) Fonksiyon/Formül alanı bulunmakta. Aktarım sırasında, sistem, KAYNAK'tan Veri arayıp, HEDEF'e aktardığında, HEDEF'te aynı anda hem yazımını yapıyor, hem de Hesaplamasını yapıyor. Dolayısıyle Aktarım İşlemi uzadıkça uzuyor. İlk testimde, aktarımın belki bir-kaç saat, hatta bir-kaç gün bile sürebilirdi. O yüzden ben de Excel'in OTOTMATİK HESAPLAMA Komutunu, ELLE HESAPLAMA'ya çevirdim ki, böylelikle aktarım 8-10 dakikaya kadar düştü.

Bilginize...
 
Aşağıdaki güncel kodu kullanınız. Neler mi değişti?
  • Kopyalanacak dosya ismini otomatik almaktadır.
  • Hedef dosya için Gözat ekranı ile dosya seçimi yaptırılmaktadır. Bu sayede dosya ismi otomatik almaktadır.
  • İşlem sırasında excel programının görünümü gizlenmiştir. Ekran güncelleme kapatılmış, uygulama hesaplaması manuele çevrilmiştir. Bittiğinde tersine işlem yapılmaktadır..
  • Usedrange ile biçimi değişmiş ( varsayılan hücre değerlerinden başka bir değer, renk, hücre genişliği, hücre yüksekliği, vb...) tüm hücreleri almaktaydı. Küçük bir düzeltme ile boş hücreler atlanır oldu.

@Ömer BARAN hocama desteklerinden dolayı teşekkür ederim.

Herhalde bundan sonra kod kısmına güncelleme gelmez :) Aslında dosya açtırmadan ado ile işlem daha hızlı yapılabilir lakin benden bu kadar :) Ado benim bilgimi aşan bir durum.
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(34 satır)
 
Çözüm
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst