Excel Vba Forum - Excelce.Net
SORU ve CEVAPLAR (Yazılabilir) => Microsoft Excel, Vba, Makro, Formül vb. Soruları => Çözülen Excel, Vba, Makro, Formül vb. Soruları => Konuyu başlatan: kky11 - 03 Mayıs 2011, 11:08:48
-
Web'ten veri alma ayarlarından otomatik olarak belirli zaman aralıklarında veri alınması istenildiğinde alınan veriler excel sayfasında hangi hücre seçili ise hep o hücre üzerine alınıyor.
Benim istediğim ise;
Diyelim ki değişken bir web sayfasından 60 dakikada bir veri alma komutu verildiğinde alınan verilerin daha önce alınmış olan verilerin üzerine değil de, mesela alınan verilerin bittiği satırın altından itibaren kaydetmesi.Yani bir önceki aldığı veriyi bozmadan yada saklayarak yeni veriyi de aynı sayfada kaydetmesi.
Konu hakkında yardımcı olabilirseniz sevinirim.
şimdiden teşekkürler..
-
Arkadaşlar yukarıya yazdığım sorunumun biraz acil olarak çözmem gerekiyor.Ancak ne denesem de başaramadım.Konu hakkında bilgisi olan arkadaşlar lütfen yardımcı olsun.
kolay gelsin.
-
İbrahim bey, şu şekildeki web'ten veri alma kodları ile dediğiniz şekilde sonuç alabilirsiniz.
Sub ExcelceVeriAl()
konum = ActiveSheet.Range("A65536").End(3).Row + 2
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.excelce.net/forum/index.php", Destination:=Range("A" & konum))
.Name = "index"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertEntireRows
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 60
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "3"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Application.OnTime Now + TimeValue("01:00:00"), "ExcelceVeriAl"
End Sub
-
İbrahim bey, şu şekildeki web'ten veri alma kodları ile dediğiniz şekilde sonuç alabilirsiniz.
Sub ExcelceVeriAl()
konum = ActiveSheet.Range("A65536").End(3).Row + 2
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.excelce.net/forum/index.php", Destination:=Range("A" & konum))
.Name = "index"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertEntireRows
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 60
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "3"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Application.OnTime Now + TimeValue("01:00:00"), "ExcelceVeriAl"
End Sub
Bülent bey,
Çok teşekkürler.. İlgilenip makroları yollamışsınız.Ancak ben makroları kullanmayı formül kullanmak kadar kolay olacağını sanmıştım.Malesef öyle değilmiş.
Eğer müsait olabilir iseniz sizden ricam ekte gönderdiğim dosyaya bana yolladığınız makroları yerleştirip tekrar bana göndermeniz.Dosyada biraz açıklama yapmak gereği duydum.Dosyaya 4 ayrı sayfa bulunmakta ve 4 ayrı adresten veri alınacaktır.Her sayfada veri alınacak adresleri belirttim.Sayfa0’ da resim ile de anlatmaya çalıştım.Umarım işinize yarar.
Tüm emekleriniz için çok çok teşekkür ederim.
Kolay gelsin...
[Forum yazılım güncelleme esnasında sorun oluştuğundan eklendi silinmiştir.]
-
İbrahim bey, her link kendi sayfasında alt alta mı devam edecek, yoksa linklerden sırayla veri alınıp tek bir sayfada alt alta mı devam edecek?
Bir de sayfa satır sayısı dolduğunda ne olacak?
-
İbrahim bey, her link kendi sayfasında alt alta mı devam edecek, yoksa linklerden sırayla veri alınıp tek bir sayfada alt alta mı devam edecek?
Bir de sayfa satır sayısı dolduğunda ne olacak?
Bülent bey,tekrar teşekkürler...
Her link kendi sayfasında devam edecek ve ben mesela akşam saat 18:00'de makroyu çalıştırırsam o saatte başlayarak makroyu durdur diyene kadar devam edecek(Bunu bir buton ile de yapabiliriz). Sayfa satır sayısı konusunda ise sanırım her saat başı veri alacağından,1 gün boyunca her sayfada en fazla 1000-1500 satır veri birikmesi olacaktır.Ben başka sayfaya koplayıp işlem yaptıktan sonra veri'yi aldığım sayfadaki satırları silersem sorun olur mu? Onu bilemiyorum.Böyle bir sorun oluşmayacak ise benim için sorun olmaz.
kolay gelsin
-
Bülent bey,
Şuan' a kadar zahmet verdiğimi biliyorum ancak ben hala ilk gönderdiğiniz makroları kullanamıyorum.Size en son gönderim de anlattığım herhangibir şey olmuyorsa lütfen olduğu kadarını bana yollayın.Yani aldığı verileri alt alta sıralasa dahi bana yetecek.
Bilgilerinize,
Saygılarla
-
İbrahim bey, dosyanızın düzenlenmiş hali ektedir.
Sağlıklı çalışması için internete bağlı olmanız ve dosyanın da açık olması gereklidir.
[Forum yazılım güncelleme esnasında sorun oluştuğundan eklendi silinmiştir.]
-
Bülent bey,
Çok çok teşekkürler sanırım dosya tamamen uyumlu çalışacak.ancak bir iki sorum olacak.emin olmak babın da:
diyelim ki: 1-Gelen verilerle işlerim bitti ,eski verileri sildiğimde bu makrolar için sorun olurmu?
2-veriler ne kadar zamanda bir alınıyor(makroya baktığımda reflesh periyot:0 olarak yazıyor)
Benim şuanlık kafama takılanlar bunlar bülent bey.Emekleriniz için ne kadar teşekkür etsem azdır.Umarım bunları ödeyebileceğim bir fırsatım olur.kolay gelsin
-
1-Hepsini sildiğinizde hata verirse A1 hücresine herhangi bir şey yazın, boş bırakmayın.
2-Kendi "refresh" yapmayacak, OnTime komutu ile makro 1 saat aralıklarla çalışıp yeni verileri alacak ve alta yazacak.
Benim şuanlık kafama takılanlar bunlar bülent bey.Emekleriniz için ne kadar teşekkür etsem azdır.Umarım bunları ödeyebileceğim bir fırsatım olur.kolay gelsin
Türkçemize özen göstermeniz yeterlidir benim için.
İyi çalışmalar.
-
Bülent bey,
Şuan programı sorunsuz çalıştırabiliyorum.Çok teşekkür ederim.Sağlıcakla kalın..
Saygılarımla.
Kolay gelsin..
-
Bülent bey,
Programı kullanırken bir ihtiyaç oluştu.Eğer veri alma zamanımızı(Tarih-saat bilgisi) alınan her verinin satır başına yerleştirebilirsek çok daha kullanışlı olacak.Mesela 13.02.2011 tarihin de saat başı veri alması için programı ayarladık ve dosyayı açık bıraktık.Saat:01:00 de aldığı verilerin başına ya da sonuna 13.02.2011 01:00 bilgisini yerleştirebilir miyiz?
Not:Hazırladığınız dosya ekte'dir.
kolay gelsin...
[Forum yazılım güncelleme esnasında sorun oluştuğundan eklendi silinmiştir.]
-
Kodu şu şekilde değiştirin;
Sub ExcelceVeriAl()
Dim AktifSayfa As Worksheet
For i = 0 To 3
sayfam = ("Sayfa" & i)
Set AktifSayfa = ThisWorkbook.Worksheets(sayfam)
Sheets(sayfam).Select
konum = AktifSayfa.Range("A65536").End(3).Row + 2
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.bahisanaliz.com/banaliz_iddaavalue.php?git=od2&bh=" & i, Destination:=AktifSayfa.Range("A" & konum))
.Name = "banaliz_iddaavalue.php?git=od2&bh=" & i
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "2"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
AktifSayfa.Range("B" & konum).Value = "Veri alış tarihi ve saati: " & FormatDateTime(VBA.Now, vbGeneralDate)
Next i
Application.OnTime Now + TimeValue("01:00:00"), "ExcelceVeriAl"
End Sub
AktifSayfa.Range("B" & konum).Value = "Veri alış tarihi ve saati: " & FormatDateTime(VBA.Now, vbGeneralDate)
Yukarıdaki komut satırını eklemiş olduk. Siz istediğiniz gibi düzenleyebilirsiniz.
-
Bülent bey,
Gayet iyi çalışıyor çok teşekkürler.
Kolay gelsin
-
Bülent bey,
Uzun zamandır yazdığınız makroları kullanıyorum.Ancak web sayfasında yapılan bir değişiklik nedeniyle makrolardan sonuç alamamaktayım.Değişiklik şöyle:
daha önce 3 veya 4 sayfadan alınan veriler şuan tek sayfada toplanıyor ve sanırım link değişimi nedeniyle verileri alamıyorum.Makrolarda linki değiştirsem de sonuç alamadım.Göz atarsanız sevinirim.Daha önce yazdığınız makro şöyleydi:
Sub ExcelceVeriAl()
Dim AktifSayfa As Worksheet
For i = 0 To 3
sayfam = ("Sayfa" & i)
Set AktifSayfa = ThisWorkbook.Worksheets(sayfam)
Sheets(sayfam).Select
konum = AktifSayfa.Range("A65536").End(3).Row + 2
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.bahisanaliz.com/banaliz_iddaavalue.php?git=od2&bh=" & i, Destination:=AktifSayfa.Range("A" & konum))
.Name = "banaliz_iddaavalue.php?git=od2&bh=" & i
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "2"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
AktifSayfa.Range("B" & konum).Value = "Veri alış tarihi ve saati: " & FormatDateTime(VBA.Now, vbGeneralDate)
Next i
Application.OnTime Now + TimeValue("00:05:00"), "ExcelceVeriAl"
End Sub
Linkin değişmiş hali şudur:
http://www.bahisanaliz.com/banaliz_iddaavalue.php?git=od2
Kolay gelsin.
-
Merhaba,
"URL;http://www.bahisanaliz.com/banaliz_iddaavalue.php?git=od2&bh=" & i, Destination:=AktifSayfa.Range("A" & konum))
.Name = "banaliz_iddaavalue.php?git=od2&bh=" & i
Emin olmamakla beraber ;
"URL;http://www.bahisanaliz.com/banaliz_iddaavalue.php?git=od2=" & i, Destination:=AktifSayfa.Range("A" & konum))
.Name = "banaliz_iddaavalue.php?git=od2=" & i
şeklinde dener misiniz ?
-
Yukarıda yazdığım sorun konusunda bana yardım edebilecek bir arkadaş var ise , lütfen yardım etsin.Şimdiden teşekkürler.
-
Yukarıda yazdığım sorun konusunda bana yardımcı olabilecek bir arkadaş var ise lütfen yardımcı olsun.teşekkürler
-
iyi aksamlar.
excelden webten veri almada içeri aktr deyince veri gelmiyor.neden olabilir acaba.
yardımlarınıza tesekkür ederim
-
Mevcut urlde değişiklik yapıyorum veri çekmek istediğim sitenin adını https://coinmarketcap.com/ yazıyorum. Ancak run time 1004 hatası alıyorum. Burada yapmam gereken diğer değişiklikler ile ilgili yardımcı olabilir misiniz_?