Condividi tramite

Macro apri file

Anonimo
2010-10-14T18:15:42+00:00

Ciao a tutti, ho fatto una ricerca sul forum e su internet x evitare di disturbarvi ma senza successo.

Avrei bisogno di creare una macro che mi permetta di aprire un file (non di office).

Il file non è sul PC utente, ma sul server (\\Server...).

Grazie, saluti

Massimo

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-10-16T10:44:13+00:00

Il programma x la creazione delle etichette è solo sui client, in questo caso, come x i file di Office, utilizziamo il server come archivio condiviso dei ns file. Il server e i client hanno MS SQL Server che utilizziamo x il Gestionale di contabilità.

Massimo

Bene, questo(programma sul cient, file sul server) cambia tutto(ferma restando la validità delle macro postate in precedenza in altro contesto):

Public Sub mApriProgramma()

    Dim v As Variant

    v = Shell("Notepad.exe \MAURO10-64\E_Mauro64\Prova\prova.txt", vbNormalNoFocus)

End Sub

Questo apre un file di testo presente su di un altro pc della mia rete. Sostituirai Notepad.ece con il nome del tuo programma e \MAURO10-64\E_Mauro64\Prova\prova.txt con l'indirizzo ed il nome file del tuo server/cartella/file. Prova un po' e fai sapere. 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)

http://www.maurogsc.eu/

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-10-18T12:42:02+00:00

Il programma x la creazione delle etichette è solo sui client, in questo caso, come x i file di Office, utilizziamo il server come archivio condiviso dei ns file. Il server e i client hanno MS SQL Server che utilizziamo x il Gestionale di contabilità.

Massimo

Bene, questo(programma sul cient, file sul server) cambia tutto(ferma restando la validità delle macro postate in precedenza in altro contesto):

Public Sub mApriProgramma()

    Dim v As Variant

    v = Shell("Notepad.exe \MAURO10-64\E_Mauro64\Prova\prova.txt", vbNormalNoFocus)

End Sub

Questo apre un file di testo presente su di un altro pc della mia rete. Sostituirai Notepad.ece con il nome del tuo programma e \MAURO10-64\E_Mauro64\Prova\prova.txt con l'indirizzo ed il nome file del tuo server/cartella/file. Prova un po' e fai sapere. Grazie.

Mauro, il codice funziona, ma ho dovuto inserire anche il percorso completo del programma da aprire.

v = Shell("C:\Programmi\xxxxx\xxxxx\bin\xxxx.exe + percorsofile", vbNormalNoFocus)

Ovviamente dovrò fare attenzione che il "programma etichette" avrà lo stesso percorso in ogni PC client.

Grazie 1000, saluti.

Massimo

.

La risposta è stata utile?

0 commenti Nessun commento

9 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-10-15T12:03:50+00:00

    Buongiorno Mauro e grazie, ma il codice di cui ho bisogno dovrebbe aprire un file, non di MS e posizionato sul Server.

    Quello che mi hai inviato serve ad aprire e chiudere il Blocco Note o la Calcolatrice (che comunque è stato utilissimo è l'ho già applicato al mio "programmino" in Excel).

    Protresti indicarmi per favore cosa devo modificare?

    Grazie ancora,

    Massimo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-10-15T07:56:36+00:00

    Ciao a tutti, ho fatto una ricerca sul forum e su internet x evitare di disturbarvi ma senza successo.

    Avrei bisogno di creare una macro che mi permetta di aprire un file (non di office).

    Il file non è sul PC utente, ma sul server (\\Server...).

    Grazie, saluti

    Massimo

    La risposta di eliano è corretta ma non completa. Il codice qui sotto, da copia incollare in un modulo standard(eventualmente vedi qui su dove e come copiare il codice:http://www.maurogsc.eu/excel/xlsdoveinserirecodice.aspx) fa qualcosa in più. Ti consente di lanciare il tuo programma(nell'esempio la calcolatrice) e di gestirne poi la chiusura sempre dal vb di Excel:

    Public v As Variant

    Private Const PROCESS_ALL_ACCESS = &H1F0FFF

    Private Declare Function OpenProcess Lib "kernel32" _

      (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _

       ByVal dwProcessId As Long) As Long

    Private Declare Function GetExitCodeProcess Lib "kernel32" _

       (ByVal hProcess As Long, lpExitCode As Long) As Long

    Private Declare Function TerminateProcess Lib "kernel32" _

       (ByVal hProcess As Long, ByVal uExitCode As Long) As Long

    Public Sub mApriProgramma()

        v = Shell("Notepad.exe", vbNormalFocus)

    End Sub

    Public Sub mChiudiProgramma()

        Dim lng1 As Long

        Dim lng2 As Long

        lng1 = OpenProcess(PROCESS_ALL_ACCESS, 0&, v)

        If lng1 Then

            GetExitCodeProcess lng1, lng2

            If lng2 Then TerminateProcess lng1, lng2

        End If

    End Sub

    Entrambe le macro sono, in quanto pubbliche, richiamabili da tutta l'applicazione Excel. Grazie per l'attenzione.


    --

    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)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-10-14T21:13:37+00:00

    Vedi sulla guida in linea la funzione: Shell

    La risposta è stata utile?

    0 commenti Nessun commento