Due anni fa ti avrei detto di provare MapPoint di Microsoft; peccato che dalla fine del 2014 non sia piu' disponibile.
Una soluzione "casareccia" era stata proposta qui:
viewtopic.php?p=567782#p513268Prevede che con santa pazienza "a mano libera" seguendo i contorni su una mappa di sfondo ti disegni una dopo l' altra le N regioni.
Una versione piu' semplificata di questa ipotesi potrebbe portare a questo risultato:
hosting immaginiPer ottenere questo risultato:
-Ho inserito la mappa a riempire il foglio Excel
-sopra ogni area "conquistabile" ho inserito una forma circolare, senza bordo.
-ho dato un nome mnemonico a ognuna di queste forme; io le ho chiamate "CH", "ITA" e FR
-poi con questo codice rendo tutte le forme invisibili
- Codice: Seleziona tutto
Sub invisibili()
ActiveSheet.Shapes.Range(Array("ITA", "FR", "CH")).Select 'Indicarle tutte
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 1
.Solid
End With
End Sub
In realta' non le metto "Invisibili" ma solo "trasparenti"
Poi coloro e rendo visibili le forme che mi interessano con questa subroutine:
- Codice: Seleziona tutto
Sub ForManage(ByVal NomeF As String, ByVal Mycol As Long, ByVal myTrasp As Single)
ActiveSheet.Shapes.Range(NomeF).Select 'Indicare il nome
If Mycol = 1 Then
RRGGBB = RGB(255, 0, 0) 'Colore 1=Rosso
Else
RRGGBB = RGB(0, 255, 0) 'colore 0=Verde
End If
If myTrasp > 0.95 Then myTrasp = 1
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RRGGBB
.Transparency = myTrasp
.Solid
End With
Range("A1").Select
End Sub
Questa subroutine viene infine chiamata per assegnare alla forma prescelta il colore prescelto (0 /1) e impostarla visibile riducendo la trasparenza da 1 (100%) a 0.33 (33%); il risultato sull'immagine precedente e' ottenuta con questo codice:
- Codice: Seleziona tutto
Sub pippo()
Call ForManage("ITA", 1, 0.33)
Call ForManage("CH", 0, 0.33)
End Sub
La FR invece e' ancora invisibile (volutamente l'ho selezionata per renderne visibile la presenza sulla mappa).
Questa soluzione in pratica non richiede la presenza di una forma col contorno dell'area che si vuole marcare, in quanto viene usata una forma "Ovale" facile da creare, che poi va copiata su ogni area interessata e rinominata in modo mnemonico.
Invece col primo sistema, grazie alla "santa pazienza", si possono ottenere risultati cosi:
caricare immaginiAggiungo una cosa ovvia: piu' "santa" la pazienza, migliore il risultato!
Il codice delle macro e' quello presentato prima.
Ciao.