Soru macroyu aktif sayfa ismine göre çalıştırma

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
728
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Arkadaşlar kullanmış olduğum raporumda ayın günlerine göre 1......31 aralığında ve aşağıdaki formülle işlem yapıyor ancak ayda 31 gün varsa alt alta 31 adet yazmam ve 1$D3:D39 , 2$D3:D39.................31$D3:D39 olarak değiştirmem gerekiyor. Bunu ona gerek kalmadan My_Query = "Select Distinct * From [1$D3:D39] Where Not IsNull(F1)" kısmındaki [1$D3:D39] formülünü aktif sayfadan alacak şekilde nasıl yapabilirim arkadaşlar? Birde butona tıklamadan veri girildikçe otomatik yapma imkanı varmıdır?




Option Explicit

Sub Unique_2_List()

Dim My_Connection As Object, My_Recordset As Object, My_Query As String

Set My_Connection = VBA.CreateObject("AdoDb.Connection")

My_Connection.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;Hdr=No"""


My_Query = "Select Distinct * From [1$D3:D39] Where Not IsNull(F1)"

Set My_Recordset = My_Connection.Execute(My_Query)


Range("D42:D60").ClearContents
Range("D42").CopyFromRecordset My_Recordset

If My_Connection.State <> 0 Then My_Connection.Close

Set My_Recordset = Nothing
Set My_Connection = Nothing
End Sub
 

Ekli dosyalar

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,973
Excel Vers. ve Dili
Office 2013 İngilizce
Arkadaşlar kullanmış olduğum raporumda ayın günlerine göre 1......31 aralığında ve aşağıdaki formülle işlem yapıyor ancak ayda 31 gün varsa alt alta 31 adet yazmam ve 1$D3:D39 , 2$D3:D39.................31$D3:D39 olarak değiştirmem gerekiyor. Bunu ona gerek kalmadan My_Query = "Select Distinct * From [1$D3:D39] Where Not IsNull(F1)" kısmındaki [1$D3:D39] formülünü aktif sayfadan alacak şekilde nasıl yapabilirim arkadaşlar? Birde butona tıklamadan veri girildikçe otomatik yapma imkanı varmıdır?




Option Explicit

Sub Unique_2_List()

Dim My_Connection As Object, My_Recordset As Object, My_Query As String

Set My_Connection = VBA.CreateObject("AdoDb.Connection")

My_Connection.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;Hdr=No"""


My_Query = "Select Distinct * From [1$D3:D39] Where Not IsNull(F1)"

Set My_Recordset = My_Connection.Execute(My_Query)


Range("D42:D60").ClearContents
Range("D42").CopyFromRecordset My_Recordset

If My_Connection.State <> 0 Then My_Connection.Close

Set My_Recordset = Nothing
Set My_Connection = Nothing
End Sub
Bu şekilde mi bir çözüm istiyordunuz
sName = ActiveSheet.Name

My_Query = "Select Distinct * From [" & sName & "$D3:D39] Where Not IsNull(F1)"
 
Üst