You are here:---Rispondi a: [RISOLTO] aprire Popup
Rispondi a: [RISOLTO] aprire Popup2019-06-09T16:50:35+01:00

Home Forum Domande su Excel VBA e MACRO [RISOLTO] aprire Popup Rispondi a: [RISOLTO] aprire Popup

sidsid
Moderatore
    Post totali: 723

    ciao a tutti

    La macro che apre il file Word l’ho presa da uno dei luminari del VBA che ci sono in giro, un certo “SCOSSA”……….

    Mai sentito :whistle:

    Faccio il serio va…..Un saluto al grande Scossa, e complimenti a kriss per aver nominato l’autore della macro…non lo fa quasi nessuno.

    Una possibile soluzione:
    – abbiamo bisogno di istruzioni per verificare se è aperta un’istanza di word, e nel caso lo fosse invece ci usare CreateObject (per crearla), usiamo GetObject(per sfruttarla).
    Inserirei questa Function che ho adattato all’esigenza del thread, ma si può adattare per vedere se è aperta qualsiasi app di office

    Function bRunning(ByVal sApp As String) As Boolean
    Dim x As Object
    On Error Resume Next
    Set x = GetObject(, sApp)
    bRunning = (Err = 0)
    Set x = Nothing
    End Function

    Il paramentro sApp sarà la stringa passata dalla macro principale

    Questo il codice con qualche spiegazione:

    Sub ApriFileWord()
    Dim objWord As Object, objDoc As Object
    Dim n As Long
    Dim sApp As String
    
    'paramentro che passo alla function  
    sApp = "Word.Application"
    
    If Not bRunning(sApp) Then
       Set objWord = CreateObject(sApp)
    Else
        Set objWord = GetObject(, sApp)
    End If
    
    On Error Resume Next
    'qui verifico se il file è aperto, verificando la lunghezza del nome del file;
    'se è chiuso e senza l'uso di "On Error Resume Next", scatta il debug
    n = Len(objWord.Documents("prova.docx").Name)
    
    'qui verifico la lunghezza del nome del file; se è >0 sigifica che il file è aperto
    If n > 0 Then
        ' se il file è aperto gli assegno un riferimento....
        Set objDoc = objWord.Documents("prova.docx")
    Else
        '...altrimenti gli imposto il riferimento alla sua apertura
        Set objDoc = objWord.Documents.Open(ThisWorkbook.Path & "/" & "prova.docx") 'qui scegli il percorso
    End If
    
    'restituisco ad excel la gestione dell'errore
    On Error GoTo 0
    
    'se il file non è visibile lo rendo tale
    If Not objWord.Visible = True Then
        objWord.Visible = True
    End If
    
    'qui ci vanno tutte le istruzioni che vuoi
    '.................
    '..................
    '......................
    
    Set objDoc = Nothing
    Set objWord = Nothing
    
    End Sub

    Spero sia chiaro……ciao :bye:

    Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

    Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

    Chiudi