PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAInnertextInnertext
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2020-06-09 16:24
 
Hej. Har ett litet problem här med hämtning av data från en webbsida. Detta är den väsentliga del av koden. Problemet är att jag vill ha in 26 lag i cellerna A1:A13 (två lag i varje cell), men jag får in alla lag två gånger per cell istället så det slutar med i dubletter i A1:A26. Problemmet som ska försöka lösas är att det är samma classname med annorlunda innertext (lagens namn).
 
Dim HTMLDiv As MSHTML.IHTMLElement
Dim HTMLTable As MSHTML.IHTMLElementCollection
Dim HTMLTab As MSHTML.IHTMLElement
 
Set HTMLDiv = HTMLDoc.getElementById("gameinfowrapper")
Set HTMLTable = HTMLDoc.getElementsByClassName("teamname")
 
For Each HTMLTab In HTMLTable
With ActiveSheet
.Range("A" & i).Value = HTMLTab.innerText & " - " & HTMLTab.innerText
i = i + 1
End With
 
Next
 

 

Nytt inlägg
 2020-06-11 07:50
 

Hej hej

Nedan lösning borde funka. Skriver ut element 1 och 2, därefter 3 0 4, osv. Vill du istället slumpa ut lagen blir det lite lurigare ;)

Mvh

Christian

Dim HTMLDiv As MSHTML.IHTMLElement

Dim HTMLTable As MSHTML.IHTMLElementCollection
Dim HTMLTab As MSHTML.IHTMLElement
Dim Hometeam as string
 
Set HTMLDiv = HTMLDoc.getElementById("gameinfowrapper")
Set HTMLTable = HTMLDoc.getElementsByClassName("teamname")
 
For Each HTMLTab In HTMLTable
iF Hometeam = "" THEN 
         Hometeam = HTMLTab.innerText
Else
    With ActiveSheet
.Range("A" & i).Value = Hometeam & " - " & HTMLTab.innerText
         Hometeam = ""
         i = i + 1
    End With
End if
 
Next

 

Nytt inlägg
 2020-06-11 09:51
 

Fungerade perfekt!

Tackar så mycket!

 

Nytt inlägg
 2020-07-17 21:50
 

Hej igen!
Skulle behöva lite hjälp igen med ett liknande scenario. I koden nedan när den körs hamnar allt i kolumn A. Det kan vara upp till 100 rader. Det finns även upp till 8 st "V-Odds" som innertext. De ska inte synas vilket de heller inte gör enligt koden. Annars är det bara siffror där som indata till cellerna

Det jag skulle vilja göra är att utnyttja dessa "V-Odds" i koden. När dessa dyker upp i innertext vill jag skifta kolumn, då först ill kolumn B och då sen stanna kvar i kolumn B till nästa "V-Odds" dyker upp igen och då skifta till kolumn C. De dyker upp typ var 8-15 gång, däremmellan är det massa odds.

    For Each HTMLTable In HTMLTables
    
    If HTMLTable.innerText = "V-Odds" Then
    Cells(i + 1, 1).Value = ""
    
    Else
    Cells(i + 1, 1).Value = HTMLTable.innerText
 
    i = i + 1
    
    End If

 

Nytt inlägg
 2020-08-27 08:20
 

 Hej hej

Bättre sent än aldrig? Koden nedan förflyttar utskrift en kolumn åt höger varje gång v-odds dyker upp. Den hanterar dock inte i, Vilket innebär att du kommer få en trappa av utskrifter. Vill du hellre ha att i återställs till noll vid varje v-odds så bör du kunna åtgärda även detta innannför din if-sats för v-odds. 

For Each HTMLTable In HTMLTables
 
Dim k as long: K = 0
    
    If HTMLTable.innerText = "V-Odds" Then
K = K+ 1
    Cells(i + 1, 1+K).Value = ""
    
    Else
    Cells(i + 1, 1+K).Value = HTMLTable.innerText
 
    i = i + 1
    
    End If

Ps. Cells(i + 1, 1+K).Value = "" är en helt onödig rad, den skriver ut tomma mängden, dvs ingenting. DÄrefter skrivs tomma mängden över i else satsen med htmltable.innertext 

Nytt inlägg
 2020-10-09 15:46
 

Tackar!

Skulle jag kunna komma i kontakt med dig Christian via e-mail och ställa ett par frågor? 

Mvh

Nytt inlägg
 2020-10-21 08:27
 
 Ändrad av Christian  på 2020-10-21 07:27:42

 Hej hej

Christian.hagglund@xls.we

Mvh

Christian

Nytt inlägg
 2020-10-24 17:33
 

Den e-mailen gick det inte att skicka till. Har även frågat redaktionen om mitt problem som är att den sidan jag vill skrapa inte kan köras i Internet Explorer. Det finns inga liknande sidor att tillgå, och heller inget öppet API. Om det finns någon annan program lösning som man kan använda Excel på något sätt med?    

Nytt inlägg
 2020-10-29 19:32
 

 Skulle vart Christian.hagglund@xls.se

 

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAInnertextInnertext

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter