Condividi:        

Aprire file tramite codice vba

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Aprire file tramite codice vba

Postdi aggittoriu » 14/07/21 10:59

Ciao a tutti.

Sto cercando di aprire un file tramite codice vba. Ma non funziona. :cry:

Il codice che sto provando ad utilizzare è

Codice: Seleziona tutto
Sub Apri()
Dim X
X = Range("A1").Value & " " & Range("A2").Value
myVal = Shell(X, 1)
End Sub


Dove in A1 compare il percorso del programma da utilizzare e in A2 il percorso del file da aprire.

Ho provato con un file di testo e il programma notepad e funziona. :)
Ho provato con un file .mcs e il programma Auto Mouse Clicker, ma non funziona. :cry:

Mi sapete dire perchè e soprattutto come risolvere? :-?
aggittoriu
Utente Senior
 
Post: 161
Iscritto il: 24/06/14 08:49

Sponsor
 

Re: Aprire file tramite codice vba

Postdi Anthony47 » 14/07/21 15:02

Facciamo le cose piu' semplici...
-se col vba vuoi aprire un file excel, con il percorso inserito in A1 e il nomefile in A2, allora potresti usare:
Codice: Seleziona tutto
 Perc = Range("A1").Value            'es D:\Downloads
NomeF = Range("A2").Value           'es MioFile.xlsm
Workbooks.Open Perc & "\" & NomeF   'Aggiunto \ tra percorsoe nome


Ovviamente questo codice serve solo per aprire in Excel un file Exxcel

Piu' generalmente, se vuoi far aprire un file dalla sua applicazione di default, allora potresti usare le "API" di windows:
-in testa a un Modulo standard del vba inserisci questa dichiarazione:
Codice: Seleziona tutto
#If VBA7 Then
    Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
#Else
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
#End If

Poi in una macro di quello stesso modulo userai il codice:
Codice: Seleziona tutto
Perc = Range("A1").Value            'es D:\Downloads
NomeF = Range("A2").Value           'es MioFile.xlsm
lngx = ShellExecute(vbNull, "Open", Perc & "\" & NomeF, "", "", vbNormalFocus)


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19475
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Aprire file tramite codice vba

Postdi aggittoriu » 14/07/21 16:09

Ciao Anthony47. :)

Ehmmm... mi sa che non ho capito! :oops:

Ho messo il codice che mi hai detto, ma non funziona. Sicuramente avrò sbagliato qualcosa o devo aggiungere qualcosa.

Poi la scritta
Codice: Seleziona tutto
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Mi viene colorata in rosso. Quindi presumo che stia a significare che c'è un errore. Boh.

Poi mi confermi che A1 è il percorso del programma, col quale aprire il file e A2 è il percorso del file da aprire?
aggittoriu
Utente Senior
 
Post: 161
Iscritto il: 24/06/14 08:49

Re: Aprire file tramite codice vba

Postdi Anthony47 » 14/07/21 16:17

Azz... Ho preso una svista...
Nel mio messaggio A1 e A2 contengono il percorso (es C:Downloads) e il nome del file (es MioFile.xlsm); in ambedue i casi non serve scrivere il percorso del programma che sara' usato (perche' nel primo caso e' per definizione Excel; nel secondo caso e' "l'applicazione di default")

Se usi una "vecchia" versione di Excel e' normale che la prima parte del codice che fa parte del #If venga visualizzato in rosso

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19475
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Aprire file tramite codice vba

Postdi aggittoriu » 14/07/21 16:45

Ok. Ora va! :)

Grazie Anthony47! Mi hai evitato un altro mal di testa. :D Mi sa che dovebbero venderti in farmacia, per queste tue capacità. ;)
aggittoriu
Utente Senior
 
Post: 161
Iscritto il: 24/06/14 08:49


Torna a Applicazioni Office Windows


Topic correlati a "Aprire file tramite codice vba":


Chi c’è in linea

Visitano il forum: Nessuno e 71 ospiti