[]

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.

 
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
  • 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
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.