Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao. Sto provando per la prima volta ad utilizzare una Macro su Excel 2003 ed evidentemente sbaglio qualcosa. Mi chiedevo se qualcuno può aiutarmi.
Il problema è questo: ho la necessità di incollare quotidianamente su vari fogli di una cartella Excel dati estratti da diverse pagine dello stesso sito web formattate tutte allo stesso modo e il cui indirizzo differisce solo in parte.
Ho provato a registrare una Macro copiando l'indirizzo di una di queste pagine in una cella per poi copiare il contenuto di quella cella (ossia, appunto, l'indirizzo web) sul browser e copincollare la tabella che mi serve sul foglio Excel. Ma evidentemente non si fa così, visto che quando vado ad eseguire la Macro mi dà il seguente errore:
Errore di run-time '1004':
Errore nel metodo Paste per la classe Worksheet.
Essendo totalmente digiuno di Macro, qui mi son bloccato. Mi potreste dire dove sbaglio?
Grazie in anticipo.
Se(se) quello che vuoi fare è avere una macro che ti importi nella cella A1 del foglio attivo una tabella che si trova in una pagina web, questa la macro che ottieni registrando:
Sub Macro1()
'
' Macro1 Macro
' Macro registrata il 25/10/2010 da Mauro
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://it.advfn.com/?adw=20001&gclid=CJTx6a3A7aQCFYwv3wodx1EctQ", _
Destination:=Range("A1"))
.Name = "?adw=20001&gclid=CJTx6a3A7aQCFYwv3wodx1EctQ"
.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 = "58"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
La parte *variabile* è questa riga:
"URL;http://it.advfn.com/?adw=20001&gclid=CJTx6a3A7aQCFYwv3wodx1EctQ"
che puoi sostituire così:
"URL;http://" & NomeDelFoglio.Range(RiferimentoCella).Value
Dove NomeDelFoglio.Range(RiferimentoCella).Value sarà un acosa tipo: Foglio1.Range("A1").Value. e in questo esempio, la cella A1 del Foglio1 conterrà il link alla pagina e alla eventuale tabella della stessa. Questo è quello che ho capito. Per favore resta sempre in questo thread per ulteriori spiegazioni/aiuti. Grazie.
--
La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.
--
Mauro Gamberini - Microsoft© MVP(Excel)