Merhaba, gerek İnternet ortamında yaptığım araştırmalar gerekse formda yapmış olduğum araştırmalar ve denemeler neticesinde bir sonuç elde edemedim.
Sorum şu olacaktı listboxta filtrelediğim kayıtları ayrı bir
Excel kitabında (gerekli görsel düzenlemeleri yapabileceğim sabit bir
Excel dosyası olabilir) açmak istiyorum. Bunu nasıl sağlarım. Ekte örnek dosyam mevcuttur.
aşağıdaki kod işinize yarayabilir, yeni kitap açıp ilk sayfaya yapıştırır
arr = ListBox1.List
Dim wb As Workbook
Set wb = Workbooks.Add
wb.Sheets(1).Range("A2").Resize(UBound(arr, 1) + 1, UBound(arr, 2) + 1) = arr
(31/03/2022, 12:25)berduş yazdı: [ -> ]aşağıdaki kod işinize yarayabilir, yeni kitap açıp ilk sayfaya yapıştırır
arr = ListBox1.List
Dim wb As Workbook
Set wb = Workbooks.Add
wb.Sheets(1).Range("A2").Resize(UBound(arr, 1) + 1, UBound(arr, 2) + 1) = arr
çok teşekkürker üstadım istediğim olarak buydu. Gayet güzel çalışıyor.
peki ben klasör içerisine sabit bir
Excel tablosu (şablon olarak) koysam ismide atıyorum rapor olsa ve hep o şablona atsa verileri. O zaman nasıl bir düzenleme yaparız kodda.
Aşağıdaki kod örneğinde toplu rapor al butonunda
Access veri tabanından sabit
Excel dosyasına (RaporlarTablo.xlsx) verileri atıyor. ben bunu listboxta aynı şeyi yapmak istesem.
Kod:
Private Sub CommandButton6_Click()
Dim baglan As New Connection
Dim rs As New Recordset
baglan.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\master.accdb;"
rs.Open "SELECT tckn,ad,soyad, FROM personel", baglan, adOpenKeyset, adLockPessimistic
Set objxl = CreateObject("excel.application")
With objxl
.Visible = True
.Workbooks.Open "C:\Users\m.hakan.ergun\Desktop\PERSONEL B.S - Kopya\Raporlar\RaporTablo.xlsx"
.Range("A1") = "TC KİMLİK NO"
.Range("B1") = "ADI"
.Range("C1") = "SOYADI"
.ActiveSheet.Range("A2").CopyFromRecordset rs
End With
rs.Close
baglan.Close
End Sub
Workbooks.Open ( yol & "\Rapor.xlsx") benzeri bir kod ile açabilirsiniz
Sayenizde bir problemim daha çözüldü. Çok teşekkürler.
Iyi çalışmalar
Kolay gelsin