[]
Excel ve web query
merkez bankasının döviz kuru arşivi şu şekilde: örneğin 12 temmuz 2011 için:
tcmb.gov.tr/kurlar/201107/12072011.html
şimdi bana gereken şu: bir hücredeki tarih için (5 ocak 2009) gerekli euro kuru 05012009.html'den gelsin, ilgili hücredeki formülde işleme girsin.
bu sayfalarda tablo ile değil, tab'lar ve break'ler ile oluturulmuş bir gösterim var. web'den veri al ile alınca excel hiç bozmadan hallediyor gerçi, ancak ben ne yapayım da değişkenlere bağlı bir web query oluşturayım ?
sıfırdan anlatmanızı beklemiyorum, gerekli bilgilere dair ipuçları, "şunu şunu bilmen, şöyle yapman lazım" dediğiniz şeyler varsa süper olur.
tcmb.gov.tr/kurlar/201107/12072011.html
şimdi bana gereken şu: bir hücredeki tarih için (5 ocak 2009) gerekli euro kuru 05012009.html'den gelsin, ilgili hücredeki formülde işleme girsin.
bu sayfalarda tablo ile değil, tab'lar ve break'ler ile oluturulmuş bir gösterim var. web'den veri al ile alınca excel hiç bozmadan hallediyor gerçi, ancak ben ne yapayım da değişkenlere bağlı bir web query oluşturayım ?
sıfırdan anlatmanızı beklemiyorum, gerekli bilgilere dair ipuçları, "şunu şunu bilmen, şöyle yapman lazım" dediğiniz şeyler varsa süper olur.
Alttaki kodu kullanabilirsin. Tarihin A1 hücresinde olacağını varsaydım.
edit : http:// kısmından sonra boşluk bıraktım, yoksa ekşi duyuru link haline getiriyor. kod içinde onu silersin.
Sub kur()
tarih = Range("A1")
kisatarih = Right(tarih, 4) & Mid(tarih, 3, 2)
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http:// www.tcmb.gov.tr/kurlar/" & kisatarih & "/" & tarih & ".html", Destination:=Range( _
"A2"))
.Name = A1
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
edit : http:// kısmından sonra boşluk bıraktım, yoksa ekşi duyuru link haline getiriyor. kod içinde onu silersin.
Sub kur()
tarih = Range("A1")
kisatarih = Right(tarih, 4) & Mid(tarih, 3, 2)
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http:// www.tcmb.gov.tr/kurlar/" & kisatarih & "/" & tarih & ".html", Destination:=Range( _
"A2"))
.Name = A1
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
- cakabo (29.05.12 18:16:36 ~ 18:23:41)
Makro ile olur derseniz su sekilde yapabilirsiniz. Once tarih sutunundaki son satir ve ilk satir buldurulur. Ardindan bu satir numaralari arasinda kalan her satir icin ilgili web adresi olusturulur ve gerekli veri ara bir sayfaya cekilip, relatif bir referansla istediginiz kur alinip ana sayfanizdaki ilgili hucreye yazilir. Bu islem gerceklestikce de o hucreyi iceren formuller guncellenir.
- dahicocuk (29.05.12 18:18:11)
1