Theresa si chiede se esiste un modo per formattare una cella in modo che se il contenuto della cella soddisfa determinati criteri, viene stampato automaticamente un foglio di lavoro specifico. La risposta breve è no, non è possibile utilizzare la formattazione per raggiungere questo obiettivo. È tuttavia possibile utilizzare una macro del gestore eventi per eseguire la stampa.

Ad esempio, uno dei gestori di eventi supportati da Excel viene attivato ogni volta che viene modificato qualcosa nella cartella di lavoro. È possibile creare un gestore eventi che esamini quale cella è stata modificata. Se si tratta di una cella specifica e se quella cella contiene un valore particolare, è possibile stampare un foglio di lavoro.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim targCell As Range     Set targCell = Worksheets(1).Range("B2")



If Not Application.Intersect(Target, targCell) Is Nothing Then         If targCell.Value = 1001 Then             Worksheets(1).PrintOut         End If     End If End Sub

Questa macro esamina il contenuto della cella B2. Se il contenuto della cella viene modificato e se la cella contiene il valore 1001, il foglio di lavoro viene stampato automaticamente.

Naturalmente, potresti volere che il contenuto di una cella particolare controlli ciò che viene stampato quando qualcuno sceglie effettivamente di stampare. Ad esempio, se l’utente sceglie di stampare, potresti voler esaminare il contenuto di una cella (come E2) e, in base al contenuto di quella cella, modificare automaticamente ciò che viene stampato. La seguente macro adotta questo approccio:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

Application.EnableEvents = False     Select Case Worksheets("Sheet1").Range("E1")

Case 1             Worksheets("Sheet1").PrintOut         Case 2             Worksheets("Sheet2").PrintOut         Case 3             Worksheets("Sheet3").PrintOut         Case 4             Worksheets("Sheet4").PrintOut         Case Else             ActiveSheet.PrintOut     End Select     Cancel = True     Application.EnableEvents = True End Sub

La macro stampa Foglio1, Foglio2, Foglio3 o Foglio4 a seconda che la cella E2 contenga 1, 2, 3 o 4.

_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 (3832) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: