• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Veri almada Değişken tanımlama

  • Konbuyu başlatan Konbuyu başlatan mrs303
  • Başlangıç tarihi Başlangıç tarihi
Katılım
16 Şubat 2006
Mesajlar
201
Excel Vers. ve Dili
Excel 2007
Dim a, As Integer

a = 1552

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://..................../main.php?page=..........&tableid=a &language=tr" _
, Destination:=Range("$A$1"))
.Name = "main.php?page=...............&tableid=a &language=tr
End With


..........&tableid=a yerinde a değerini 1552 olarak normal yazdığımda sorun yok veriyi alabiliyorum fakat değişken tanımlayıp a şeklinde yazdığımda hata veriyor. Hatayı nerede yapıyorum? Teşekkürler....
 
kodun tamamını forum kurallarına uygun bir şekilde (gelişmiş modda # tııklayarak tag'lar arasına) ekleyin bakalım.
 
kodun tamamını forum kurallarına uygun bir şekilde (gelişmiş modda # tııklayarak tag'lar arasına) ekleyin bakalım.

URL nin tamamını gizlilik gerekçesi ile yazamıyorum. Kod çalışıyor a yerine 1552 sayısını yazınca, bunu değişken yazarak nasıl yaparız yani 1552 yerine a yazınca olmuyor.
 
kodlarınız dağınık ve karışık. değişken nasıl eklenecek bulmak amacıyla istemiştim.

ben gizli olmayan bir site üzerinden bir örnek vereyim, siz gizli siteye uyarlayın.
sadece ilgili 2-3 satırını koyuyorum.

basit bir kayıt makrosu ile gelen kod:

Kod:
With ActiveSheet.QueryTables.Add(Connection:= _
    [COLOR="Red"]"URL;http://www.ici.org/research/stats/mmf/mm_03_31_11"[/COLOR], Destination:=[COLOR="red"]Range( _
    "$A$1")[/COLOR])
    .Name = [COLOR="red"]"mm_03_31_11"[/COLOR]


değişken atayarak benim modifiye ettiğim kod:
Kod:
Dim sUrl As String, sName As String
Dim dRng As Range

Set dRng = Range("A1")
sUrl = "URL;http://www.ici.org/research/stats/mmf/"
sName = "mm_03_31_11"
    
With ActiveSheet.QueryTables.Add(Connection:= _
    [COLOR="Red"]sUrl & sName[/COLOR], Destination:=[COLOR="red"]dRng[/COLOR])
    .Name = [COLOR="red"]sName[/COLOR]
 
Son düzenleme:
Sanırım ben iyi anlatamadım. Verdiğiniz örneğe uyarlayamadım.

Kod da kırmızı rakamı değişken olarak tanımlayıp, ben girmek istiyorum.
Sürekli değişiyor bu sayı. Bir hücrede de olabilir. Örneğin Bu sayı "M1"'hücresinde olursa 1552 yerine M1 yazdığımda çalışabilmeli veya msgbox ile de olabilir.

Kod:
Sub Makro1()
 
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://.........com/statistics/......../main.php?page=guth_statistics_formtable&tableid=[COLOR=red][B]1552[/B][/COLOR]&language=tr" _
        , Destination:=Range("$A$1"))
        .Name = "main.php?page=guth_statistics_formtable&tableid=[COLOR=red][B]1552[/B][/COLOR]&language=tr"
 
        .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 = "5"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
 
End Sub

Buradaki örnekleri inceleyin.

http://www.excel.web.tr/f125/llere-gore-hava-tahmini-t72047.html



.
 
.

Aşağıdaki gibi deneyin.

Değeri A1 hücresinden aldıracaksanız, (Bunu kendiniz belirleyebilirsiniz)

Kod:
Sub Makro1()

 Const AdresUrl As String = "URL;http://.........com/statistics/......../main.php?page=guth_statistics_formtable&tableid="
    
    With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;" & AdresUrl &[COLOR="Red"] [A1][/COLOR] & Language = tr, Destination:=Range("$A$3"))
    
    
        .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 = "5"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
 
End Sub


.
 
.............
 
Son düzenleme:
Sn Yurttaş Bey,

Hata veriyor A1' e değeri yazım fakat veri almadı Run-time error '5': şeklinde bir hata verdi.

ilk 1552 kırmızı olan yere [A1] şeklinde denedim yine olmadı.

Kırmızılı alanlara sayıyı direkt yazdığımda bir sorun yok, veri alabiliyorum.Bu şekilde hücre referansları ile hata veriyor.
 
.

Deneme şansım olmadığı için bir şey diyemiyorum.

Bir de aşağıdaki kodu deneyin.

Kod:
Sub Makro1()

 Const AdresUrl1 As String = "URL;http://.........com/statistics/......../main.php?page=guth_statistics_formtable&tableid="
    
    With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;" & AdresUrl1 & [A1] & Language = tr, Destination:=Range("$A$3"))
    
Const AdresUrl2 As String = "main.php?page=guth_statistics_formtable&tableid="

        .Name = " AdresUrl2 & [A1]&language=tr"

        .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 = "5"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub


.
 
Maalesef bu da olmadı Yurttaş bey, sizleri uğraştırdım. URL yi tam veremediğimden deneme şansınız olmuyor farkındayım. Rakamları manuel yazarak çözüm yapacağım artık. Emekleriniz için teşekkür ederim.
 
Maalesef bu da olmadı Yurttaş bey, sizleri uğraştırdım. URL yi tam veremediğimden deneme şansınız olmuyor farkındayım. Rakamları manuel yazarak çözüm yapacağım artık. Emekleriniz için teşekkür ederim.

.

Buna benzer ve gizli olmayan bir site URL'si verin bakalım.

.
 
Şöyle bir benzer örnek buldum. Burada da sayılar var değişken.
3680
3504
gibi sayılar yazınca değişik sonuçlar geliyor. Bu tip birşey istiyorum

A1=3680 olduğunu varsayarsak kırmızı sayılar yerine [A1] nasıl yazabiliriz.

Kod:
Sub Makro1()
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.canliskor.com/table/?tournament=[COLOR=red]3680[/COLOR]&sport=basketball", _
        Destination:=Range("$A$3"))
        .Name = "?tournament=[COLOR=red]3680[/COLOR]&sport=basketball"
        .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
 
End Sub
 
.

Son verdiğiniz URL de benim filtreden geçmiyor.

Akşam evde deneyeceğim

Biraz sabredeceksiniz.

.
 
nasıl oldu ise bizim filtreler devre dışı kaldı galiba, siteye girebildim.
A1 hücresinde 3680 yazılması kaydı ile...

Kod:
Dim sUrl1 As String, sUrl2 As String, sName As String
Dim dRng As Range
Dim deg


Set dRng = Range("A3")
sUrl1 = "URL;http://www.canliskor.com/table/?tournament="
sUrl2 = "&sport=basketball"
sName = "?tournament="
deg = Range("A1")

    With ActiveSheet.QueryTables.Add(Connection:= _
        sUrl1 & deg & sUrl2, Destination:=dRng)
        .Name = sName & deg & sUrl2
 
Son düzenleme:
Sn, Mancubus

Bu şekilde çalıştı, istediğim gibi oldu, teşekkür ederim. Ellerinize sağlık.

Bugün Sn, Yurttaş ve sizi çok uğraştırdım hakkınızı helal edin.Tekrar ikinizede teşekkür eder,

Saygılarımı sunarım...
 
rica ederim.
yurttaş hocama ilave iş çkmasın dedim.
 
Geri
Üst