Gestione Portafoglio Fondi d'investimento
File Excel per il monitoraggio delle performance dei fondi su borsaitaliana.it
https://www.dropbox.com/scl/fi/vssx29t0jlbldwpciorlk/Portafoglio_fondi-V0.xlsx?dl=0&rlkey=zjm2ux4wzfpi2kiuq1nl8ygk6
Moderatori: Anthony47, Flash30005
Sub ScanObbMOT()
Dim IE As Object, myF As Object, I As Long
'
For I = 2 To Cells(Rows.Count, 2).End(xlUp).Row
myUrl = Cells(I, 2) 'L'url della pagina da accedere
If InStr(1, myUrl, "http", vbTextCompare) = 1 Then
'Se url valido, apre tramite InternetExplorer...
If IE Is Nothing Then Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = False '...nascondi IE
.navigate myUrl '....vai all'url
Sleep 100 '
Do While .Busy: DoEvents: Sleep (20): Loop 'Attesa not busy
Do While .readyState <> 4: DoEvents: Sleep (20): Loop 'Attesa document
End With
Sleep (100) 'Stabilizza
'Cerca le voci di interesse
On Error Resume Next
Set myF = IE.document.getElementsByClassName("w-999")
Cells(I, "C").Value = (myF(0).getElementsByTagName("h1")(0).innerText) 'INTESTAZIONE (Descrizione)
Cells(I, "D").Value = (myF(0).getElementsByTagName("strong")(0).innerText) 'quotazione
' Cells(I, "E").Value = (myF(0).getElementsByTagName("strong")(1).innerText) 'variazione
Set myF = IE.document.getElementsByClassName("w-999__bcol")
Cells(I, "F").Value = myF(0).getElementsByTagName("strong")(1).innerText 'data
Set myF = IE.document.getElementsByTagName("table")
' Cells(I, "H").Value = (myF(1).getElementsByTagName("td")(3).innerText) 'Tabella DATI MERCATO(Min Oggi)
Cells(I, "H").Value = (myF(2).getElementsByTagName("td")(11).innerText) 'Tabella RENDIMENTI EFFETTIVI (Prezzo di riferimento)
Cells(I, "I").Value = (myF(2).getElementsByTagName("td")(13).innerText) 'Tabella RENDIMENTI EFFETTIVI (Data di riferimento)
' Cells(I, "H").Value = (myF(2).getElementsByTagName("td")(1).innerText) 'Tabella RENDIMENTI EFFETTIVI (Rendimento effettivo a scadenza lordo)
' Cells(I, "I").Value = (myF(2).getElementsByTagName("td")(5).innerText) 'Tabella RENDIMENTI EFFETTIVI (Rateo Lordo)
' Cells(I, "J").Value = (myF(2).getElementsByTagName("td")(7).innerText) 'Tabella RENDIMENTI EFFETTIVI (Rateo Netto)
' Cells(I, "K").Value = (myF(2).getElementsByTagName("td")(9).innerText) 'Tabella RENDIMENTI EFFETTIVI (Duration modificata)
' Cells(I, "H").Value = (myF(3).getElementsByTagName("td")(1).innerText) 'Tabella CONTRATTI(2^ Riga, 2^ Cella)
Cells(I, "A").Value = (myF(4).getElementsByTagName("td")(1).innerText) 'Tabella INFO STRUMENTO(ISIN)
Cells(I, "G").Value = (myF(4).getElementsByTagName("td")(17).innerText) 'Tabella INFO STRUMENTO(Valuta)
Set myF = IE.document.getElementsByClassName("l-grid__row")
gest = myF(6).innerText
Cells(I, "L") = Application.WorksheetFunction.Clean(Split(gest, Chr(10), , vbTextCompare)(5))
On Error GoTo 0
End If
Next I
'Chiusura
On Error Resume Next
IE.Quit
Set IE = Nothing
End Sub
Sub ScanObbTLX()
Dim IE As Object, myF As Object, I As Long
'
For I = 2 To Cells(Rows.Count, 2).End(xlUp).Row
myUrl = Cells(I, 2) 'L'url della pagina da accedere
If InStr(1, myUrl, "http", vbTextCompare) = 1 Then
'Se url valido, apre tramite InternetExplorer...
If IE Is Nothing Then Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = False '...nascondi IE
.navigate myUrl '....vai all'url
Sleep 100 '
Do While .Busy: DoEvents: Sleep (20): Loop 'Attesa not busy
Do While .readyState <> 4: DoEvents: Sleep (20): Loop 'Attesa document
End With
Sleep (100) 'Stabilizza
'Cerca le voci di interesse
On Error Resume Next
Set myF = IE.document.getElementsByClassName("w-999")
Cells(I, "C").Value = (myF(0).getElementsByTagName("h1")(0).innerText) 'Descrizione(INTESTAZIONE)
Cells(I, "D").Value = (myF(0).getElementsByTagName("strong")(0).innerText) 'quotazione
' Cells(I, "E").Value = (myF(0).getElementsByTagName("strong")(1).innerText) 'variazione
Set myF = IE.document.getElementsByClassName("w-999__bcol")
' Cells(I, "F").Value = (myF(0).getElementsByTagName("strong")(1).innerText) 'data
Set myF = IE.document.getElementsByTagName("table")
' Cells(I, "L").Value = (myF(4).getElementsByTagName("td")(4).innerText) 'Tabella CONTRATTI (2^riga, 2^ cella)
' Cells(I, "M").Value = (myF(3).getElementsByTagName("td")(1).innerText) 'Tabella RENDIMENTI EFFETTIVI (Rendimento effettivo a scadenza lordo)
' Cells(I, "N").Value = (myF(3).getElementsByTagName("td")(5).innerText) 'Rateo Lordo
' Cells(I, "O").Value = (myF(3).getElementsByTagName("td")(7).innerText) 'Rateo Netto
' Cells(I, "P").Value = (myF(3).getElementsByTagName("td")(9).innerText) 'Duration modificata
Cells(I, "A").Value = (myF(1).getElementsByTagName("td")(5).innerText) 'Tabella DATI MERCATO (ISIN)
Cells(I, "G").Value = (myF(1).getElementsByTagName("td")(11).innerText) 'Tabella DATI MERCATO (Valuta)
Cells(I, "F").Value = (myF(0).getElementsByTagName("td")(7).innerText) 'Tabella DATI MERCATO (Data e Ora)
Cells(I, "H").Value = (myF(3).getElementsByTagName("td")(11).innerText) 'Tabella RENDIMENTI EFFETTIVI (Prezzo di riferimento)
Cells(I, "I").Value = (myF(3).getElementsByTagName("td")(13).innerText) 'Tabella RENDIMENTI EFFETTIVI (Data di riferimento)
Set myF = IE.document.getElementsByClassName("l-grid__row")
gest = myF(6).innerText
Cells(I, "L") = Application.WorksheetFunction.Clean(Split(gest, Chr(10), , vbTextCompare)(5))
On Error GoTo 0
End If
Next I
'Chiusura
On Error Resume Next
IE.Quit
Set IE = Nothing
End Sub
Sub ScanBoth()
Dim IE As Object, myF As Object, I As Long
Dim MOTb As String, TLXb As String, myUrl As String
'
For I = 2 To Cells(Rows.Count, 2).End(xlUp).Row
If Cells(I, 1) = "MOT" Then
myUrl = Replace("https://www.borsaitaliana.it/borsa/obbligazioni/mot/btp/scheda/##@@##.html?lang=it", "##@@##", Cells(I, 2), , , vbTextCompare)
ElseIf Cells(I, 1) = "TLX" Then
myUrl = Replace("https://www.borsaitaliana.it/borsa/obbligazioni/eurotlx/scheda/##@@##.html?lang=it", "##@@##", Cells(I, 2), , , vbTextCompare)
Else
myUrl = ""
End If
' myUrl = Cells(I, 2) 'L'url della pagina da accedere
If InStr(1, myUrl, "http", vbTextCompare) = 1 Then
'Se url valido, apre tramite InternetExplorer...
If IE Is Nothing Then Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
' .Visible = False '...nascondi IE
.navigate myUrl '....vai all'url
Sleep 100 '
Do While .Busy: DoEvents: Sleep (20): Loop 'Attesa not busy
Do While .readyState <> 4: DoEvents: Sleep (20): Loop 'Attesa document
End With
Sleep (100) 'Stabilizza
DoEvents
If Cells(I, 1) = "MOT" Then
On Error Resume Next
Set myF = IE.document.getElementsByClassName("w-999")
Cells(I, "C").Value = (myF(0).getElementsByTagName("h1")(0).innerText) 'INTESTAZIONE (Descrizione)
Cells(I, "D").Value = (myF(0).getElementsByTagName("strong")(0).innerText) 'quotazione
' Cells(I, "E").Value = (myF(0).getElementsByTagName("strong")(1).innerText) 'variazione
Set myF = IE.document.getElementsByClassName("w-999__bcol")
Cells(I, "F").Value = myF(0).getElementsByTagName("strong")(1).innerText 'data
Set myF = IE.document.getElementsByTagName("table")
' Cells(I, "H").Value = (myF(1).getElementsByTagName("td")(3).innerText) 'Tabella DATI MERCATO(Min Oggi)
Cells(I, "H").Value = (myF(2).getElementsByTagName("td")(11).innerText) 'Tabella RENDIMENTI EFFETTIVI (Prezzo di riferimento)
Cells(I, "I").Value = (myF(2).getElementsByTagName("td")(13).innerText) 'Tabella RENDIMENTI EFFETTIVI (Data di riferimento)
' Cells(I, "H").Value = (myF(2).getElementsByTagName("td")(1).innerText) 'Tabella RENDIMENTI EFFETTIVI (Rendimento effettivo a scadenza lordo)
' Cells(I, "I").Value = (myF(2).getElementsByTagName("td")(5).innerText) 'Tabella RENDIMENTI EFFETTIVI (Rateo Lordo)
' Cells(I, "J").Value = (myF(2).getElementsByTagName("td")(7).innerText) 'Tabella RENDIMENTI EFFETTIVI (Rateo Netto)
' Cells(I, "K").Value = (myF(2).getElementsByTagName("td")(9).innerText) 'Tabella RENDIMENTI EFFETTIVI (Duration modificata)
' Cells(I, "H").Value = (myF(3).getElementsByTagName("td")(1).innerText) 'Tabella CONTRATTI(2^ Riga, 2^ Cella)
Cells(I, "A").Value = (myF(4).getElementsByTagName("td")(1).innerText) 'Tabella INFO STRUMENTO(ISIN)
Cells(I, "G").Value = (myF(4).getElementsByTagName("td")(17).innerText) 'Tabella INFO STRUMENTO(Valuta)
Set myF = IE.document.getElementsByClassName("l-grid__row")
gest = myF(6).innerText
Cells(I, "L") = Application.WorksheetFunction.Clean(Split(gest, Chr(10), , vbTextCompare)(5))
On Error GoTo 0
Else
'TLX
On Error Resume Next
Set myF = IE.document.getElementsByClassName("w-999")
Cells(I, "C").Value = (myF(0).getElementsByTagName("h1")(0).innerText) 'Descrizione(INTESTAZIONE)
Cells(I, "D").Value = (myF(0).getElementsByTagName("strong")(0).innerText) 'quotazione
' Cells(I, "E").Value = (myF(0).getElementsByTagName("strong")(1).innerText) 'variazione
Set myF = IE.document.getElementsByClassName("w-999__bcol")
' Cells(I, "F").Value = (myF(0).getElementsByTagName("strong")(1).innerText) 'data
Set myF = IE.document.getElementsByTagName("table")
' Cells(I, "L").Value = (myF(4).getElementsByTagName("td")(4).innerText) 'Tabella CONTRATTI (2^riga, 2^ cella)
' Cells(I, "M").Value = (myF(3).getElementsByTagName("td")(1).innerText) 'Tabella RENDIMENTI EFFETTIVI (Rendimento effettivo a scadenza lordo)
' Cells(I, "N").Value = (myF(3).getElementsByTagName("td")(5).innerText) 'Rateo Lordo
' Cells(I, "O").Value = (myF(3).getElementsByTagName("td")(7).innerText) 'Rateo Netto
' Cells(I, "P").Value = (myF(3).getElementsByTagName("td")(9).innerText) 'Duration modificata
'' Cells(I, "A").Value = (myF(1).getElementsByTagName("td")(5).innerText) 'Tabella DATI MERCATO (ISIN)
Cells(I, "G").Value = (myF(1).getElementsByTagName("td")(11).innerText) 'Tabella DATI MERCATO (Valuta)
Cells(I, "F").Value = (myF(0).getElementsByTagName("td")(7).innerText) 'Tabella DATI MERCATO (Data e Ora)
Cells(I, "H").Value = (myF(3).getElementsByTagName("td")(11).innerText) 'Tabella RENDIMENTI EFFETTIVI (Prezzo di riferimento)
Cells(I, "I").Value = (myF(3).getElementsByTagName("td")(13).innerText) 'Tabella RENDIMENTI EFFETTIVI (Data di riferimento)
Set myF = IE.document.getElementsByClassName("l-grid__row")
gest = myF(6).innerText
Cells(I, "L") = Application.WorksheetFunction.Clean(Split(gest, Chr(10), , vbTextCompare)(5))
On Error GoTo 0
End If
End If
Next I
'Chiusura
On Error Resume Next
IE.Quit
Set IE = Nothing
End Sub
Torna a Applicazioni Office Windows
Visitano il forum: Nessuno e 18 ospiti