- Katılım
- 1 Ağustos 2019
- Mesajlar
- 839
- Excel Vers. ve Dili
- Türkçe excel 2016
İngilizce excel 2016
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Ömer bey çalışmada var ama kendime uyarlamayadim hata alıyorumYa 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.
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.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.
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 tekrardanHaklı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
Textboxlar örnek dosyada 4 adet gerçek dosyamda 13 adet bu yavaşlamaya neden olabilir mi acabaBen 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.
Teşekkürler Haluk beyWeb'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....)
.
Haluk bey süper olmuş çok teşekkürlerYine 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.
.