• DİKKAT

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

  • Merhaba,
    Forumumuz yeni bir sunucuya taşındı. Maalesef son 24 saatlik kayıtlar taşınamadı. Bu nedenle bir kaç mesajı göremeyebilirsiniz.

    Bilgilerinize

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