Güngör_
Altın Üye
- Katılım
- 14 Mayıs 2024
- Mesajlar
- 2
- Excel Vers. ve Dili
- 2019, Türkçe
- Altın Üyelik Bitiş Tarihi
- 25-05-2025
Herkese merhaba,
Excel Makro-VBA kodlamada çok yeniyim, bi konuda yardımınıza ihtiyaçım var. Açık olan AnaDosya ya, kapalı çalışma kitabın dan veri çekme (bu kısmı halletim) ve AnaDosya dan kapalı çalışma kitabına veri kaydetmek istiyorum.
Makro içeren AnaDosya çalışma kitabında Getir ve Kayıt diye iki butonum var (şekil ekle ile yapılmış butonlar). Getir butonu ile AnaDosya ile aynı dizinde bulunan, Kişiler klasöründeki .xlsx çalışma kitaplarından ADO ile veri çekiyorum . Çektiğim veri tüm çalışma kitaplarında aynı aralıkta (Kişi-D4:J23) ve AnaDosyada da aynı aralığa (AnaSayfa-D4:J23) gelmekte. Hangi çalışma kitabından veri çekeçeğimide AnaDosya da "B1", hücresinden seçmekteyim.
Kişiler klasöründen, AnaDosyaya çektiğim veride değişklik/çıkarma veya ekleme yaptıktan sonra Kaydet butonuna bastıktan sonra ilgili aralığın komplesini (D4:J23), eski verileri silerek AnaSayfa-B1 hüçresinde seçtiğim kapalı .xlsx çalışma kitabına aktarsın istiyorum ama yapamadım. Bu konuda yardımlarınızı riva ederim.
İlgili Makro kodum ve örnek çalışmam;
_____________________________________________________________________
Sub RectangleDiagonalCornersRounded1_Click()
Dim dosya As String
yol = ThisWorkbook.Path & "\Kişiler\" & Worksheets("AnaSayfa").Range("B1") & ".xlsx"
dosya = VBA.FileSystem.Dir(yol)
If dosya = vbNullString Then
MsgBox Prompt:="Seçilen Kişi Dosyası Yok", _
Buttons:=vbCritical, _
Title:="KİŞİ YOK"
Range("D4:J23").ClearContents
Else
Dim baglanti As New ADODB.Connection
Dim rs As New ADODB.Recordset
baglanti.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
yol & ";extended properties=""Excel 12.0;hdr=no"""
sorgu = "select * from [Kişi$D4:J23]"
rs.Open sorgu, baglanti, adOpenKeyset, adLockPessimistic
With Worksheets("AnaSayfa")
.Range("D4").CopyFromRecordset rs
End With
End If
End Sub
_____________________________________________________________________
Excel Makro-VBA kodlamada çok yeniyim, bi konuda yardımınıza ihtiyaçım var. Açık olan AnaDosya ya, kapalı çalışma kitabın dan veri çekme (bu kısmı halletim) ve AnaDosya dan kapalı çalışma kitabına veri kaydetmek istiyorum.
Makro içeren AnaDosya çalışma kitabında Getir ve Kayıt diye iki butonum var (şekil ekle ile yapılmış butonlar). Getir butonu ile AnaDosya ile aynı dizinde bulunan, Kişiler klasöründeki .xlsx çalışma kitaplarından ADO ile veri çekiyorum . Çektiğim veri tüm çalışma kitaplarında aynı aralıkta (Kişi-D4:J23) ve AnaDosyada da aynı aralığa (AnaSayfa-D4:J23) gelmekte. Hangi çalışma kitabından veri çekeçeğimide AnaDosya da "B1", hücresinden seçmekteyim.
Kişiler klasöründen, AnaDosyaya çektiğim veride değişklik/çıkarma veya ekleme yaptıktan sonra Kaydet butonuna bastıktan sonra ilgili aralığın komplesini (D4:J23), eski verileri silerek AnaSayfa-B1 hüçresinde seçtiğim kapalı .xlsx çalışma kitabına aktarsın istiyorum ama yapamadım. Bu konuda yardımlarınızı riva ederim.
İlgili Makro kodum ve örnek çalışmam;
_____________________________________________________________________
Sub RectangleDiagonalCornersRounded1_Click()
Dim dosya As String
yol = ThisWorkbook.Path & "\Kişiler\" & Worksheets("AnaSayfa").Range("B1") & ".xlsx"
dosya = VBA.FileSystem.Dir(yol)
If dosya = vbNullString Then
MsgBox Prompt:="Seçilen Kişi Dosyası Yok", _
Buttons:=vbCritical, _
Title:="KİŞİ YOK"
Range("D4:J23").ClearContents
Else
Dim baglanti As New ADODB.Connection
Dim rs As New ADODB.Recordset
baglanti.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
yol & ";extended properties=""Excel 12.0;hdr=no"""
sorgu = "select * from [Kişi$D4:J23]"
rs.Open sorgu, baglanti, adOpenKeyset, adLockPessimistic
With Worksheets("AnaSayfa")
.Range("D4").CopyFromRecordset rs
End With
End If
End Sub
_____________________________________________________________________
Ekli dosyalar
-
41.3 KB Görüntüleme: 5