Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Macro Importazione tabella personalizzata

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Macro Importazione tabella personalizzata

Postdi Francesco6918 » 02/11/20 17:59

Gentilissimi amici del forum una buona sera, facendo una ricerca nel forum o travato una macro generica di cui inserendo il sito (http://stats.betradar.com/s4/?clientid= ... view,25_1) riesco a importare tutta la tabella (Classifica) funziona perfettamente, vorrei applicare delle modifiche per personalizzarla: 1° Modifica: Importazione tabella cella E3, 2° Modifica ecludere alcune colonne B,I,K,R,T,AA,AC,AE, e righe 2,26,28,31,32,34,35,36 , la macro e inserita nel foglio1 o colorato di giallo le colonne e righe da escludere come risultato da ottenere lo riportato nel foglio2, spero di essere stato chiaro ma il file è come esempio se qualcuno può aiutarmi gentilmente.

Grazie

Saluti

http://www.filedropper.com/provadati
Francesco6918
Utente Senior
 
Post: 211
Iscritto il: 04/03/11 11:20

Sponsor
 

Re: Macro Importazione tabella personalizzata

Postdi Anthony47 » 03/11/20 00:25

Ho guardato solo velocemente il tuo file, ma credo che puoi ottenere facilmente quello che cerchi con una macro autoregistrata, da accodare alla macro che importa tutta la tabella dal sito web.
Quindi, in linea di massima:
-importi la tabella completa tramite la macro che gia' usi
-avvia la registrazione della macro; aggiungi in testa le righe ed elimina con i comandi excel che conosci le colonne e le righe superflue
-in coda alla macro principale (Sub call1), inserisci l'istruzione Call MiaMacroRegistrata (usando ovviamente il nome che hai attribuito alla macro)

Quanto al posizionare la tabella su cella E3, dovrebbe funzionare modificando la macro in questa parte:
Codice: Seleziona tutto
''Cells.Clear
J = 4                                                       '*** AGGIUNTA
Set myColl = IE.document.getElementsByTagName("TABLE")
For Each myItm In myColl
    Cells(I + 1, "A").Value = "TABELLA_" & KK: KK = KK + 1: I = I + 1
    For Each trtr In myItm.Rows
        For Each tdtd In trtr.Cells
            Cells(I + 1, J + 1) = tdtd.innertext
            J = J + 1
        Next tdtd
        I = I + 1: J = 4                                    '*** MODIF
    Next trtr
I = I + 2
'continua

Vedi le due istruzioni marcate ***


Per le istruzioni e i primi suggerimenti su come registrare una macro:
viewtopic.php?f=26&t=103893&p=622593#p622593

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17514
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro Importazione tabella personalizzata

Postdi Francesco6918 » 03/11/20 01:59

Ciao Anthony47 grazie di avermi risposto quello che tu dici lo so fare, se è possibile modificare la macro.

Grazie
Francesco6918
Utente Senior
 
Post: 211
Iscritto il: 04/03/11 11:20

Re: Macro Importazione tabella personalizzata

Postdi Anthony47 » 04/11/20 00:45

Ma se lo sai gia' fare perche' vuoi che lo faccia anche io?

Comunque:
Codice: Seleziona tutto
Sub GetWebTab2Param(lUrl)
Dim IE As Object, F As Long
Dim myRColl, myDColl, KK As Long, I As Long, J As Long, myColl, myR, myTD
'
myurl = lUrl
Set IE = CreateObject("InternetExplorer.Application")
'
okcol = Array(1, 3, 4, 6)           '<<< Metti le colonne che ti interessa prendere

With IE
    .navigate myurl
    .Visible = True
    Do While .Busy: DoEvents: Loop              'Attesa not busy
    Do While .readyState <> 4: DoEvents: Loop   'Attesa documento
End With
'
myStart = Timer                                 'attesa addizionale
Do
    DoEvents
    If Timer > myStart + 2 Or Timer < myStart Then Exit Do
Loop
 
'Leggi le tabelle su foglio1 (su un nuovo foglio)
'Worksheets.Add                                              '<<<<<1  -Nuovo foglio
''Application.Goto (Sheets("Foglio1").Range("A1"))            '<<<<<1  -Foglio esistente
''Cells.Clear
J = 4: kcol = 0
Set myColl = IE.document.getElementsByTagName("TABLE")
For Each myItm In myColl
    Cells(I + 1, "A").Value = "TABELLA_" & KK: KK = KK + 1: I = I + 1
    For Each trtr In myItm.Rows
        If r0 = 0 Then
            r0 = 1
        Else
            For Each tdtd In trtr.Cells
                kcol = kcol + 1
                If Not IsError(Application.Match(kcol, okcol, False)) Then
                    Cells(I + 1, J + 1) = tdtd.innertext
                    J = J + 1
                End If
            Next tdtd
            I = I + 1: J = 4: kcol = 0
        End If
    Next trtr
I = I + 2
Exit For
Next myItm
'
    Cells.WrapText = False
    Range("A1").Select
'
'Stop     'Vedi testo
'
'Chiusura IE
IE.Quit
Set IE = Nothing
Columns("C").ColumnWidth = 16
    Cells(2, 1).Select
    Application.ScreenUpdating = True
End Sub

La riga marcata <<< la devi specializzare

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17514
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro Importazione tabella personalizzata

Postdi Francesco6918 » 04/11/20 10:15

Ciao Anthony47 grazie della soluzione scusa del fastidio era quello che cercavo.

Saluti
Francesco6918
Utente Senior
 
Post: 211
Iscritto il: 04/03/11 11:20


Torna a Applicazioni Office Windows


Topic correlati a "Macro Importazione tabella personalizzata":


Chi c’è in linea

Visitano il forum: Nessuno e 33 ospiti