In un foglio di lavoro, Carol ha una cella formattata in “Contabilità”. Se qualcuno inserisce accidentalmente una data (mm / gg / aa) in quella cella, Excel cambia automaticamente la formattazione della cella per mostrare correttamente la data. Tuttavia, se tenta di inserire nuovamente un importo in dollari in quella cella, non tornerà al formato “Contabilità”; la cella rimane nel formato della data.

Questo va bene se l’utente vede l’errore e lo corregge, ma molte volte ciò accade in un modello con testo “boilerplate” e il modello è protetto senza accesso alle celle di formattazione. Carol si chiede se qualcuno abbia qualche idea sul perché questo accada e su come correggerlo.

Se vuoi un modo rapido per impedire la modifica della formattazione in semplici fogli di lavoro, segui questi passaggi:

  1. Visualizza la finestra di dialogo Opzioni di Excel. (In Excel 2007 fare clic sul pulsante Office e quindi su Opzioni di Excel. In Excel 2010 o versione successiva visualizzare la scheda File della barra multifunzione e quindi fare clic su Opzioni.) . Sul lato sinistro della finestra di dialogo fare clic su Avanzate.

  2. Scorri fino in fondo alle opzioni avanzate. (Vedi figura 1.)

  3. Assicurati che l’opzione Transition Formula Entry sia selezionata.

  4. Fare clic su OK.

Questa particolare opzione fa in modo che Excel valuti (analizzi) le informazioni immesse nello stesso modo in cui faceva Lotus 1-2-3. Ciò significa che le date non vengono più analizzate come date, ma come formula. Pertanto, se qualcuno inserisce 11-16-13 in una cella, viene analizzato come “undici meno sedici meno tredici” e mostrato nella cella come -18. Poiché non è stato analizzato come una data, il formato Contabilità viene lasciato associato alla cella, come desiderato.

Tuttavia, ci sono degli svantaggi in questo approccio. Poiché Excel successivamente analizza le voci in base alle regole di Lotus, gli utenti potrebbero concludere che il foglio di lavoro non funziona correttamente poiché non segue le stesse regole degli altri fogli di lavoro di Excel. Questo è il motivo per cui ho detto che questo approccio può essere accettabile per semplici fogli di lavoro; dovrai stabilire se il tuo foglio di lavoro è idoneo.

Se non si desidera modificare il modo in cui viene eseguita l’analisi, l’approccio migliore potrebbe essere l’aggiunta di alcuni gestori di eventi al foglio di lavoro. Ad esempio, potresti includere un gestore di eventi che esamina la posizione in cui sono stati inseriti i dati e garantisce che qualsiasi modifica a tali celle mantenga la formattazione desiderata.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngToCheck As Range     Set rngToCheck = Range("E2")

If Intersect(Target, rngToCheck) Then         rngToCheck.NumberFormat = _           "_($ #,##0.00_);_($ (#,##0.00);_($* "" - ""??_);_(@_)"

End If End Sub

In questo esempio, la cella in cui si desidera mantenere il formato di contabilità è E2, come assegnata alla variabile rngToCheck. Se vuoi forzare il formato su un intervallo di celle diverso, cambia semplicemente la riga di assegnazione.

Se desideri un po ‘più di flessibilità, puoi utilizzare un set diverso di gestori di eventi. Ad esempio, i seguenti esempi utilizzano entrambi gli eventi SelectionChange e Change dell’oggetto Foglio di lavoro. Si traducono in qualcosa che non forza così tanto un particolare formato, ma impedisce che la formattazione di una cella venga modificata da qualunque cosa fosse prima. Pertanto, questo approccio protegge qualsiasi formattazione, non solo l’applicazione di un formato di contabilità.

Dim nFormat As String

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngToCheck As Range     Set rngToCheck = Range("E2")

If Intersect(Target, rngToCheck) Then         rngToCheck.NumberFormat = nFormat     End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

nFormat = Target.NumberFormat End Sub

Il gestore dell’evento SelectionChange viene attivato per primo, impostando il formato esistente nella variabile nFormat. Quindi il gestore dell’evento Change si attiva e imposta la formattazione sull’originale.

Un altro approccio che potresti provare è utilizzare la convalida dei dati. Questo approccio non richiede macro ed è quindi adatto se la cartella di lavoro verrà utilizzata da persone che potrebbero avere le macro disabilitate sul proprio sistema.

Segui questi passaggi generali:

  1. Seleziona la cella o le celle di cui desideri applicare la formattazione.

  2. Visualizza la scheda Dati della barra multifunzione.

  3. Fare clic sullo strumento Convalida dati nel gruppo Strumenti dati. Excel visualizza la finestra di dialogo Convalida dati.

  4. Utilizzando l’elenco a discesa Consenti, scegli Personalizzato. (Vedi figura 2.)

  5. Nella casella Formula, digita quanto segue: = CELL (“format”, B2) = “C2”. Configurare eventuali altre impostazioni di convalida dei dati come desiderato.

  6. Fare clic su OK.

La formula (passaggio 5) controlla la formattazione della cella e consente o non consente l’immissione in base a tale formattazione. Nella formula citata, il formato C2 è il nome interno del formato Contabilità. È possibile modificare facilmente i codici nella formula in un altro formato, come “, 2”, “C2”, “C0”, “C2-” o “C0-” a seconda delle preferenze. Il modo più semplice per capire quale formato utilizzare è formattare una cella, come desiderato, prima di applicare la regola di convalida dei dati. (Ad esempio, supponiamo che tu applichi la formattazione alla cella L13.) Puoi quindi utilizzare questa formula in una cella diversa per vedere quale formato Excel ritiene che tu abbia applicato:

=CELL("format",L13)

_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.

link: / excelribbon-ExcelTipsMacros [Fare clic qui per aprire quella pagina speciale in una nuova scheda del browser].

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

Questo suggerimento (12729) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.