Ciao Mattia,
Buonasera. Scusa, dovevo dirlo prima.
Si, è il risultato di una formula (un somma.se)
Dato che il valore della cella di interesse è il risultato di una formula, e supponendo che la formula si riferisca a celle dello stesso foglio,, prova invece qualcosa del genere:
- Fai clic dx sulla linguetta del foglio di interesse
- Seleziona l'opzione Visualizza Codice dal **** menu contestuale risultante
- Incolla il seguente codice:
'========>>
Option Explicit
'-------->>
Private Sub Worksheet_Change(ByVal Target As Range)
Dim SH As Worksheet
Dim Rng\_Criterio As Range, Rng\_Stampa As Range, Rng\_Precedente As Range
Dim arrFogli As Variant
Dim sIndirizzo As String
Dim iCtr As Long
Const sCella\_Criterio As String = **"A1" '<<=== Modifica**
Const dCriterio As Double = **2 '<<=== Modifica**
Set Rng\_Criterio = Me.Range(sCella\_Criterio)
Set Rng\_Precedente = Rng\_Criterio.Precedents
If Not Rng\_Precedente Is Nothing Then
If Not Intersect(Rng\_Precedente, Target) Is Nothing Then
If Rng\_Criterio.Value = dCriterio Then
sIndirizzo = Me.PageSetup.PrintArea
ReDim arrFogli(1 To ThisWorkbook.Sheets.Count)
For Each SH In ThisWorkbook.Worksheets
With SH
iCtr = iCtr + 1
arrFogli(iCtr) = .Name
SH.PageSetup.PrintArea = sIndirizzo
End With
Next SH
ThisWorkbook.Worksheets(arrFogli).PrintOut
End If
End If
End If
End Sub
'<<========
- Alt+Q per chiudere l'editor di VBA e tornare a Excel.
- Salva il file con l'estensione xlsm
Potresti scaricare il mio file di prova Mattia20230916.xlsm
NB:
Anche se il codice originale non è più appropriato, dato l'utilizzo di una formula nella cella di interesse, ho apportato una piccola modifica a quel codice per correggere un piccolo errore nell'ordine del codice.
===
Regards,
Norman
