Sommario
Ecco un trucco accurato per le persone che usano le mappe in Excel. In questo blog, spiegherò come evidenziare la mappa in Excel in base a una selezione a discesa.
Ho preso una mappa modificabile degli Stati Uniti. L'idea è quella di evidenziare uno stato negli Stati Uniti quando il suo nome viene selezionato da un menu a discesa.
Qualcosa come mostrato nella foto qui sotto:
Ora, prima di mostrarti il codice, ecco alcuni prerequisiti per questo trucco.
- Ottieni una mappa modificabile degli Stati Uniti in cui puoi selezionare diverse forme che desideri evidenziare
- Crea un elenco di tutti i 50 stati in una colonna e nella colonna alla sua destra ho scritto Stato 1, Stato 2 e così via
- Assegna un nome a ciascuna forma sulla mappa. Ad esempio, qui ho 50 forme per 50 stati e ho chiamato ogni forma come Stato 1, Stato 2, Stato 3 e così via… Per fare ciò, seleziona qualsiasi forma e vai alla casella Nome, che è attiva a sinistra della barra della formula e immetterne il nome dalla colonna Numero stato. Ad esempio, ho selezionato Alabama e l'ho chiamato Stato 1.
- Crea un elenco a discesa di Excel con i nomi di tutti gli stati ($ B $ 2 in questo caso)
- Utilizzare la funzione Vlookup per estrarre il numero di stato quando viene selezionato uno stato dal menu a discesa. Ecco la formula che ho usato nella cella $B$3
=CERCA.VERT(B2,'Elenco stati'!$B$3:$C$52,2,FALSO)
Codice per evidenziare la mappa in Excel
Private Sub Worksheet_Change(ByVal Target As Range) Dim N As Integer Dim ShapeName As String N = ActiveSheet.Shapes.count If Target.Address = "$B$2" Then For i = 1 To N ShapeName = ActiveSheet.Shapes(i). Name If Left(ShapeName, 6) = "State " Then ActiveSheet.Shapes(i).Select With Selection.ShapeRange.Fill .Visible = msoFalse .Transparency = 1 End With End If Next i StateNumber = Range("$B$3" ).Value ActiveSheet.Shapes(StateNumber).Select With Selection.ShapeRange.Fill .Visible = msoTrue .Visible = msoTrue .ForeColor.RGB = RGB(192, 0, 0) .Transparency = 0 .Solid End con ActiveSheet.Range( "$B$2").Seleziona End If End Sub
Segui questi semplici passaggi mentre incolli questo codice
- Innanzitutto, fai clic con il pulsante destro del mouse sulla scheda del foglio che contiene la mappa e seleziona "Visualizza codice". Questo aprirà l'editor VB.
- Incolla il codice.