hakki83

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
32 Bit
Excel Dili
Türkçe
Merhaba Excel hocalarımız

Bilgisayardaki bir konumda (masaüstü değil, herhangi bir konum) birbirinin aynısı olan iki excel dosyası var.

Birinin adı DOSYA1
Diğerinin adı DOSYA2

DOSYA1 adlı dosyanın içinde birçok sayfa var.
Bu sayfalardan birinin adı RAPORLAR sayfasıdır.

DOSYA2 adlı dosyanın içinde de sayfalardan birinin adı doğal olarak RAPORLAR sayfasıdır.

Amacım, talebim şudur:

DOSYA1'in RAPORLAR sayfasında B2:AP10000 alanında (bu alan önemli) çeşitli hücrelerde veriler var. Ve her hücrede açıklama notları var.

Bu iki dosya KAPALI HALDE bir konumda duruyor.
İşte amacım şudur, ÜÇÜNCÜ BİR DOSYADAKİ MAKRO İLE,
DOSYA1'in, RAPORLAR sayfasındaki, B2:AP10000 alanındaki hücreleri ve ekli olan açıklamaları kopyalayıp,
DOSYA2'nin RAPORLAR sayfasına, B2:AP10000 alanına, YAPIŞTIRMAK.
(DOSYA2'nin B2:AP10000 alanı boştur!)

Alan çok büyük olduğu için, bu işi elle yaparsam, hata yapabileceğimden, makro ile hatasız yapılacağını düşündüğümden, bu kodu hocalarımızdan talep ediyorum.

......

Kısaca tekrar etmek gerekirse:
DOSYA1 deki RAPORLAR sayfasındaki B2:AP10000 alanındaki verileri ve ekli açıklamaları kopyalayıp,

DOSYA2 deki RAPORLAR sayfasındaki B2:AP10000 alanına yapıştırmak.

(Yapıştırırken herhangi bir biçimlendirme kesinlikle olmayacak. Verileri yapıştırması yeterlidir.)

Bu iki dosya kapalı olacak, üçüncü bir dosyadaki kodlar bu işi yapacak.

Üç dosya da aynı konumda (adreste ) bulunacak.
DOSYA1'E ya da DOSYA2'YE, makro ilave etmek istemiyorum, zira dosyalar çok fazla kod içeriyor. Bundan dolayı üçüncü bir dosyadaki kodlar bu işi yapmalı.

.......


Otomatik konum bulma sanıyorum Filename:=ThisWorkbook.Path
oluyor. Bu şekilde kodlara konum adresi veya User bilgisi girmeye gerek kalmıyor. Biraz daha pratik oluyor. Onun için masaüstünde değil de dosyaların bulunduğu konumda kopyalama işini yaparsa daha pratik, daha kolay olur diye düşünüyorum.

.....

Şimdiden teşekkür ederim emekleriniz için.
 

Ekli dosyalar

Çözüm
Bir de şu kodu deneyin.

Kod;
-- varsa, hedef belgedeki RAPORLAR sayfasını SİLER,
-- kaynak belgedeki RAPORLAR sayfasının bir KOPYASINI, hedef belgeye ekler.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(13 satır)
Değerli Ömer hocamız önce emeğinize sağlık.

Bir saat kadar önce beğeni yapıp cevap yazmıştım, daha sonra exceldepo web sayfasına bir süre girilemedi, hata veriyordu.
Daha sonra sayfa düzeldi.
Fakat girip baktığımda yazdığım mesajın ve beğeninin kendiliğinden silindiğini gördüm.
Tekrar yazayım.

Ömer hocam örnek dosyalarda denediğim zaman hiç sorun yok. Sorunsuz kopyalıyor.

Fakat gerçek dosyalarımda denediğimde, makrolu kum saati dönüyor dönüyor, dosya donuyor ve akabinde “Yanıt Bekleniyor” yazısı beliriyor bildiğiniz üzere.

15-20 dak bekledim fakat dondu kaldı olmadı. Ve kopyalanması gereken hücre sadece 107 hücreydi.

Bu sorunu nasıl çözebiliriz acaba?
 
Sitede bir teknik sorun nedeniyle problem yaşanmış ve çözülmüştür.
Bir kaç saatlik çok minimum seviyede veri kaybı olmuştur.
Sizin mesajda buna kurban gitmiş ne yazık ki..
Hatta sadece sizin mesaj kayıp sanırım, başka da tespit edemedik.
 
CTRL+H ile özel bilgileri, uydurma bilgilerle değiştirip (kaynak belge) örnek belgeyi yenileyerek foruma yüklerseniz uygun vakit bakarım.

Verdiığim kod topluca basit kopyala yapıştır işlemini içeriyordu. Bunu tercih etme sebebim ise, hücre açıklamalarının da aktarılmasını istemeniz.
Sadece değerleri isteseydiniz başka yöntem de önerirdim.
Hücre açıklamalarını, tek tek hücrelere yazdırmak da mümkündü ama veri alanı büyük ve açıklama içeren hücre adedi fazla olduğunda işlem biraz bekletir diye düşünüyorum.

Ama yine de tekrar bakıp alternatif cevap vermeye çalışırım.

Peki bütün olarak sayfayı kopyalama seçeneği için ne dersiniz?
 
Olur hocam. Siz hangi kodu yazarsanız memnuniyetle denerim.
Çeşitli farklı kodları denemek daha iyi oluyor.


Fakat orjinal dosyanın bilgilerini, çok uğraştıracağından değiştirmek maalesef bu dosya için pek mümkün görünmüyor hocam.

Kodlarınızı bilgisayara geçer geçmez hemen deneyeceğim.

Teşekkürler hocamıza.
 
Bilgisayarda değilim.
Fikrim, varsa hedef dosyadaki RAPORLAR sayfasını bütün olarak SİLİP, kaynak dosyadaki sayfayı bütün olarak hedef dosyaya kopyalamanın pratik ve hızlı olacağı yönünde.
Bilgisayara geçince cevap yazarım.
 
Bir de şu kodu deneyin.

Kod;
-- varsa, hedef belgedeki RAPORLAR sayfasını SİLER,
-- kaynak belgedeki RAPORLAR sayfasının bir KOPYASINI, hedef belgeye ekler.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(21 satır)
 
Çözüm
Ömer hocam oldu fakat Dosya2’de “bağlantı” oluştu. (Dosya2’de Dosya1’e bağlantı)

‘Bağlantıyı Kes’ yapsam bile kesilmiyor.

Bağlantı oluşturmayan kod olabilir mi acaba?
 
Ömer hocam dosyalarda kendiliğinden oluşmuş iki tane “yazdırma alanı” ad tanımlamaları vardı.
İkisini de sildim fakat değişen bir şey olmadı maalesef.
 
Koddaki şu bölümü
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(2 satır)

şununla değiştirip tekrar deneyin.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
 
Ömer hocam denedim.
Bir süre bekledikten sonra eklemiş olduğumuz satırda hata verdi.

Sonra denemek için
Application enable events satırlarını üste ve alta ekledim.
Bu sefer çalıştı ama yine bağlantı oluştu Dosya2’de.
 
O zaman;
kaynak.Sheets("RAPORLAR").Range(alan).Value = kaynak.Sheets("RAPORLAR").Range(alan).Value
kod satırının hemen altına
kaynak.Sheets("RAPORLAR").Cells.Validation.Delete
şeklinde bir satır ekleyin.
 
Üst