Soru Kapalı dosyaya veri kaydetme

Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Değerli uzman arkadaşlar paylaşmış olduğum çalışmada Açık çalışma kitabindan kapalı çalışma kitabına veri kaydetmek istiyorum. Bu konuda yardimci olursanız sevinirim. Saygilar
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Ya kapalı dosyayı kodlarla açıp, sorgulayıp, kaydedip kapatmanız gerek ki ben sevmiyorum.
Ya da ADO nesnesini kullanarak kapalı dosyaya kayıt yapabilirsiniz. Hem de oldukça hızlı.
Forumda ADO, RecordSet, Execute gibi kelimelerle ARAMA menüsünden bolca örnek uygulama bulabilirsiniz.
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Ya kapalı dosyayı kodlarla açıp, sorgulayıp, kaydedip kapatmanız gerek ki ben sevmiyorum.
Ya da ADO nesnesini kullanarak kapalı dosyaya kayıt yapabilirsiniz. Hem de oldukça hızlı.
Forumda ADO, RecordSet, Execute gibi kelimelerle ARAMA menüsünden bolca örnek uygulama bulabilirsiniz.
Ömer bey çalışmada var ama kendime uyarlamayadim hata alıyorum
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Ömer bey dönüş için teşekkürler inceleyip dönüş yapacağım
 

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
@ÖmerFaruk; Konu 15 yıl öncesine ait ama beğenmenize sevindim.

.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Tarihe bakmadım hatta konunun içeriğine ve mesaj sayısına baktım.
Soru sahibi arkadaş, ARAMA menüsünde bolca örnek bulabilir zaten. Bir anlamda 15 yıldan beri bu konuda forumda sorular sorulduğu da aşikar ollmuş oldu.
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Tarihe bakmadım hatta konunun içeriğine ve mesaj sayısına baktım.
Soru sahibi arkadaş, ARAMA menüsünde bolca örnek bulabilir zaten. Bir anlamda 15 yıldan beri bu konuda forumda sorular sorulduğu da aşikar ollmuş oldu.
Sayın Ömer bu tür sorular soruldugunu bende biliyorum ancak örnek uygulamalari kendimize uyarlamakta zorluk çekiyoruz. Hak verirsiniz ki herkesin makro bilgisi aynı degil. Bu yüzden buradan yardım talebinde bulunuyoruz.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Haklısınız.
Butona atadığınız kodu silin.
Aşağıdakileri kod sayfanıza yapıştırın.
Bu bir ADO değildir
Çalışması için şartlardan biri KAPALI isimli dosyanızın bı dosyayla aynı klasörde kaytlı olmasıdır.
Eğer farklı bir klasörde ise yolu belirtmeniz lazım.

@Korhan Ayhan beyin forumdaki bir başka soruya verdiği cevabın sizin için düzenlenmiş halidir.

C++:
Private Sub CommandButton1_Click()
Call Verileri_Aktar
End Sub

Sub Verileri_Aktar()
    Dim Yol As String, XL_App As Object, Zaman As Double
    Dim K2 As Workbook, S2 As Worksheet, Satir As Long
     
    Zaman = Timer
    Yol = ThisWorkbook.Path & "\" & "KAPALI.xlsx"
    Set XL_App = CreateObject("Excel.Application")
    XL_App.Visible = False
    Set K2 = XL_App.Workbooks.Open(Yol)
    Set S2 = K2.Sheets("ANASAYFA") ' Kapalı dosyada kayıt yapılacak sayfa
    Satir = S2.Cells(S2.Rows.Count, 1).End(3).Row + 1 'Kapalı dosyanın ilk boş satırı
   
    S2.Range("A" & Satir).Value = TextBox1.Value
    S2.Range("B" & Satir).Value = TextBox2.Value
    S2.Range("C" & Satir).Value = TextBox3.Value
    S2.Range("D" & Satir).Value = TextBox4.Value
   
    K2.Close True
  
    Set S2 = Nothing
    Set K2 = Nothing
    Set XL_App = Nothing
   
    MsgBox "Veri aktarımı tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Haklısınız.
Butona atadığınız kodu silin.
Aşağıdakileri kod sayfanıza yapıştırın.
Bu bir ADO değildir
Çalışması için şartlardan biri KAPALI isimli dosyanızın bı dosyayla aynı klasörde kaytlı olmasıdır.
Eğer farklı bir klasörde ise yolu belirtmeniz lazım.

@Korhan Ayhan beyin forumdaki bir başka soruya verdiği cevabın sizin için düzenlenmiş halidir.

C++:
Private Sub CommandButton1_Click()
Call Verileri_Aktar
End Sub

Sub Verileri_Aktar()
    Dim Yol As String, XL_App As Object, Zaman As Double
    Dim K2 As Workbook, S2 As Worksheet, Satir As Long
    
    Zaman = Timer
    Yol = ThisWorkbook.Path & "\" & "KAPALI.xlsx"
    Set XL_App = CreateObject("Excel.Application")
    XL_App.Visible = False
    Set K2 = XL_App.Workbooks.Open(Yol)
    Set S2 = K2.Sheets("ANASAYFA") ' Kapalı dosyada kayıt yapılacak sayfa
    Satir = S2.Cells(S2.Rows.Count, 1).End(3).Row + 1 'Kapalı dosyanın ilk boş satırı
  
    S2.Range("A" & Satir).Value = TextBox1.Value
    S2.Range("B" & Satir).Value = TextBox2.Value
    S2.Range("C" & Satir).Value = TextBox3.Value
    S2.Range("D" & Satir).Value = TextBox4.Value
  
    K2.Close True
 
    Set S2 = Nothing
    Set K2 = Nothing
    Set XL_App = Nothing
  
    MsgBox "Veri aktarımı tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
Teşekürler sayın Ömer örnek dosyada denedim istediğim sonucu verdi tek sıkıntı biraz yavaş çalışması oda sorun değil teşekkürler tekrardan
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Ben denemiş ve sonuç 0,6 saniyede gelmişti.
Mevcut excelllerinizi komple kapatın ve tekrar çalıştırın.
@Korhan Ayhan beyin yönteminde yavaşlık olacağını sanmam. Timer bile var çözümde.
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Ben denemiş ve sonuç 0,6 saniyede gelmişti.
Mevcut excelllerinizi komple kapatın ve tekrar çalıştırın.
@Korhan Ayhan beyin yönteminde yavaşlık olacağını sanmam. Timer bile var çözümde.
Textboxlar örnek dosyada 4 adet gerçek dosyamda 13 adet bu yavaşlamaya neden olabilir mi acaba
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sanmam, 4 textbox=0,6 saniye ise 13 textbox maximum 1,8 saniye olur. Ki 0,7 saniye bile olacağını sanmıyorum
 

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
ADO ile alternatif ektedir;

13 Adet TextBox verilerinin kapalı dosyaya kayıt süresi 0,05 saniye sürdü.

.
 

Ekli dosyalar

Son düzenleme:
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Haluk bey cevap için teşekkürler makro gayet hızlı ve istenilen sonucu veriyor. Kapalı dosyadaki hücrelerde kenarlık olduğu zaman son dolu satırı karıştırıyor. Buna nasıl bir çözüm bulabiliriz acaba
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Cevabını ben de takip ediyorum ancak, zaten kapalı tutulacak yani bir veri tabanı gibi çalışacak olan dosyada kenarlık koymayı mantıklı bulmuyorum. Sırf dosyayı şişiriyor.
 

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
Web'deki bir tabloyu Excel'e kopyalarken ya da tablonun içindeki verileri Excel'e aktarırken, nasıl ki hücrelerde görünmeyen karakterler oluşuyorsa, burda da durum aynısı gibi görünüyor. Web tablolarındaki gibi bu karakterler aslında hücrelerin tablo formatında kılavuz çizgilere sahip olmasından kaynaklanıyor. Aynı durum, PDF tablolarından veri alırken de geçerlidir...

Excel gerçek bir veri tabanı değil, ama sonradan üzerinde oynamak kolay olsun diye "çakma" veri tabanı olarak kullanıyoruz.

Sonuçta, Ö. Faruk Bey'in dediği gibi, kenarlıkları kullanmazsınız olur biter. Eğer yazıcıdan çıktı alıp da resmi bir işlemde kullanacaksınız, dosyanın kopyasını alıp, boş satırları sildikten sonra kenarlık ilave edersiniz.

Ben zaten alternatif olsun diye verdim ADO'yu..... (ben olsam, tercih ederdim ama....)

.
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Web'deki bir tabloyu Excel'e kopyalarken ya da tablonun içindeki verileri Excel'e aktarırken, nasıl ki hücrelerde görünmeyen karakterler oluşuyorsa, burda da durum aynısı gibi görünüyor. Web tablolarındaki gibi bu karakterler aslında hücrelerin tablo formatında kılavuz çizgilere sahip olmasından kaynaklanıyor. Aynı durum, PDF tablolarından veri alırken de geçerlidir...

Excel gerçek bir veri tabanı değil, ama sonradan üzerinde oynamak kolay olsun diye "çakma" veri tabanı olarak kullanıyoruz.

Sonuçta, Ö. Faruk Bey'in dediği gibi, kenarlıkları kullanmazsınız olur biter. Eğer yazıcıdan çıktı alıp da resmi bir işlemde kullanacaksınız, dosyanın kopyasını alıp, boş satırları sildikten sonra kenarlık ilave edersiniz.

Ben zaten alternatif olsun diye verdim ADO'yu..... (ben olsam, tercih ederdim ama....)

.
Teşekkürler Haluk bey
 

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
Yine ADO kullanarak bu kez, hücrelerde bordür yani kenarlık olması durumunda sorunsuzca çalışan revize dosya ekte verilmiştir.

13 adet TextBox verisi yine 0,05 saniyede kapalı dosyaya aktarılmaktadır.

.
 

Ekli dosyalar

Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Yine ADO kullanarak bu kez, hücrelerde bordür yani kenarlık olması durumunda sorunsuzca çalışan revize dosya ekte verilmiştir.

13 adet TextBox verisi yine 0,05 saniyede kapalı dosyaya aktarılmaktadır.

.
Haluk bey süper olmuş çok teşekkürler
 
Üst