Belli Range aralığına kapalı bir dosyadan veri çekmek.

Katılım
15 Mayıs 2007
Mesajlar
22
Excel Vers. ve Dili
Excel 2000 V 9.0
Merhaba Arkadaşlar,

Ekli GOR.xls dosyasının ANA sayfasında ileri geri tuşları ile günleri değiştiriyoruz.Günlere bağlı olarak ise Kaydet tuşu ile (D6,K17) aralığındaki veriler "VAlan" sayfasına kayıt ediliyor.İleri-geri yaparak kayıt edilmiş verileri tekrar görebiliyoruz.

Sorunum şu;

Kapalı bir dosyadan belli bir range aralığını çekebilirmiyiz ?
Örnek ;

Worksheets("ANA").Range("D6:K17").Value = _
Worksheets("VAlan").Range("B" & gun & ":I" & gun1 & "").Value

kapalı bır dosya için nasıl uyarlayabiliriz ?
 
Katılım
15 Mayıs 2007
Mesajlar
22
Excel Vers. ve Dili
Excel 2000 V 9.0
Teşekkürler,

Levent bey in kodunu ;

Set rs = baglanti.Execute("[Sayfa1$a1:e65536]")
[a1].CopyFromRecordset rs


Set rs = baglanti.Execute("[VAlan$b13:I25]")
[D6:K17].CopyFromRecordset rs

ile değiştirerek çözdüm.

Bunun tersi yani kapalı dosyaya kayıt işini nasıl yapabiliriz ? :mrgreen:
 
Katılım
15 Mayıs 2007
Mesajlar
22
Excel Vers. ve Dili
Excel 2000 V 9.0
ilginiz için teşekkürler.

kayıt işini çözemedim.:roll:

Tamam , bir tek textboxtan veriyi kayıt edebiliyorsunuz ama benim derdim belli bir hücre aralığını kayıt etmek.

for next döngüsü çok yavaşlatıyor.

Range("D7:K17") daki bilgileri Veri.xls de Valan sayfasının B2:I13 hücrelerine kayıt eden kod yazabilirmisiniz.:)
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki kodları deneyiniz.

Kod:
Sub Kaydet01()
Set s1 = Sheets("ANA")
Application.ScreenUpdating = False
dosya = ThisWorkbook.Path & "/" & "Veri.xls"
sayfa = "VAlan"
'************************************
    Range("D6:K17").Select
    Selection.Copy
Set xlBook = Workbooks.Open(dosya)
Set Sh = xlBook.Sheets(sayfa)
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B3").Select
    xlBook.Save
    xlBook.Close
Set xlBook = Nothing
Set xlApp = Nothing
    Application.CutCopyMode = False
    Range("D6").Select
'************************************
MsgBox "Tüm Bilgiler  Aktarıldı."
Application.ScreenUpdating = False
Set s1 = Nothing
'www.excel.web.tr/ripek
End Sub
Not:Her 2 dosyanında aynı klasörde bulunması gerekmektedir.
 
Katılım
15 Mayıs 2007
Mesajlar
22
Excel Vers. ve Dili
Excel 2000 V 9.0
Oldu ,

Sizin yazmış olduğunuz kodu incelerken kapalı dosyayı açıp tekrar kapatma yöntemi ile yaptığınızı fark ettim.

Mevcut ekranı değiştirmeden ( anlık bile olsa ) bi türlü gerçekleştirmiyordum.

Kod:
Application.ScreenUpdating = False
bu işi görüyormuş.:hihoho:

Bunun üzerine bende ;

Kod:
Application.ScreenUpdating = False
Workbooks.Open ("D:\dene\Veri.xls")
Workbooks("Veri.xls").Worksheets("VAlan").Range("B2:I13").Value = _
Workbooks("GOR.xls").Worksheets("ANA").Range("D6:K17").Value
Workbooks("Veri.XLS").Close SaveChanges:=True
ile kaydetme işini gerçekleştirdim.Vermiş olduğunuz kod zaten çalışıyor.

Çok çok teşekkürler:hey:
 
Katılım
15 Mayıs 2007
Mesajlar
22
Excel Vers. ve Dili
Excel 2000 V 9.0
Bana ne faydası oldu...

1.- Kapalı dosyayı database olarak istediğim hücreleri kullanabiliyorum.

2.- Kapalı hücrelerden verileri ADO yardımı ile çekebiliyorum.Ancak kapalı dosya açık kaldığı durumlarda ağ paylaşımlı bilgisayarlarda veri görüntülenemiyordu ( nedenini bilmiyorum ).Dolayısıyla kayıt ettikten sonra kapandığı için sorun yaşanmayacak.

3.- Kapalı dosyalardan belli bir range aralığını ExecuteExcel4makro ile ancak for next ile çekebilyorsunuz bu ise sistemi yavaşlatıyor.

:)
 
Üst