• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Kapalı dosyadan düşeyara.

Katılım
25 Aralık 2007
Mesajlar
300
Excel Vers. ve Dili
2007 tr
Kapalı bir dosyadan düşeyara ile veri almak istiyorum.


Standartlar ;
1. Her iki dosyada aynı klasörde.
2. Hedef Dosya : Dosya ve Sayfa adı aynıdır hiç değişmez.
3. Kaynak Dosya : Hedef dosya Adı değişmez ama Sayfa adı hergün değişir. O anda hangi sayfada işlem yapılıyorsa. Yani Aktif sayfa hangisi ise O sayfanın Sarı sütununa veri gelmeli.


Özet:
Kaynak Kitabındaki Kırmızı sütundaki veriyi Hedef Kitabının, Güncel sayfasının Sarı sütununa getirecek.

Taşıma sonunda ise "mesajbox" Şöyle bir rapor vermesini gerekir.
Kaynak dosyanın oluşturulma tarih ve Saati. ##.##.#### Pazartesi. / ##.##
Kaynak dosyada toplam ###.## miktar vardır. Taşınan veri sayısı ise ###.## 'dır.


Çok Önemli Not: Kaynak dosyanın alt toplamı vardır. O toplam rapora dahil edilmemesi gerekir.
 

Ekli dosyalar

Son düzenleme:
Eklediğiniz dosyalarla açıklamalarınız sanki uyuşmuyor gibi. Dosyaları yanlış isimlendirmiş olabilirmisiniz. Birde dosyalardan biri xls diğeride xlsx uzantısında. Böyle olmak zorundamıdır?
 
Dosya adlarını makro içerisinde açıklama parantezi ile yazabilirseniz. ben sizin direktifiniz doğrultusunda, düzenlerim isimlerini.

Kaynak xls. / Hedef xlsm olacak
Yanlız bir not =
Kaynak dosya adı ne ise, otomatik olarak sayfa adıda aynı oluyor.
Hedef dosya aktif sayfa hangisi ise ona düşeyara yapmalı ve değerleri yapıştırmalı.
Kaldıki geçmişe döndüğüm zaman Hedef dosyanın sayfaları arasında gezerken ileride hangi tarihli sayfasına ne veriyi getirdiğimi görmem gerekecek.
Ama taşıma sonunda vereceği mesaj box önemli...
Ayrıca hedef dosyanın alt toplamını almaması gerekiyor demiştim ya, O sanırım sorun değil çünkü =? kaynak dosyanın getirilecek verisinin sütun toplamı / 2 yaptığımız zaman yine alt toplamı elde etmiş oluyoruz.
 
Son düzenleme:
hamitbey bu örneği inceledim, hatta konu aşmadan, ado query vb. gibi kapalı dosyadan veri alma konularınıda inceledim. ama örnek bulamadım maalesef.
 
uzun suredir cevap beklemekteyim. yardımcı olabilecek birisi varmıdır ?
 
Aşağıdaki kodu hedef_dosya isimli dosyanızda çalıştırarak deneyin.

Kod:
Sub verial()
Set baglanti = CreateObject("ADODB.Connection")
yol = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\kaynak_dosya.xls;Extended Properties=""Excel 8.0;HDR=yes;IMEX=1"";"
baglanti.Open yol
For a = 4 To [a5536].End(3).Row
aranan = "Select stok From [Kaynak_dosya$a1:g65536] where [Stok kodu]='" & Cells(a, "a") & "'"
Set rs = baglanti.Execute(aranan)
Cells(a, "p").CopyFromRecordset rs
Next
rs.Close
baglanti.Close
Set rs = Nothing
End Sub
 
Levet bey Ekteki gibi bir hata kodu veriyor.
 

Ekli dosyalar

  • adsız.JPG
    adsız.JPG
    14.3 KB · Görüntüleme: 12
Üstte verdiğim koda kırmızı renkli dosya adını ilave ettim. Bu şekilde düzelterek deneyin.
 
Levent bey ekteki gibi bir hata mesajı veriyor.
 

Ekli dosyalar

  • adsız.JPG
    adsız.JPG
    10.5 KB · Görüntüleme: 13
10 numaralı mesajımdaki kodu yeniledim. Ayrıca örnek dosyalarıda ekliyorum.
 

Ekli dosyalar

Günaydın Levent bey, evet kodlar şimdi çalışmaktadır.

Yanlız birkaç şey sormak istiyorum.

1. Kodu aynı sayfada birdan fazla çalıştırdığımda, yeniden temizleyip düşeyara yapmıyor. şöyle ki (Hedef dosyadaki A sütununda bir satırı sildiğimde ve kodu yeniden çalıştırdığımda, ilk gelen değer neyse halen orada kalıyor.)

2. Aradığı satır Eğer Kaynak dosyada yoksa, "#Yok" gibi bir hata mesajı vermiyor (Düşeyarada bu mesajı vermekte)
Not: "#Yok" hata mesajını başka yerde kullandığımızdan bu bilgide önemli.

3. Kodun çalışma süresi çok uzun. bunu kısaltmak adına; iki yol denesek olurmu .tabiki orjinal olan ve benim tercihim birinci yol.

1. yol: Birinci yol Hedef dosyada A sütununda En altta hangi hücre dolu ise o satıra kadar kod çalışsa. (Bunu söylemekdeki amaç. Hedef dosyada A sütununda arada boşluklar var, tam blok değil. yani Stok kodu tüm satırlar dolu değil. arada boşluklar var.)

2. yol: İkinci yol Hedef dosyadaki maksimum satır sayısı 300 satır.
Kaynak dosyadaki maksimum satır sayısı 2000 satır. bu parametrelerle sınırlanması?

4. İlk mesajımda dediğim gibi Mesajboxda bir rapor verdirebilirmiyiz.
 
Son düzenleme:
Geri
Üst