Sviluppo di formule di conversione reciproca (Microsoft Excel)
Jeremy ha posto un problema basato su due celle, A1 e C1. Queste celle sono progettate per contenere rispettivamente pollici e millimetri.
Jeremy vuole un modo in cui qualcuno possa inserire un valore in A1 e sarebbe convertito in millimetri in C1. Al contrario, potrebbero inserire un valore in C1 e sarebbe convertito in pollici in A1.
Fare la conversione, ovviamente, non è il vero problema. Il problema è che se qualcuno inserisce un valore in A1, quel valore sovrascriverà qualsiasi formula che potrebbe trovarsi in quella cella e significa che qualsiasi valore successivo inserito nella cella C1 non darebbe la conversione richiesta nell’A1 precedentemente sovrascritto.
Ci sono un paio di modi diversi in cui questo potrebbe essere affrontato. Se non ti dispiace espandere il design del foglio di lavoro per includere altre due celle, quelle celle potrebbero essere utilizzate rigorosamente per l’input e le celle A1 e C1 potrebbero essere utilizzate esclusivamente per l’output. Una delle celle di input potrebbe contenere il valore da convertire e l’altra potrebbe contenere l’unità di misura del valore di input (in o mm, ad esempio).
Ovviamente, se vuoi davvero limitarti a due celle, dovrai ricorrere all’uso delle macro per eseguire la conversione effettiva. È possibile utilizzare un evento del foglio di lavoro che viene attivato ogni volta che il valore di una cella viene modificato e il gestore eventi potrebbe verificare se la cella da modificare è A1 o C1. La seguente macro fornisce un esempio di come potrebbe funzionare:
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False With ActiveSheet If Target = .[A1] Then .[C1].Value = .[A1].Value * 25.4 ElseIf Target = .[C1] Then .[A1].Value = .[C1].Value / 25.4 End If End With Application.EnableEvents = True End Sub
Nota che non devi avere formule nelle celle A1 o C1; le formule sono nella macro stessa. Se c’è una modifica nella cella A1 (i pollici vengono immessi dall’utente), il valore nella cella C1 viene modificato dalla macro. Allo stesso modo, se c’è una modifica nella cella C1 (i millimetri sono inseriti dall’utente), il valore nella cella A1 viene modificato dalla macro.
Una modifica in qualsiasi altra cella oltre ad A1 o C1 viene ignorata dalla macro.
_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 (9581) 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: