Kapalı Dosyada Update Hatası Acil!

Katılım
20 Aralık 2006
Mesajlar
68
Excel Vers. ve Dili
.
Merhaba
Kapalı dosyadan veri alma ile ilgili Levent Hocamın verdiği kodu kullandım.Benim Bilgisayrda çalıştı fakat koddaki dosya adresini , ağ üzerindeki \\10.80.97.14\muhasebe adresine ayarlamaya çalıştığımda update bekleniyor hatası verdi . Yardım rica ediyorum..



Sub verial()
For Each dosya In CreateObject("Scripting.FileSystemObject").GetFolder("C:\data").Files
Set baglanti = CreateObject("ADODB.Connection")
yol = "DRIVER={Microsoft Excel Driver (*.xls)};" & "DBQ=C:\data\" & dosya.Name
baglanti.Open yol
Set rs = baglanti.Execute("[veri$h1:I65536]")
sat = WorksheetFunction.CountA([a:a]) + 1
Cells(sat, "a").CopyFromRecordset rs
rs.Close
baglanti.Close
Next
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Öncelikle yolun doğruluğundan ve ulaşmaya çalıştığınız bilgisayarın paylaşıma açık olduğunda emin olun.
 
Katılım
20 Aralık 2006
Mesajlar
68
Excel Vers. ve Dili
.
Hocam bilgisayar paylaşımda.Dosya ismi adres çubuğunda yukarıda yazdığım gibi görünüyor.acaba paylaşımdaki dosyalar farklı bir şekilde mi yazılmalı?
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
871
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Sayın leventm birkaç başlık daha açmıştım ve yanıt alamamıştım.Forumu sürekli takip ediyorum.Bu kod işimi sanırım görecek ancak çalışma kitaplarındaki verileri alt alta değilde yan yana yani sütunlara nasıl bir değişiklikle aktarabiliriz.yani C:\tky klasörünün altındaki çalışma kitaplarının Çalışan Memnuniyeti sayfasındaki d5:18 sütunundaki verileri ana envanterdeki h5:18 sütunundan başlayarak I,J,K.....diye nasıl aktarabilirim.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Hocam bilgisayar paylaşımda.Dosya ismi adres çubuğunda yukarıda yazdığım gibi görünüyor.acaba paylaşımdaki dosyalar farklı bir şekilde mi yazılmalı?
Hayır, şöyle bir deneme yapın, excelde makro kaydet yöntemini çalıştırın ve ağ üzerinden diğer bilgisayardan bir dosya açın. Daha sonra makro kaydeti durururarak oluşan kodu inceleyin. Bu kod içinde dosyanın dolayısıyla diğer pcnin ağ üzerindeki yolunuda tespit etmiş olursunuz. Ayrıca bu makroyu çalıştırarak bu pcnin paylaşım ile ilgili bir sorunun olup olmadığınıda test edebilirsiniz.

Sayın leventm birkaç başlık daha açmıştım ve yanıt alamamıştım.Forumu sürekli takip ediyorum.Bu kod işimi sanırım görecek ancak çalışma kitaplarındaki verileri alt alta değilde yan yana yani sütunlara nasıl bir değişiklikle aktarabiliriz.yani C:\tky klasörünün altındaki çalışma kitaplarının Çalışan Memnuniyeti sayfasındaki d5:18 sütunundaki verileri ana envanterdeki h5:18 sütunundan başlayarak I,J,K.....diye nasıl aktarabilirim.
Kod:
sat = WorksheetFunction.CountA([a:a]) + 1
Cells(sat, "a").CopyFromRecordset rs
Yukarıdaki satırlarda değişken olan satır nosudur, yapmanız gereken burada sütun nosunu değişken yapmaktır. Örneğin;

Kod:
sut = WorksheetFunction.CountA([1:1]) + 1
Cells(1,sut).CopyFromRecordset rs
 
Katılım
20 Aralık 2006
Mesajlar
68
Excel Vers. ve Dili
.
dediğiniz gibi macro kaydettim ve problem çıkmadı. aşağıdaki kodu kaydetmiş


ChDir "Z:\"
Workbooks.Open Filename:= _
"\\10.80.97.14\Muhasebe\Ft.Kesilmeyen Tahakkuklar.xls"
Range("E59").Select
ActiveWindow.SmallScroll Down:=-54


ben de C: yi Z: olarak değiştirdim ama yine olmadı...
 

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
@GUERRA;

Bende bu şekilde çalıştı ...

HTML:
Sub Test()
    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.RecordSet")
    For Each dosya In CreateObject("Scripting.FileSystemObject").GetFolder("\\10.80.97.14\muhasebe").Files
        If Right(dosya.Name, 3) = "xls" Then
            cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & "\\10.80.97.14\muhasebe\" & dosya.Name & ";" & _
                    "Extended Properties=Excel 8.0"
                    rs.Open "SELECT * FROM [veri$H1:I50]", cn
                        sat = WorksheetFunction.CountA([A:A]) + 1
                        Cells(sat, "a").CopyFromRecordset rs
                    rs.Close
            cn.Close
        End If
    Next
    Set rs = Nothing
    Set cn = Nothing
End Sub
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
871
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Private Sub CommandButton1_Click()
For Each dosya In CreateObject("Scripting.FileSystemObject").GetFolder("C:\TKY").Files
Set baglanti = CreateObject("ADODB.Connection")
yol = "DRIVER={Microsoft Excel Driver (*.xls)};" & "DBQ=C:\TKY\" & dosya.Name
baglanti.Open yol
Set rs = baglanti.Execute("[Çalışan Memnuniyeti$d5:d18]")
sut = WorksheetFunction.CountA([1:1]) + 1
Cells(1, sut).CopyFromRecordset rs
rs.Close
baglanti.Close
Next

End Sub
İlginize öncelikle teşekkürler.Kodu yukarıdaki gibi değiştirdim.Ancak olmadı.sayın leventm klasörün altında yüz çalışma kitabı var.ve belirttiğim gibi sütunlara aktarmam lazım yardımcı olursanız...umarım şansımı zorlamıyorumdur.saygılar.
 

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
@hexadesimal;

Siz de şunu deneyin ...

HTML:
Sub Test2()
    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.RecordSet")
    For Each dosya In CreateObject("Scripting.FileSystemObject").GetFolder("D:\TKY").Files
        If Right(dosya.Name, 3) = "xls" Then
            cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & "D:\TKY\" & dosya.Name & ";" & _
                    "Extended Properties=Excel 8.0"
                    rs.Open "SELECT * FROM `Çalışan Memnuniyeti$D5:D18`", cn
                        LastCol = Cells(8, 255).End(xlToLeft).Column
                        If LastCol >= 8 Then
                            LastCol = LastCol + 1
                        Else
                            LastCol = 8
                        End If
                        Cells(5, LastCol).CopyFromRecordset rs
                    rs.Close
            cn.Close
        End If
    Next
    Set rs = Nothing
    Set cn = Nothing
End Sub
 
Son düzenleme:
Katılım
20 Aralık 2006
Mesajlar
68
Excel Vers. ve Dili
.
Levent hocam ,Haluk hocam
Çok teşekkür ederim çalıştı.Eyooooo!!!!
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
871
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Haluk bey ilginize teşekkürler.ancak verileri almada hata var
1.h sütunundan başlayarak verileri almıyor.
2.ve sütunlara alırken h5 ten yazmasını istiyorum ancak kod farklı çalışıyor.
özetle benim istediğim yukarıda da belirtmiştim.C nin altındaki TKy klasörünün altındaki tüm çalışma kitaplarının Çalışan Memnuniyeti sayfasındaki d5:d18 sütunundaki anket verilerini ana dosyamda h sütunundan başlayarak (H5:H18) yan yana ı,j,k,l,m...diye aktarması .umarım anlatabildim.İlgiinize tekrar Teşekkürler.
 

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
....
...
1.h sütunundan başlayarak verileri almıyor.
2.ve sütunlara alırken h5 ten yazmasını istiyorum ancak kod farklı çalışıyor.
....
...
Yukarıdaki mesajımı (Mesaj No:9) sonradan revize etmiştim. Oradan kodları kopyalayıp, tekrar deneyin. İstediğinizin oluyor olması lazım ....
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
871
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
haluk bey umarım fazla olmuyorum ama dosyalrımı ekliyorum.ben şin içinden çıkamadım.Envanter ana dosya diğer okulllardan gelen dosya ve klasörde yaklaşık 100 çalışma kitabı olacak
 
Son düzenleme:

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
*.rar dosyalarını ben açamıyorum. *.zip formatında ekleyin isterseniz ... ama, neden sonuç alamadınız bilemiyorum. Ben denemeden kod göndermem.
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
871
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Haluk bey sorun sizde değil benim dosyalarımda olabilir.Zipli olarak ekliyorum.Umarım olur.
 

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
Diğer dosyanıza bakmadım ama, ilk dosya üzerinde kodu revize ettim.

Aslında H sütununun sağ tarafında daha başka dolu hücreler olduğu için siz sonucu görememişsiniz.

Neyse, şimdi dosyadaki "Çalışma Memnuniyeti" sayfasında B25 hücresini sayaç olarak kullanarak kapalı dosyalardaki verileri istediğiniz gibi alabiliriz.

İlk başlangıçta bu B25 hücresinde 8 değeri olacak ki, veriler 8'nci sütundan sonra (H) yazılmaya başlansın.

Dosya ektedir...
 

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
Bu arada, kodlardaki D:\TKY kısmını C:\TKY olarak değiştirmeyi unutmayın ...
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
871
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Haluk bey çok teşekkürler.Şu an iiçin sorun yok.yanlız birşey daha yapmamız mümkünmü?diye düşünüyorum ve soruyorum.Veri alınacak dosyanın (ki sizde örneği var)h3 sütunundan itibaren (veri alınan çalışma kitapları okul adları ile adlandıırıldığından ) çalışma kitaplarının adlarını yazdırmak mümkün müdür?öreneğin butona tıklandığında h3 hücresine çalışma kitabının adını yazdıktan sonra d5:d18 aralığını h5:h18 e aktarmaası mümkün mü? tabiki aynı mantıkla ı,j,k,l diye diğer çalışma kitaplarının da adlarını alarak.
Hani şimdi insanoğlunun doğasında bu vardır ya .istekler bitmez.Ama gerçekten teşekkürler.sağolunuz.
 

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
Tekrar merhaba;

Dosya yapınızı inceleyince bu ilave soruyu soracağınızı da tahmin etmiştim ... :mrgreen:

Benim buradaki güvenlik uygulamaları nedeniyle, 2nci dosyayı yüklediğiniz siteye erişim imkanım yok ancak eğer dosyaların adları doğru düzgün okul adları ise;

1) Dosyadaki kodu aşağıdaki ile değiştirin:

HTML:
Private Sub CommandButton1_Click()
 Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.RecordSet")
    For Each dosya In CreateObject("Scripting.FileSystemObject").GetFolder("C:\TKY").Files
        If Right(dosya.Name, 3) = "xls" Then
            cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & "C:\TKY\" & dosya.Name & ";" & _
                    "Extended Properties=Excel 8.0"
                    rs.Open "SELECT * FROM `Çalışan Memnuniyeti$D5:D18`", cn
                        Cells(5, [B25]).CopyFromRecordset rs
                        Cells(3, [B25]) = Replace(dosya.Name, ".xls", Empty)
                        [B25] = [B25] + 1
                    rs.Close
            cn.Close
        End If
    Next
    Set rs = Nothing
    Set cn = Nothing
End Sub
2) Sayaç olarak kullandığımız B25 hücresine tekrar 8 yazın ve düğmeye tıklayın.
 
Üst