Evidenzia mappa in Excel in base alla selezione a discesa in Excel

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.

  1. Ottieni una mappa modificabile degli Stati Uniti in cui puoi selezionare diverse forme che desideri evidenziare
  2. 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
  3. 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.
  4. Crea un elenco a discesa di Excel con i nomi di tutti gli stati ($ B $ 2 in questo caso)
  5. 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

  1. 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.
  2. Incolla il codice.
wave wave wave wave wave