Secilen kapali dosyadan veri alma

Katılım
28 Eylül 2005
Mesajlar
176
Excel Vers. ve Dili
Microsoft Office Excel 2010 Ingilizce
Arkadaslar Merhaba,

Bu mesaji yazmadan once uzun bir sure forumda arama yaptim ve degisik sekillerde denedim fakat bir turlu beceremedim. Simdi yardimlarinizi bekliyorum..

Kapali bir dosyadan istedigim verileri alip acik olan dosyama kopyalayabiliyorum. Fakat kapali olan dosya ismi acik olan dosyamda yazmis oldugum haftaya gore olmali. Yani W200730, W200731, W200732 gibi kapali dosyalarim var. Ben acik olan dosyamda tarih girip haftayi buluyorum. Butona bastigimda ise hafta 31 ise W200731 dosyasindaki verileri almak istiyorum. Asagida macronun adres yolunun oldugu kismi gonderiyorum. Kisaca W200732 kismindaki 32 rakamini nasil degisken yapabiliriz ? Her defasinda macroya girip W200730, W200731 gibi degistirmemek icin...

Dim NewSh
Const SourceFile As String = "P:\RIDVAN\Haftalik_Uretim_Plani\W200732.XLS"
Const SourceSheet As String = "Sheet1"
Const SourceRange As String = "A1:AH300"

Yardimlariniz ve paylasimlariniz icin simdiden tesekkurler..
 
Katılım
28 Eylül 2005
Mesajlar
176
Excel Vers. ve Dili
Microsoft Office Excel 2010 Ingilizce
Arkadaslar yardimlarinizi bekliyorum...
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Const SourcePath As String = "P:\RIDVAN\Haftalik_Uretim_Plani\"
Const SourceSheet As String = "Sheet1"
Const SourceRange As String = "A1:AH300"

Sub Bağlan()
SourceFile = SourcePath & "W2007" & [a1] & ".xls"
MsgBox SourceFile
End Sub

şeklinde kullanabilirsiniz.
 
Katılım
28 Eylül 2005
Mesajlar
176
Excel Vers. ve Dili
Microsoft Office Excel 2010 Ingilizce
Sayin ripek,

Sabahtan beri bekledigim cevabin icin ne kadar tesekkur etsem azdir.. Fakat yazmis oldugunuz komutu nerede va nasil kullanacagimi beceremedim. Bir kez daha yardiminizi esirgemezseniz minnettar kalacagim..Asagida kullandigim kodlarin tamamini yaziyorum...


Dim NewSh
Const SourceFile As String = "E:\Haftalik_Uretim_Plani\W200732.XLS"
Const SourceSheet As String = "Sheet1"
Const SourceRange As String = "A1:AH300"

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Sheets("Sheet1").Range("A1:AH300").ClearContents
Call GetDataFromClosedWorkbook(SourceFile, SourceRange)
End Sub

Private Sub GetDataFromClosedWorkbook(SourceFile As String, SourceRange As String)
Dim dbConnection As Object, rs As Object
Dim dbConnectionString As String
Set dbConnection = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.recordset")

Dim TargetCell As Range, i As Integer
dbConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)};" & _
"ReadOnly=1;DBQ=" & SourceFile
On Error GoTo InvalidInput
dbConnection.Open dbConnectionString
Set rs = dbConnection.Execute("[" & SourceSheet & "$" & SourceRange & "]")
Set TargetCell = Sheets("Sheet1").Range("A1")
TargetCell.CopyFromRecordset rs
rs.Close
dbConnection.Close
Set TargetCell = Nothing
Set rs = Nothing
Set dbConnection = Nothing
On Error GoTo 0
Exit Sub
InvalidInput:
MsgBox "Aranýlan dosya bulunamadý!", vbExclamation
End Sub

Sub Baglan()
SourceFile = SourcePath & "W2007" & [D2] & ".xls"
MsgBox SourceFile
End Sub
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Kodlarınızı aşağıdaki şekilde deneyebilirmisiniz?

Dim NewSh
Const SourceFile As String = "E:\Haftalik_Uretim_Plani\"......
Const SourceSheet As String = "Sheet1"
Const SourceRange As String = "A1:AH300"

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Sheets("Sheet1").Range("A1:AH300").ClearContents
SourceFile = SourcePath & "W2007" & [D2] & ".xls"
Call GetDataFromClosedWorkbook(SourceFile, SourceRange)
End Sub

Private Sub GetDataFromClosedWorkbook(SourceFile As String, SourceRange As String)
Dim dbConnection As Object, rs As Object
Dim dbConnectionString As String
Set dbConnection = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.recordset")

Dim TargetCell As Range, i As Integer
dbConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)};" & _
"ReadOnly=1;DBQ=" & SourceFile
On Error GoTo InvalidInput
dbConnection.Open dbConnectionString
Set rs = dbConnection.Execute("[" & SourceSheet & "$" & SourceRange & "]")
Set TargetCell = Sheets("Sheet1").Range("A1")
TargetCell.CopyFromRecordset rs
rs.Close
dbConnection.Close
Set TargetCell = Nothing
Set rs = Nothing
Set dbConnection = Nothing
On Error GoTo 0
Exit Sub
InvalidInput:
MsgBox "Aranýlan dosya bulunamadý!", vbExclamation
End Sub
 
Katılım
28 Eylül 2005
Mesajlar
176
Excel Vers. ve Dili
Microsoft Office Excel 2010 Ingilizce
Sayin ripek,

Sizin yazmis oldugunuzu denedim fakat bold yazdiginiz satirda hata veriyor.

Hata Mesaji:
Assignment to constant not permitted

Tesekkur ederim.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Pardon,

Const SourceFile As String = "E:\Haftalik_Uretim_Plani\"......

satırını

Const SourcePath As String = "E:\Haftalik_Uretim_Plani\"......

olarak değiştiriniz.
 
Katılım
28 Eylül 2005
Mesajlar
176
Excel Vers. ve Dili
Microsoft Office Excel 2010 Ingilizce
Sayin ripek,

Uzgunum..

Call GetDataFromClosedWorkbook(SourceFile, SourceRange)

satirindaki, SourceFile komutunda hata veriyor..

Hata Mesaji:
ByRef argument type mismatch

Cok tesekkur ederim alakaniza..
 
Katılım
28 Eylül 2005
Mesajlar
176
Excel Vers. ve Dili
Microsoft Office Excel 2010 Ingilizce
Sayin ripek,

Const SourceFile As String = "E:\Haftalik_Uretim_Plani\W2007" & 32 & ".xls"

seklinde yaziyorum sorunsuz calisiyor.

Tesekkurler..
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Bende

Const SourceFile As String = "E:\Haftalik_Uretim_Plani\W2007" & [a1] & ".xls"

şeklinde denemiştim ama hata vermişti.Neyse bu şekilde de güzel.Çalıştığına sevindim.
 
Katılım
28 Eylül 2005
Mesajlar
176
Excel Vers. ve Dili
Microsoft Office Excel 2010 Ingilizce
Tekrar Gunaydin Sayin ripek,

Ne kadar ugrastiginizin farkindayim. Cok tesekkur ederim. Fakat sorunum cozulmedi.

Const SourceFile As String = "E:\Haftalik_Uretim_Plani\W2007" & [a1] & ".xls"
seklinde yapiyorum olmuyor.

Const SourceFile As String = "E:\Haftalik_Uretim_Plani\W2007" & 32 & ".xls"
olarak yapiyorum sorunsuz calisiyor. Buradaki 32 rakamini degisken yapmak istiyorum. Amacim su; sheet icine girmis oldugum tarih otomatik olarak haftayi buluyor ve bu rakamda haftayi gosteriyor. Ilgili haftaya ait W200730, W200731 gibi dosyalardan istedigim datalari almasini istiyorum.

Yardimlarin ve paylasimciligin icin tesekkurler..
 
Son düzenleme:
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki kodları deneyiniz.

Kod:
Dim NewSh
Const SourcePath As String = "E:\Haftalik_Uretim_Plani\"
Const SourceSheet As String = "Sheet1"
Const SourceRange As String = "A1:AH300"
Public SourceFile As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Sheets("Sheet1").Range("A1:AH300").ClearContents
SourceFile = SourcePath & "W2007" & [a1] & ".xls"
Call GetDataFromClosedWorkbook(SourceFile, SourceRange)
Cancel = True
End Sub

Private Sub GetDataFromClosedWorkbook(SourceFile As String, SourceRange As String)
Dim dbConnection As Object, rs As Object
Dim dbConnectionString As String
Set dbConnection = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.recordset")
Dim TargetCell As Range, i As Integer
dbConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)};" & _
"ReadOnly=1;DBQ=" & SourceFile
On Error GoTo InvalidInput
dbConnection.Open dbConnectionString
Set rs = dbConnection.Execute("[" & SourceSheet & "$" & SourceRange & "]")
Set TargetCell = Sheets("Sheet1").Range("A1")
TargetCell.CopyFromRecordset rs
rs.Close
dbConnection.Close
Set TargetCell = Nothing
Set rs = Nothing
Set dbConnection = Nothing
On Error GoTo 0
Exit Sub
InvalidInput:
MsgBox "Aranılan dosya bulunamadı!", vbExclamation
End Sub
 
Katılım
28 Eylül 2005
Mesajlar
176
Excel Vers. ve Dili
Microsoft Office Excel 2010 Ingilizce
Gunaydin sayin ripek,

Gonderdiginiz kodlari uyguladim ve su anda tam istedigim gibi mukemmel calisiyor.

Alakaniz, paylasimciliginiz ve sabriniz icin ne kadar tesekkur etsem azdir...
 
Üst