KutoolsforOffice — Un'unica soluzione, cinque potenti strumenti.Ottenere di più con meno sforzo.

Come modificare automaticamente le dimensioni di una forma in base al valore contenuto in una cella specifica di Excel?

AutoreSiluvia Data di modifica

In Excel, forme come cerchi, rettangoli o grafiche personalizzate sono comunemente utilizzate per migliorare la presentazione visiva, creare dashboard o illustrare dati. A volte può essere utile che le dimensioni di una forma riflettano dinamicamente il valore contenuto in una determinata cella, ad esempio per realizzare indicatori di avanzamento, visualizzazioni dello stato o semplicemente per rendere i report più interattivi e intuitivi. Tuttavia, Excel non offre una funzionalità integrata diretta per collegare automaticamente le dimensioni di una forma al contenuto di una cella. Questo articolo presenta metodi pratici per ridimensionare automaticamente le forme in base al valore di una cella specificata, aiutandovi a rendere i vostri progetti Excel più dinamici e visivamente efficaci.


Modifica automatica delle dimensioni di una forma in base al valore di una cella specificata con codice VBA

Per consentire a una forma di regolare automaticamente le proprie dimensioni in base al valore inserito in una cella specifica, puoi utilizzare una macro VBA. Questo metodo è particolarmente efficace per automatizzare elementi di una dashboard o evidenziare visivamente i cambiamenti nei dati, senza dover modificare manualmente ogni forma. Il codice VBA seguente collega le dimensioni di una forma al valore di una cella nel foglio di lavoro.

Naviga tra i documenti utilizzando Office Tab

Office Tab

Navigazione a schede per Word, Excel, PowerPoint e molto altro – proprio come in un browser web, con passaggio fluido tra i documenti in un’unica finestra.

Seguire questi passaggi:

1. Fare clic con il pulsante destro del mouse sulla scheda del foglio che contiene la forma da ridimensionare e selezionare Visualizza codice dal menu contestuale. Si aprirà così la finestra dell’editor del codice relativa a quel foglio di lavoro specifico.

2. Nella finestra di Microsoft Visual Basic, Applications Edition, copiare e incollare il seguente codice VBA nella finestra del codice. Assicurarsi di incollarlo nel foglio di codice corrispondente al foglio di lavoro in cui si trova la forma.

Codice VBA: Modifica automatica delle dimensioni di una forma in base al valore di una cella specificata in Excel

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Row = 2 And Target.Column = 1 Then
        Call SizeCircle("Oval 2", Val(Target.Value))
    End If
End Sub
Sub SizeCircle(Name As String, Diameter)
    Dim xCenterX As Single
    Dim xCenterY As Single
    Dim xCircle As Shape
    Dim xDiameter As Single
    On Error GoTo ExitSub
    xDiameter = Diameter
    If xDiameter > 10 Then xDiameter = 10
    If xDiameter < 1 Then xDiameter = 1
    Set xCircle = ActiveSheet.Shapes(Name)
    With xCircle
        xCenterX = .Left + (.Width / 2)
        xCenterY = .Top + (.Height / 2)
        .Width = Application.CentimetersToPoints(xDiameter)
        .Height = Application.CentimetersToPoints(xDiameter)
        .Left = xCenterX - (.Width / 2)
        .Top = xCenterY - (.Height / 2)
    End With
ExitSub:
End Sub

Spiegazione e avvertenze:

  • In questo codice, "Oval 2" fa riferimento al nome della forma che si desidera ridimensionare. Assicurati che corrisponda esattamente al nome visualizzato nel Riquadro selezione (Home > Trova e seleziona > Riquadro selezione).
  • Il codice viene attivato solo quando si apporta una modifica specificamente alla cella A2 (ovvero riga 2, colonna 1). Se desideri utilizzare una cella diversa, aggiorna questi valori di conseguenza.
  • La dimensione della forma è determinata dal valore della cella, che rappresenta il diametro in centimetri. Il codice imposta un limite massimo di 10 cm e un limite minimo di 1 cm per evitare problemi di ridimensionamento estremo.
  • Se si inserisce un valore al di fuori di questo intervallo (inferiore a 1 o superiore a 10), la forma verrà ridimensionata al limite più vicino.
  • Se il nome della forma specificata non viene trovato o il valore non è numerico, il codice ignorerà l’azione senza visualizzare alcun messaggio di errore.

Per scenari in cui più forme devono ridimensionarsi automaticamente in base ai valori presenti in celle diverse (ad esempio, per creare una serie di indicatori visivi o misuratori), è possibile estendere la soluzione VBA come illustrato di seguito.

Codice VBA: Ridimensionamento automatico di più forme in base ai valori di diverse celle specificate in Excel

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xAddress As String
    On Error Resume Next
    If Target.CountLarge = 1 Then
        xAddress = Target.Address(0, 0)
        If xAddress = "A1" Then
            Call SizeCircle("Oval 1", Val(Target.Value))
        ElseIf xAddress = "A2" Then
            Call SizeCircle("Smiley Face 3", Val(Target.Value))
        ElseIf xAddress = "A3" Then
            Call SizeCircle("Heart 2", Val(Target.Value))
        End If
    End If
End Sub

Sub SizeCircle(Name As String, Diameter)
    Dim xCenterX As Single
    Dim xCenterY As Single
    Dim xCircle As Shape
    Dim xDiameter As Single
    On Error GoTo ExitSub
    xDiameter = Diameter
    If xDiameter > 10 Then xDiameter = 10
    If xDiameter < 1 Then xDiameter = 1
    Set xCircle = ActiveSheet.Shapes(Name)
    With xCircle
        xCenterX = .Left + (.Width / 2)
        xCenterY = .Top + (.Height / 2)
        .Width = Application.CentimetersToPoints(xDiameter)
        .Height = Application.CentimetersToPoints(xDiameter)
        .Left = xCenterX - (.Width / 2)
        .Top = xCenterY - (.Height / 2)
    End With
ExitSub:
End Sub

Note importanti e suggerimenti per l’uso:

1) In questo codice si trovano i nomi delle forme "Oval 1", "Smiley Face 3« e »Heart 2". Questi fanno riferimento alle forme che si desidera ridimensionare. Assicurarsi che i nomi corrispondano esattamente a quelli visualizzati in Cartella di lavoro Excel.
2) Le celle A1,A2e A3controllano le dimensioni delle rispettive forme. È possibile modificare questi riferimenti se si desidera utilizzare altre coppie cella-forma. Per aggiungere ulteriori forme e celle, basta aggiungere righe simili nella sezione If...ElseIfprima di End If. Inserire l’indirizzo corretto della cella e il nome della forma secondo necessità.

3. Dopo aver modificato e salvato il codice, premere Alt+Q per chiudere la finestra di Microsoft Visual Basic, Applications Edition e tornare al foglio di lavoro.

Ora, ogni volta che modifichi il valore nella cella A2, la forma specificata «Oval2» verrà ridimensionata automaticamente in tempo reale. Guarda lo screenshot:

modifica il valore in una cella specifica, la dimensione della forma verrà modificata automaticamente

Allo stesso modo, aggiornando i valori nelle celle A1, A2 o A3, le forme «Oval 1», «Smiley Face 3» e «Heart 2» adatteranno immediatamente le proprie dimensioni in base alle celle collegate. Vedere l’esempio seguente:

modifica il valore in celle specifiche, le dimensioni delle forme verranno modificate automaticamente

Promemoria aggiuntivi:
- Il ridimensionamento ha effetto solo quando i valori nelle celle specificate vengono modificati. Se si sposta o modifica manualmente una forma alterandone il punto di riferimento, potrebbe essere necessario ripristinarne la posizione.
- Il funzionamento corretto è garantito esclusivamente con valori numerici. Celle vuote o contenenti testo potrebbero causare il ridimensionamento della forma alla dimensione minima o comportamenti imprevisti.
- Assicurati che le macro siano abilitate nel tuo ambiente Excel, poiché le soluzioni VBA richiedono l’autorizzazione all’esecuzione delle macro.

Nota: L’adattamento delle dimensioni della forma smette di aumentare non appena il valore della cella supera 10 (massimo impostato a 10 cm). Allo stesso modo, i valori inferiori a 1 vengono automaticamente impostati al minimo (1 cm).

Suggerimenti per la risoluzione dei problemi: Se il ridimensionamento non funziona come previsto, verifica attentamente che i nomi delle forme e i riferimenti di cella corrispondano esattamente, che le macro siano abilitate e che non siano attive restrizioni di protezione del foglio di lavoro. In caso di errore in fase di esecuzione, assicurati che le forme specificate esistano nel foglio attivo e che i loro nomi siano scritti correttamente.

Suggerimento riassuntivo:Il metodo VBA offre un ridimensionamento dinamico in tempo reale, ideale per dashboard interattive e report basati sui dati. Richiede tuttavia la conoscenza dei nomi delle forme, dimestichezza con l’ambiente VBA e il salvataggio della cartella di lavoro come file abilitato alle macro ().xlsm) per conservare il codice. È la scelta perfetta quando serve automazione e l’uso delle macro è accettabile.


Ridimensionamento manuale della forma tramite riferimento

Se è necessario regolare le dimensioni delle forme solo occasionalmente o si preferisce un approccio semplice senza ricorrere alle macro, è possibile impostare manualmente le dimensioni della forma in base al valore di una cella, all’occorrenza. Questo metodo è ideale quando l’automazione non è essenziale o quando l’uso delle macro è limitato.

Fai clic sulla forma da ridimensionare, quindi nel riquadro Formato forma (fare clic con il tasto destro sulla forma > Dimensione e proprietà) inserisci manualmente i valori di larghezza e altezza. Puoi usare il valore di una cella come riferimento per questi input. Pur non essendo automatico, questo metodo è semplice ed efficace per regolazioni occasionali.

Suggerimento: Con questo approccio, assicurati sempre di aggiornare manualmente le dimensioni della forma ogni volta che i valori delle celle cambiano, poiché non esiste alcun collegamento tra la forma e la cella. Questo metodo evita gli avvisi di sicurezza legati alle macro, ma non supporta aggiornamenti visivi in tempo reale.

Elenca ed esporta tutte le forme nella cartella di lavoro corrente Cartella di lavoro Excel:

L’utilità Esporta grafico di Kutools per Excel ti permette di elencare rapidamente tutte le forme nel foglio di lavoro corrente ed esportarle tutte insieme in una cartella specificata, come mostrato nell’immagine seguente. Scaricala e provala subito! (Prova gratuita di 30 giorni)

esporta tutte le forme nell'attuale Excel con Kutools


Articoli correlati:


Migliori Strumenti per la Produttività in Office

🤖KUTOOLS AI Assistente: Rivoluziona Analisi dei dati in base a:Esecuzione Intelligente   |  Genera Codice|  Crea formule personalizzate  |  Analizza Dati e Genera Grafici|  Richiama Funzioni avanzate
Funzionalità Popolari:Trova, Evidenzia o Contrassegna Duplicati   |  Elimina righe vuote   |  Combinare Colonne o Celle senza Perdere Dati   |   Arrotondamento senza usare la formula...
Super RICERCA.VERT:VLookup con Criteri Multipli  |  VLookup con Valori Multipli  |   VLookup tra Fogli Multipli   |   Corrispondenza approssimativa....
Elenco a discesa avanzato:Crea Rapidamente un Elenco a Discesa   |  Elenco a Discesa Dipendente   |  Elenco a Discesa con Selezione Multipla....
Gestione Colonne:Aggiungi un Numero Specifico di Colonne|Sposta Colonne|Attiva/Disattiva lo Stato di Visibilità delle Colonne Nascoste|Confronta Intervalli e Colonne...
Funzionalità in Evidenza:Attenzione della griglia   |  Visualizzazione Design   |Barra delle formule avanzata   | Gestione Cartelle di Lavoro e Fogli   |  Biblioteca di risorse(Testo Automatico)|  Selettore di Date   |  Unisci fogli di lavoro  |  Crittografa/Decrittografa celle   | Invia Email da Lista   |  Super Filtri   |   Filtro speciale(Filtra celle con testo in grassetto/corsivo/barrato...) ...
Principali Set di Strumenti 15:12 Strumentiper il Testo(Aggiungi testo,Elimina Caratteri Specifici, ...)|   50+Tipidi Grafico(Diagramma di Gantt, ...)|   40+ Formule Pratiche(Calcola l'età in base alla data di nascita, ...)|   19 Strumentidi Inserimento(Inserisci Codice QR,Inserisci Immagine dal Percorso, ...)|   12 Strumentidi Conversione(Converti in parole,Conversione del tasso di cambio, ...)|   7 StrumentiUnisci e Dividi(Unione avanzata righe,Dividi celle, ...)|... e molto altro
Usa Kutools nella tua lingua preferita – supporta inglese, spagnolo, tedesco, francese, cinese e 40+ altre!

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...


Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
  • Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!

Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.

Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.

ExcelWordOutlookTabsPowerPoint
  • Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
  • Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
  • Funziona meglio insieme— produttività ottimizzata tra le app di Office
  • Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
  • Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi