Il tedesco ha chiesto se esiste un modo per inviare un foglio di lavoro in una cartella di lavoro come allegato di posta elettronica senza inviare l’intera cartella di lavoro. La risposta breve è che non puoi — un foglio di lavoro, da solo, non può esistere come “entità”

che puoi allegare a un’e-mail. È possibile inviare solo file come allegati ai messaggi di posta elettronica, il che significa che è necessario disporre di un file della cartella di lavoro da inviare.

Ovviamente è facile creare una cartella di lavoro da un singolo foglio di lavoro. Se hai bisogno di farlo solo una volta ogni tanto, il modo più semplice è seguire questi passaggi:

  1. Fare clic con il pulsante destro del mouse sulla scheda del foglio di lavoro che si desidera inviare tramite posta elettronica.

  2. Dal menu contestuale risultante, scegli Sposta o Copia. Excel visualizza la finestra di dialogo Sposta o Copia. (Vedi figura 1.)

  3. Utilizzando l’elenco a discesa To Book, scegli New Book.

  4. Assicurati che la casella di controllo Crea una copia sia selezionata.

  5. Fare clic su OK.

A questo punto, dovresti vedere una nuova cartella di lavoro con un unico foglio di lavoro, una copia del foglio di lavoro che desideri inviare. Salva questa cartella di lavoro e inviala tramite posta elettronica e hai ottenuto ciò che volevi fare. Una volta inviata tramite posta elettronica, è possibile eliminare la cartella di lavoro dal sistema, poiché anche il foglio di lavoro si trova nella cartella di lavoro originale.

Se è necessario inviare regolarmente tramite posta elettronica il foglio di lavoro corrente a qualcun altro, è possibile creare una macro che svolga l’operazione per te. La macro creata varierà a seconda del programma di posta elettronica in uso. Per questo motivo, non è possibile fornire una risposta completa basata su macro in questo suggerimento. Tuttavia, può essere istruttivo fornire un esempio di una macro che può inviare un foglio di lavoro tramite posta elettronica utilizzando Outlook come programma di posta.

Sub EmailWithOutlook()

Dim oApp As Object     Dim oMail As Object     Dim WB As Workbook     Dim FileName As String     Dim wSht As Worksheet     Dim shtName As String

Application.ScreenUpdating = False

' Make a copy of the active worksheet     ' and save it to a temporary file     ActiveSheet.Copy     Set WB = ActiveWorkbook

FileName = WB.Worksheets(1).Name     On Error Resume Next     Kill "C:\" & FileName     On Error GoTo 0     WB.SaveAs FileName:="C:\" & FileName

'Create and show the Outlook mail item     Set oApp = CreateObject("Outlook.Application")

Set oMail = oApp.CreateItem(0)

With oMail         'Uncomment the line below to hard code a recipient         '.To = "[email protected]"

'Uncomment the line below to hard code a subject         '.Subject = "Subject Line"

'Uncomment the lines below to hard code a body         '.body = "Dear John" & vbCrLf & vbCrLf & _           '"Here is the file you asked for"

.Attachments.Add WB.FullName         .Display     End With

'Delete the temporary file     WB.ChangeFileAccess Mode:=xlReadOnly     Kill WB.FullName     WB.Close SaveChanges:=False

'Restore screen updating and release Outlook     Application.ScreenUpdating = True     Set oMail = Nothing     Set oApp = Nothing End Sub

Nota che la macro fa in modo efficace ciò che è stato fatto nei passaggi precedenti:

copia il foglio di lavoro in una nuova cartella di lavoro e quindi invia quella cartella di lavoro tramite posta elettronica. Quindi elimina la cartella di lavoro e torna al normale utilizzo di Excel.

La macro salva la cartella di lavoro temporanea (quella che viene inviata tramite posta elettronica) nell’unità C :. Se preferisci che la cartella di lavoro venga salvata altrove (o se le tue restrizioni di sistema ti impediscono di salvare i file nella directory principale del tuo sistema), cambia semplicemente la posizione nelle due righe di codice che fanno riferimento all’unità C :.

C’è un potenziale svantaggio nell’usare l’approccio descritto in questo suggerimento: quando crei una copia del foglio di lavoro in una nuova cartella di lavoro, Excel può fare alcune cose divertenti con alcuni riferimenti che potrebbero essere nel foglio di lavoro copiato. Ad esempio, diciamo che desideri copiare e inviare tramite posta elettronica il foglio 1 dalla cartella di lavoro originale. Tuttavia, Sheet1 include alcuni riferimenti, nelle formule, alle celle in Sheet2 e Sheet3. Quando si effettua la copia di Sheet1 nella nuova cartella di lavoro, Excel mantiene quei riferimenti ai fogli nella cartella di lavoro originale. Mentre il Foglio1 copiato può essere inviato tramite posta elettronica a qualcun altro, quando quella persona tenta di aprirlo, i riferimenti non funzioneranno più correttamente perché non dispone della cartella di lavoro originale a cui si fa riferimento.

Ci sono tre potenziali soluzioni a questo. Il primo, ovviamente, è assicurarsi di non inviare per posta elettronica un singolo foglio di lavoro nella nuova cartella di lavoro, ma tutti i fogli di lavoro di cui il destinatario potrebbe aver bisogno. La seconda soluzione è utilizzare le tecniche di copia e incolla per incollare i valori nella nuova cartella di lavoro.

Infine, puoi copiare il foglio di lavoro originale e poi, nella copia, cercare tutti i riferimenti esterni ed eliminarli.

Se stai cercando una discussione più approfondita su come inviare un foglio di lavoro tramite posta elettronica utilizzando vari programmi, allora vorrai sicuramente visitare la seguente pagina Web:

http://www.rondebruin.nl/win/section1.htm

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (8508) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per l’interfaccia del menu precedente di Excel qui: