mars2
Altın Üye
- Katılım
- 2 Eylül 2004
- Mesajlar
- 570
- Excel Vers. ve Dili
-
2016 - Türkçe
2019 - Türkçe
- Altın Üyelik Bitiş Tarihi
- 26-03-2026
İyi Akşamlar;
Çalışma kitabının ayrı ayrı sayfalarında aylara (ocak şubat, mart) ait bodro bulunmaktadır.
Diğer çalılşma kitapta ise EFT listesi bulunmaktadır
Bodrunun "B" sutununda isimler, "K" sutunda ise net ödenecek tutar bulunmaktadır.
EFT listesinin bulunduğu sayfada "B" sutunun isimler, "H" sutunda ise net ödenecek tutarlar bulunmaktadır.
Aşağıdaki kodla, EFT sayfasının "B4" hücresinde yazılı aya (örneğin Mayıs) ait bilgileri Bodro çalışma kitabının ait bulunduğu sayfadan (örneğin Mayıs) isimler ve net ödenecek tuatarları almaktayım.
Ancak kodun bağlı bulunduğu butona bastığımda, "Çalışma Zamanı Hatası '-2147217887 (80040E21)" mesajı gelmekte ve "end" düğmesine bastığımda ise veriler gelmektedir.
Hata Sayfa4.Cells(i + 7, "H") = rs.Fields("f10").Value satırında vermekte olup nereden kaynaklanmakta ve nasıl düzeltebilirim.
Sub Düğme1_Tıkla()
Dim baglan, rs As Object
Dim dosyaYolu, sayfAdi As String
Dim Time1 As Double, Time2 As Double
Dim timeElapsed As String
Range("B7:B31").ClearContents
Range("B34:B42").ClearContents
Range("H7:H31").ClearContents
Range("H34:H42").ClearContents
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Time1 = Now
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
sayfAdi = Sayfa4.Range("B4")
dosyaYolu = ThisWorkbook.Path & "\bodro-2023.xls"
baglan.Open "provideR=microsoft.ace.oledb.12.0;data source=" & dosyaYolu & ";extended properties=""excel 12.0;hdr=no;IMEX=1"";"
rs.Open "select f1,f10 from [" & sayfAdi & "$B11:K500]", baglan, 1, 1
rs.MoveFirst
For i = 0 To rs.RecordCount - 1
Sayfa4.Cells(i + 7, "B") = rs.Fields("f1").Value
Sayfa4.Cells(i + 7, "H") = rs.Fields("f10").Value
rs.MoveNext
Next i
'Sayfa4.Range("N3").Rows.CopyFromRecordset
'Sayfa4.Range("N3").CopyFromRecordset rs
rs.Close
baglan.Close
Set rs = Nothing
Set baglan = Nothing
Time2 = Now
timeElapsed = Format(Time2 - Time1, "hh:mm:ss") & " Saniye"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "Aktarma İşlemi Tamamlandı" & Chr(13) & Chr(13) & " İşlem Süresi: " & timeElapsed, vbInformation, "VERİ AKTARMA"
End Sub
Çalışma kitabının ayrı ayrı sayfalarında aylara (ocak şubat, mart) ait bodro bulunmaktadır.
Diğer çalılşma kitapta ise EFT listesi bulunmaktadır
Bodrunun "B" sutununda isimler, "K" sutunda ise net ödenecek tutar bulunmaktadır.
EFT listesinin bulunduğu sayfada "B" sutunun isimler, "H" sutunda ise net ödenecek tutarlar bulunmaktadır.
Aşağıdaki kodla, EFT sayfasının "B4" hücresinde yazılı aya (örneğin Mayıs) ait bilgileri Bodro çalışma kitabının ait bulunduğu sayfadan (örneğin Mayıs) isimler ve net ödenecek tuatarları almaktayım.
Ancak kodun bağlı bulunduğu butona bastığımda, "Çalışma Zamanı Hatası '-2147217887 (80040E21)" mesajı gelmekte ve "end" düğmesine bastığımda ise veriler gelmektedir.
Hata Sayfa4.Cells(i + 7, "H") = rs.Fields("f10").Value satırında vermekte olup nereden kaynaklanmakta ve nasıl düzeltebilirim.
Sub Düğme1_Tıkla()
Dim baglan, rs As Object
Dim dosyaYolu, sayfAdi As String
Dim Time1 As Double, Time2 As Double
Dim timeElapsed As String
Range("B7:B31").ClearContents
Range("B34:B42").ClearContents
Range("H7:H31").ClearContents
Range("H34:H42").ClearContents
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Time1 = Now
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
sayfAdi = Sayfa4.Range("B4")
dosyaYolu = ThisWorkbook.Path & "\bodro-2023.xls"
baglan.Open "provideR=microsoft.ace.oledb.12.0;data source=" & dosyaYolu & ";extended properties=""excel 12.0;hdr=no;IMEX=1"";"
rs.Open "select f1,f10 from [" & sayfAdi & "$B11:K500]", baglan, 1, 1
rs.MoveFirst
For i = 0 To rs.RecordCount - 1
Sayfa4.Cells(i + 7, "B") = rs.Fields("f1").Value
Sayfa4.Cells(i + 7, "H") = rs.Fields("f10").Value
rs.MoveNext
Next i
'Sayfa4.Range("N3").Rows.CopyFromRecordset
'Sayfa4.Range("N3").CopyFromRecordset rs
rs.Close
baglan.Close
Set rs = Nothing
Set baglan = Nothing
Time2 = Now
timeElapsed = Format(Time2 - Time1, "hh:mm:ss") & " Saniye"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "Aktarma İşlemi Tamamlandı" & Chr(13) & Chr(13) & " İşlem Süresi: " & timeElapsed, vbInformation, "VERİ AKTARMA"
End Sub
Ekli dosyalar
-
32.7 KB Görüntüleme: 5