Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Aprire file con Macro

2,361 views
Skip to first unread message

Ale

unread,
Aug 5, 2009, 4:13:02 AM8/5/09
to
Buongiorno,
vorrei creare una macro per aprire alcuni file excel.
I file si trovano tutti nella stessa cartella (diciamo c:\clienti\) e ogni
file è stato salvato con il nome del cliente (quindi il percorso del cliente
Pippo sarà c:\clienti\pippo.xlsx).
Quello che vorrei fare è creare un foglio excel (chiamiamolo sorgente.xlsm)
dove nella cella A1 viene inserito manualmente il nome cliente e un pulsante
associato ad una macro che apra il file del cliente corrispondente.
esempio se in sorgente.xlsm nella cella A1 viene inserito Pluto la macro
aprirà il file C:\clienti\pluto.xlsx.
Si può fare?
Grazie

Mauro Gamberini

unread,
Aug 5, 2009, 4:55:22 AM8/5/09
to
> vorrei creare una macro per aprire alcuni file excel.
> I file si trovano tutti nella stessa cartella (diciamo c:\clienti\) e ogni
> file � stato salvato con il nome del cliente (quindi il percorso del
> cliente
> Pippo sar� c:\clienti\pippo.xlsx).
> Quello che vorrei fare � creare un foglio excel (chiamiamolo
> sorgente.xlsm)
> dove nella cella A1 viene inserito manualmente il nome cliente e un
> pulsante
> associato ad una macro che apra il file del cliente corrispondente.
>

Copia/incolla questo in un modulo standard
(ALT+F11 e sei nell'editor del vb, Inserisci-->Modulo):

Public Sub mApriFile()

On Error GoTo RigaErrore

Dim sh As Worksheet
Dim wrk As Workbook
Dim sPath As String
Dim sNomeFile As String
Dim lRisposta As Long

sPath = "C:\tuaCartella\"
Set sh = Worksheets("Foglio1")

With sh

sNomeFile = .Range("A1").Value & ".xlsx"
lRisposta = MsgBox(Prompt:="Vuoi aprire il file: " _
& sNomeFile, Title:="Attenzione", _
Buttons:=vbYesNo + vbQuestion)

If lRisposta = vbYes Then
Workbooks.Open (sPath & sNomeFile)
End If

End With

RigaChiusura:
Set sh = Nothing
Exit Sub

RigaErrore:
MsgBox Err.Number & vbNewLine & Err.Description
Resume RigaChiusura

End Sub


Adesso nel Ribbon(linguetta) Sviluppo(*), fai click sul pulsante Macro.
Seleziona la macro: mApriFile.
Pulsante: Opzioni
Assegna un tasto di scelta rapida(es: a).
Ok

Ora, se premi CTRL+a ti verr� aperto il file il cui nome
� presente in A1 del Foglio1.
Modifica la path della cartella con la tua.


(*)Se(se) non vedi il Ribbon sviluppo.

Procedura per visualizzare il Ribbon: Sviluppo

Click sul pulsante: Office
Pulsante: Opzioni di Excel(in basso a dx)
Mettere la spunta a: Mostra scheda Sviluppo sulla barra multifunzione

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/
http://social.microsoft.com/Forums/it-IT/officeit/threads

Mauro Gamberini

unread,
Aug 5, 2009, 5:01:15 AM8/5/09
to
<cut>

Scusa, elimina tranquillamente questa riga:

Dim wrk As Workbook

r

unread,
Aug 5, 2009, 7:10:01 AM8/5/09
to
"Ale" ha scritto:

la tua cella è A1 in A2 scrivi:
=COLLEG.IPERTESTUALE("c:\clienti\"&A1&".xls";SE(A1="";"";A1))

saluti
r

--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm

Il mio ultimo lavoro ...
http://excelvba.altervista.org/blog/index.php/Excel-VBA/UsedRange-eccezioni-e-alternative.html


r

unread,
Aug 6, 2009, 4:46:01 AM8/6/09
to

"r" ha scritto:

> "Ale" ha scritto:
>
> > Buongiorno,
> > vorrei creare una macro per aprire alcuni file excel.
> > I file si trovano tutti nella stessa cartella (diciamo c:\clienti\) e ogni
> > file è stato salvato con il nome del cliente (quindi il percorso del cliente
> > Pippo sarà c:\clienti\pippo.xlsx).
> > Quello che vorrei fare è creare un foglio excel (chiamiamolo sorgente.xlsm)
> > dove nella cella A1 viene inserito manualmente il nome cliente e un pulsante
> > associato ad una macro che apra il file del cliente corrispondente.
> > esempio se in sorgente.xlsm nella cella A1 viene inserito Pluto la macro
> > aprirà il file C:\clienti\pluto.xlsx.
> > Si può fare?
> > Grazie
> >
> la tua cella è A1 in A2 scrivi:
> =COLLEG.IPERTESTUALE("c:\clienti\"&A1&".xls";SE(A1="";"";A1))
>

meglio così:
=SE(A1="";"";COLLEG.IPERTESTUALE("c:\clienti\"&A1&".xls";A1))

Andrea22

unread,
Sep 27, 2009, 7:46:13 AM9/27/09
to
> Il mio ultimo lavoro ...http://excelvba.altervista.org/blog/index.php/Excel-VBA/UsedRange-ecc...

Fantastico grazie entrambe le soluzioni ottime.....

Problema risolto!!

Se nn ci foste Voi!

ciao

and....

Mauro Gamberini

unread,
Sep 27, 2009, 9:48:38 AM9/27/09
to
Fantastico grazie entrambe le soluzioni ottime.....

Problema risolto!!
******************************
Grazie a te per il riscontro.

Se nn ci foste Voi!

**************
Ci sarebbe comunque Google... ;-)

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/

http://social.microsoft.com/Forums/it-IT/excelit/threads


0 new messages