› Excel e gli applicativi Microsoft Office › Pagina internet .HTML aperta con VBA excel 2016
-
AutoreArticoli
-
Ho un foglio excel che calcola dei dati, li scrive su un file con estensione .html e in seguito la stessa macro in vba apre questo file .html che condivide tutti i calcoli su un sito internet che in automatico al termine della condivisione chiude la pagina internet. Tutto funziona, però vorrei che il file .html venga aperto dalla macro vba ridotto ad icona per continuare sul file excel senza essere disturbati dalla pagina web che si apre. Grazie per un vostro aiuto
wrote:la stessa macro in vba apre questo file .html
Ci mostri il codice che apre il file html?
Buongiorno, grazie per il suo interessamento. Il codice per aprire il file .html è il seguente:
ThisWorkbook.FollowHyperlink "file:///" & link & "/" & cartella & "/online.html"Potrei cambiare anche il metodo di apertura del file <em>online.html</em> per implementare l'apertura del browser nascosto ad icona se questo metodo non ne dà la possibilità.
Come primo tentativo, dai l'istruzione
AppActivate "Excel"subito dopo il metodo Followhyperlink. E vediamo cosa succede 🙂
No nulla, l'istruzione aggiunta a seguire non richiama il programma Excel dopo aver aperto il file online.html sul browser.
Ho cercato a lungo, ho trovato una soluzione un po' forzata ma sembra funzionare.
Incolla il codice in un modulo.
Dentro c'è anche una piccola sub di test che ho usato per prova e che ne dimostra l'utilizzo (chiaramente è impostata per il mio pc, apre un file html nella cartella test sul mio desktop, non offendo la tua intelligenza per dirti cosa devi modificare).
Option Explicit 'Update 20140909 'https://www.extendoffice.com/documents/excel/2030-keep-excel-window-on-top.html #If Win64 Then Public Declare PtrSafe Function SetWindowPos _ Lib "user32" ( _ ByVal hwnd As LongPtr, _ ByVal hwndInsertAfter As LongPtr, _ ByVal x As Long, ByVal y As Long, _ ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long) _ As Long #Else Public Declare Function SetWindowPos _ Lib "user32" ( _ ByVal hwnd As Long, _ ByVal hwndInsertAfter As Long, _ ByVal x As Long, ByVal y As Long, _ ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long) _ As Long #End If Public Const SWP_NOSIZE = &H1 Public Const SWP_NOMOVE = &H2 Public Const HWND_TOPMOST = -1 Public Const HWND_NOTOPMOST = -2 Sub ShowXLOnTop(ByVal OnTop As Boolean) Dim xStype As Long #If Win64 Then Dim xHwnd As LongPtr #Else Dim xHwnd As Long #End If If OnTop Then xStype = HWND_TOPMOST Else xStype = HWND_NOTOPMOST End If Call SetWindowPos(Application.hwnd, xStype, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE) End Sub Sub SetXLOnTop() ShowXLOnTop True End Sub Sub SetXLNormal() ShowXLOnTop False End Sub 'PER TEST Sub test() ThisWorkbook.FollowHyperlink "file:///c:\users\franz\desktop\test\online.html" SetXLOnTop End SubDimenticavo: ricordati prima di uscire da Excel di dare il comando SetXlNormal o Excel resterà sempre on top 🙂
Grazie del feedback.
Ricordati però che in un forum, solitamente, ci si dà del tu anche se non ci si conosce, perchè riduce le distanze e crea l'afflato creativo
-
AutoreArticoli
