Kapalı excel dosyasına, açık excel dosyasından veri aktarmak

Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
Herkese merhaba,

[C:\deneme.xls] çalışma kitabım açıktır ve bu kitabın [sheet1] sayfasında çeşitli hesaplamar yapmaktayım. Aynı zamanda veri biriktirme kitabı olarak da [C:\toplamlar.xls ] ' ı kullanmaktayım ve bu kitap kapalı durumdadır.

Çalışma sayfam üzerindeki [commandbutton1] tuşuna bastığımda;

C:\deneme.xls > sheet1 > [g3]' deki verinin; kapalı durumdaki [C:\toplamlar.xls] çalışma kitabının [sheet1] ' indeki [b5] hücresine kayıt edilmesini istiyorum.

yardımı dokunacaklara şimdiden teşekkürler...
 

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,167
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Kapalı dosyanın yani toplarlar.xls nin sayfa1 indeki (b5) hücresine, kayıt yapılmasını istediğin deneme hücresindeki g3 hücresini bağlıntılı yaparsın, kapalı olan dosyan açıldığında kendini güncelleyecektir. Nasıl olsa kapalı dosyandaki bilgiyi açmadan göremeyeceksin. Bu benim düşüncem tabii. Kolay gelsin
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
teşekkürler,

Ancak kapalı olan çalışma kitabım [C:Toplamlar.xls], mail yoluyla başka kişilere gidecektir.

Açık olanla arasında link kurulması halinde, mail' i alanlar, dosyayı açtıklarında hata ile karşılacaktır.

Bunun için arada link kurmadan bir çözüme ulaşmaya çalışyorum..

iyi günler..
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Kapalı Excel kitabındaki herhangibir çalışma sayfasında herhangibir hücreye veri yazmak zor değil ancak, yazılan bu verinin silinmesi veya tekrar aynı hücreye veri yazılması ADO-DAO metotları ile mümkün değildir. Ama, kapalı kitapta alt alta hücrelere veri yazılabilir.

Bu kısa açıklamadan sonra, eğer uygulamaya karar verirseniz şöyle yapın ...

1) Kapalı kitap, örneğin şu şekilde olsun:

D:\TestFolder\Toplamlar-R.xls

2) Bu kapalı kitapta, Sheet1 sayfasında B4 hücresine aşağıdaki metni girin. Bu metin alan adı olarak kodlarda kullanılacaktır.

Miktar

3) Şimdi yukarıdaki kitabı kapatıp, açık olan diğer çalışma kitabının VBE kısmına geçin. Sheet1 sayfasına eklediğiniz CommandButon1 nesnesi için Sheet1 sayfa modülüne yerleştireceğiniz kodlar şunlardır:

Kod:
Private Sub CommandButton1_Click()
    Dim daoDBEngine As Object, DB As Object
    Dim MyRng As Range
    Dim DbPath As String
    DbPath = "[B][COLOR=blue]D:\TestFolder\Toplamlar-R.xls[/COLOR][/B]"
    On Error Resume Next
        Set daoDBEngine = CreateObject("DAO.DBEngine")
        Set daoDBEngine = CreateObject("DAO.DBEngine.36")
    On Error GoTo 0
    Set MyRng = Range("[B][COLOR=darkorange]G3[/COLOR][/B]")
    Set DB = daoDBEngine.OpenDatabase(DbPath, 0, 0, "Excel 8.0")
    strSQL = "insert into [[B][COLOR=teal]Sheet1[/COLOR][/B]$] ([B][COLOR=red]Miktar[/COLOR][/B]) values ('" & MyRng & "')"
    DB.Execute strSQL
End Sub
4) Şimdi sözkonusu çalışma sayfasında G3 hücresine veri girip, sayfadaki CommandButton1 nesnesine tıkladığınızda, bu veri kapalı Excel kitabında ilgili hücreye yazılacaktır.

Not:

G3 hücresindeki veriyi değiştirip, veya fark etmez .. değiştirmeden CommandButton1 nesnesine tekrar tıklayın, sonra bir kere daha tıklayın ... Kapalı Excel kitabını açıp baktığınızda, bu mesajın başında açıklamaya çalıştığım şeyi göreceksiniz.
 
Son düzenleme:

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,167
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Dosyalarınızı inceleyiniz

İstediğiniz şekilde yapmaya çalıştım, bak bakalım olmuş mu?
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
Çok teşekkürler Haluk,

Çalışmaların bana oldukça yardımcı oldu, ufkumu genişletti.

Aslında "silme" problemine ekteki gibi bir çözüm buldum.

Benim yapmak istediğim çalışmaya bu "silme" işlemi tam olarak uymakta olduğu için, kullanmakta hiç bir sakınca görmedim. Benzer uygulamalar gerçekleştirecek arkadaşlarımız da belki faydalanır...

Bu çalışmada hem UserForm üzerindeki [Label] ve [TextBox] lardaki veriler, hem de açık olan çalışma kitabının hücrelerinde bulunan veriler kapalı kitabımıza aktarılmaktadır.

Ekteki (kapalı olması gereken) veri depolama dosyamız [Rapor.xls]' dir ve
[C:\] nin altında kayıtlı olmalıdır. [C:\Rapor.xls]

Ekteki uygulama dosyamız ise [Book1.xls] olup, PC nizin herhangi bir yerinde durabilir.

iyi çalışmalar..
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
kod:............
Const DbPath As String = "C:\Rapor.xls"
Const ShName As String = "[ag$]"

Private Sub CommandButton1_Click()


Dim q As New ADODB.Connection
q.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & DbPath _
& ";Extended Properties=Excel 8.0;"
q.Execute "update " & ShName & " set q ='" & "" & "'"
q.Execute "update " & ShName & " set b ='" & "" & "'"
For i = 1 To 6
q.Execute "Insert into [ag$b" & i & ":b" & i & "] values ('" & (Controls("Label" & i).Caption) & " ')"
Next i
For i = 7 To 8
q.Execute "Insert into [ag$b" & i & ":b" & i & "] values ('" & (Controls("Textbox" & i - 6).Value) & " ')"
Next i

Dim daoDBEngine As Object, DB As Object
Dim MyRng As Range
On Error Resume Next
Set daoDBEngine = CreateObject("DAO.DBEngine")
Set daoDBEngine = CreateObject("DAO.DBEngine.36")
On Error GoTo 0
For iz = 1 To 8
Set MyRng = Range("G" & iz)
Set DB = daoDBEngine.OpenDatabase(DbPath, 0, 0, "Excel 8.0")
strSQL = "insert into [ag$e" & iz & ":e" & iz & "] values ('" & MyRng & " ')"
DB.Execute strSQL
Next iz

q.Close
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sanki, söylediklerim hala geçerli gibi geliyor bana ... :mrgreen:
 
Üst