Excel e gli applicativi Microsoft Office Pagina internet .HTML aperta con VBA excel 2016

Login Registrati
Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
  • Autore
    Articoli
  • #7285 Risposta

    Emme

      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

      #7301 Risposta

      vecchio frac
      Moderatore
        16 pts

        wrote:la stessa macro in vba apre questo file .html

        Ci mostri il codice che apre il file html?

        #7310 Risposta

        Emme
        Partecipante
          1 pt

          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à.

          #7316 Risposta

          vecchio frac
          Moderatore
            16 pts

            Come primo tentativo, dai l'istruzione

            AppActivate "Excel"

            subito dopo il metodo Followhyperlink. E vediamo cosa succede 🙂

            #7421 Risposta

            Emme
            Partecipante
              1 pt

              No nulla, l'istruzione aggiunta a seguire non richiama il programma Excel dopo aver aperto il file online.html sul browser.

              #7439 Risposta

              vecchio frac
              Moderatore
                16 pts

                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 Sub
                #7440 Risposta

                vecchio frac
                Moderatore
                  16 pts

                  Dimenticavo: ricordati prima di uscire da Excel di dare il comando SetXlNormal o Excel resterà sempre on top 🙂

                  #7459 Risposta

                  Emme
                  Partecipante
                    1 pt

                    Perfettamente funzionante, la ringrazio.   

                    Buona giornata

                    #7464 Risposta

                    vecchio frac
                    Moderatore
                      16 pts

                      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   

                    Login Registrati
                    Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
                    Rispondi a: Pagina internet .HTML aperta con VBA excel 2016
                    Gli allegati sono permessi solo ad utenti REGISTRATI
                    Le tue informazioni:



                    vecchio frac - 591 risposte

                    albatros54
                    albatros54 - 507 risposte

                    Marius44
                    Marius44 - 270 risposte

                    patel
                    patel - 257 risposte

                    Luca73
                    Luca73 - 194 risposte

                    ChatBox per richiedere velocemente assistenza a semplici problematiche

                    Devi fare il login per scrivere nella chat

                    0
                    1