Risolto Grafico Excel con mappa Italia

skizzo37

Nuovo utente
1 Novembre 2017
2
1
Siena
Office 2010
0
Buongiorno a tutti,
nella mappa Italia che gentilmente Arturo ha condiviso nel file Mappa Coropletica della disoccupazione, mancano alcune province:
Monza-Brianza, Fermo, Barletta-Andria-Trani.
Ho provato in tutti i modi ad aggiungere le shape ( prendendole dall'altro ottimo lavoro di Fugma ):
aggiunto righe province foglio Data con tutte le indicazioni
aggiornato myRegions, myShapeIndex, myShapeNames, myValues con riferimeno al foglio Data
lanciata la routine Recreate Shape Index
ma queste aggiunte non vengono aggiornate: perchè ?
Grazie
 

Marius44

VBA Expert
Moderatore
9 Settembre 2015
7.195
145
76
Catania
Excel2010
323
Ciao
innanzi tutto permettimi di ricordarti che un'immagine è obbligatoria.

Per quanto riguarda la mappa dell'Italia con tutte le province dai uno sguardo al mio lavoro in questa discussione e vai al post #12

Ciao,
Mario
 

Allocco

Utente abituale
17 Gennaio 2016
419
18
Napoli
2010
2
Ciao un ulteriore probabile sviluppo, ma più per un effetto grafico, la tabella Dati l'ho spostata dalla colonna "AA" quindi la variazione dati deve essere fatta in tali celle.

Ho creato un nuovo grafico istogramma per ogni provincia, ed un grafico a torta per le percentuali.

si possono visualizzare o meno i dati delle province facendo Click sul segno di spunta, che viene inserito o tolto ad ogni selezione, l'unica macro serve appunto a visualizzare o nascondere tali dati.

Questa la Macro nel modulo del foglio:

Codice:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r, c, d
r = Target.Row
c = Target.Column
d = Target
If Not Intersect(Target, [n3:n10]) Is Nothing Then
    If d = "" Then
        Cells(r, c) = "ü"
        Select Case r
            Case 3
                ActiveSheet.Shapes.Range(Array("Group 8")).Visible = True
                Cells(r, c - 1) = Cells(r, 28)
            Case 4
                ActiveSheet.Shapes.Range(Array("Group 11")).Visible = True
                Cells(r, c - 1) = Cells(r, 28)
            Case 5
                ActiveSheet.Shapes.Range(Array("Group 30")).Visible = True
                Cells(r, c - 1) = Cells(r, 28)
            Case 6
                ActiveSheet.Shapes.Range(Array("Group 27")).Visible = True
                Cells(r, c - 1) = Cells(r, 28)
            Case 7
                ActiveSheet.Shapes.Range(Array("Group 36")).Visible = True
                Cells(r, c - 1) = Cells(r, 28)
            Case 8
                ActiveSheet.Shapes.Range(Array("Group 22")).Visible = True
                Cells(r, c - 1) = Cells(r, 28)
            Case 9
                ActiveSheet.Shapes.Range(Array("Group 33")).Visible = True
                Cells(r, c - 1) = Cells(r, 28)
            Case 10
                ActiveSheet.Shapes.Range(Array("Group 42")).Visible = True
                Cells(r, c - 1) = Cells(r, 28)
        End Select
    Else
        Cells(r, c) = ""
        Select Case r
            Case 3
                ActiveSheet.Shapes.Range(Array("Group 8")).Select
                ActiveSheet.Shapes.Range(Array("Group 8")).Visible = False
                Cells(r, c - 1) = ""
            Case 4
                ActiveSheet.Shapes.Range(Array("Group 11")).Select
                ActiveSheet.Shapes.Range(Array("Group 11")).Visible = False
                Cells(r, c - 1) = ""
            Case 5
                ActiveSheet.Shapes.Range(Array("Group 30")).Select
                ActiveSheet.Shapes.Range(Array("Group 30")).Visible = False
                Cells(r, c - 1) = ""
            Case 6
                ActiveSheet.Shapes.Range(Array("Group 27")).Select
                ActiveSheet.Shapes.Range(Array("Group 27")).Visible = False
                Cells(r, c - 1) = ""
            Case 7
                ActiveSheet.Shapes.Range(Array("Group 36")).Select
                ActiveSheet.Shapes.Range(Array("Group 36")).Visible = False
                Cells(r, c - 1) = ""
            Case 8
                ActiveSheet.Shapes.Range(Array("Group 22")).Select
                ActiveSheet.Shapes.Range(Array("Group 22")).Visible = False
                Cells(r, c - 1) = ""
            Case 9
                ActiveSheet.Shapes.Range(Array("Group 33")).Select
                ActiveSheet.Shapes.Range(Array("Group 33")).Visible = False
                Cells(r, c - 1) = ""
            Case 10
                ActiveSheet.Shapes.Range(Array("Group 42")).Select
                ActiveSheet.Shapes.Range(Array("Group 42")).Visible = False
                Cells(r, c - 1) = ""
        End Select
    End If
    Cells(2, c).Select
End If


End Sub
Ciao Allocco (8-D
 

Allegati

C

calibro22

Guest

RossanoWP

Nuovo utente
20 Marzo 2019
3
1
2013
0
Buongiorno sig. Arturo, le volevo fare una domanda. Ho visto il file Mappa coropletica disoccupazione Italia però mancano 3 province (BT, MT,FM) è possibile inserirle nel foglio dati devo modificare altri campi?
Grazie
Saluti Rossano
 

Antonio82

Nuovo utente
9 Maggio 2019
6
1
Office 2016
0
Salve a tutti,
ho visto attentamente il video della mappa coropletica presente in youtube. Ma non ho capito come visualizzarla su Excel.....
Qualcuno può aiutarmi?

Grazie
 

Bas

Utente junior
5 Novembre 2018
62
8
Villanova Mondovì
Excel 2016
1
file aggiornato -> https://www.dropbox.com/s/0j7uli48lrrzl98/provaCartinaBis.xlsm?dl=0

Ho aggiunto il seguente foglio:"ElencoComuni" con la relativa provincia. Tale elenco è stato scaricato dal seguente link http://www1.finanze.gov.it/finanze2...italocale/addirpef_newDF/download/tabella.htm

Ebbene, ho scoperto che nella cartina mancavano anche le province di Fermo e Barletta-Andria-Trani. Ho aggiornato pertanto la cartina... (Purtroppo la provincia di Barletta-Andria-Trani è venuta un po male).

A questo punto il ragionamento è il seguente:

- colonna A -> nome città (descrizione uguale a quella presente nel foglio "ElencoComuni";
- colonna B -> vedi formula cerca.vert
- colonna C -> importo (formula casuale.tra)
- colonna E -> elenco di tutte le province
- colonna F -> calcolo percentuale (Vedi formula ... somma.se / totale)

Successivamente selezionare le celle F2:F111 -> formattazione condizionale -> scegliere la regola che volete

Infine il seguente codice è stato aggiornato per prendere il colore della cella in base alla formattazione condizionale:

Codice:
Sub AggiornaCartina()

'Disattiva l'aggiornamento dello schermo
Application.ScreenUpdating = False

'Azzera il colore delle province (Registratore Macro)
ActiveSheet.Shapes.SelectAll
Selection.ShapeRange.Fill.Visible = msoFalse


'Ogni immagine si chiama -> Provincia_xx (xx è la sigla)
Range("E2").Select
Do Until ActiveCell = ""
    ActiveSheet.Shapes.Range(Array("Provincia_" & ActiveCell)).Fill.ForeColor.RGB = ActiveCell.Offset(0, 1).DisplayFormat.Interior.Color
    ActiveCell.Offset(1, 0).Select
Loop

Range("e2").Select

'Riattiva l'aggiornamento dello schermo
Application.ScreenUpdating = True

End Sub
Risposte:


ma io ne ho viste solo una 20ina, non penso che per fare tutta italia basta solo incrementare la tab. A:D, dove devo lavorare? l'ho appena riaperto...non so come...ma si basta solo inserire le celle...
Aggiornato con tutte le province.

E come abbino le province alle singole shape? non so come...ma si abbinano da sole...
Tutte le shape si chiamano "Provincia_xx" dove xx è il codice della provincia... che corrisponde al codice presente nella colonna E.

Di conseguenza nel ciclo loop attraverso questa istruzione abbino il singolo shape alla provincia -> "Provincia_" & ActiveCell

Ma io ho già una mai macro personale con Ctrl+A...come posso rimediare?
Altra soluzione: premere F5 -> speciale -> oggetti -> ok

Anche in questo modo si selezionano tutte le province.

Ho fatto varie prove ma purtroppo non prende i colori. Cioè è tutto perfetto ma i colori li prende solo se inseriti manualmente, se arrivano da una formattazione condizionale non li riconosce.
Adesso prende il colore della formattazione condizionale.

E infine, ma la colonna posizione, a cosa serve? L'ho tolta ed ho modificato la posizione sul vba in 1 e funziona tutto...ma a cosa serve o serviva?
Era nel file proposto da Jarhead. Può essere tolto.
Complimenti per il lavoro!!! vorrei imparare anche io a replicarlo e la cosa che non ho capito è come hai fatto ad assegnare ai singoli shapes i nomi Provincia_xx e gli shapes li hai fatti tu a mano con excel? perchè io vorrei fare un lavoro simile ma per regione e vorrei capire se li posso importare da un immagine o altro.
Naturalmente se qualcuno l'avesse già fatto partirei dal suo file.
Grazie
 

Bas

Utente junior
5 Novembre 2018
62
8
Villanova Mondovì
Excel 2016
1
file aggiornato -> https://www.dropbox.com/s/0j7uli48lrrzl98/provaCartinaBis.xlsm?dl=0

Ho aggiunto il seguente foglio:"ElencoComuni" con la relativa provincia. Tale elenco è stato scaricato dal seguente link http://www1.finanze.gov.it/finanze2...italocale/addirpef_newDF/download/tabella.htm

Ebbene, ho scoperto che nella cartina mancavano anche le province di Fermo e Barletta-Andria-Trani. Ho aggiornato pertanto la cartina... (Purtroppo la provincia di Barletta-Andria-Trani è venuta un po male).

A questo punto il ragionamento è il seguente:

- colonna A -> nome città (descrizione uguale a quella presente nel foglio "ElencoComuni";
- colonna B -> vedi formula cerca.vert
- colonna C -> importo (formula casuale.tra)
- colonna E -> elenco di tutte le province
- colonna F -> calcolo percentuale (Vedi formula ... somma.se / totale)

Successivamente selezionare le celle F2:F111 -> formattazione condizionale -> scegliere la regola che volete

Infine il seguente codice è stato aggiornato per prendere il colore della cella in base alla formattazione condizionale:

Codice:
Sub AggiornaCartina()

'Disattiva l'aggiornamento dello schermo
Application.ScreenUpdating = False

'Azzera il colore delle province (Registratore Macro)
ActiveSheet.Shapes.SelectAll
Selection.ShapeRange.Fill.Visible = msoFalse


'Ogni immagine si chiama -> Provincia_xx (xx è la sigla)
Range("E2").Select
Do Until ActiveCell = ""
    ActiveSheet.Shapes.Range(Array("Provincia_" & ActiveCell)).Fill.ForeColor.RGB = ActiveCell.Offset(0, 1).DisplayFormat.Interior.Color
    ActiveCell.Offset(1, 0).Select
Loop

Range("e2").Select

'Riattiva l'aggiornamento dello schermo
Application.ScreenUpdating = True

End Sub
Risposte:


ma io ne ho viste solo una 20ina, non penso che per fare tutta italia basta solo incrementare la tab. A:D, dove devo lavorare? l'ho appena riaperto...non so come...ma si basta solo inserire le celle...
Aggiornato con tutte le province.

E come abbino le province alle singole shape? non so come...ma si abbinano da sole...
Tutte le shape si chiamano "Provincia_xx" dove xx è il codice della provincia... che corrisponde al codice presente nella colonna E.

Di conseguenza nel ciclo loop attraverso questa istruzione abbino il singolo shape alla provincia -> "Provincia_" & ActiveCell

Ma io ho già una mai macro personale con Ctrl+A...come posso rimediare?
Altra soluzione: premere F5 -> speciale -> oggetti -> ok

Anche in questo modo si selezionano tutte le province.

Ho fatto varie prove ma purtroppo non prende i colori. Cioè è tutto perfetto ma i colori li prende solo se inseriti manualmente, se arrivano da una formattazione condizionale non li riconosce.
Adesso prende il colore della formattazione condizionale.

E infine, ma la colonna posizione, a cosa serve? L'ho tolta ed ho modificato la posizione sul vba in 1 e funziona tutto...ma a cosa serve o serviva?
Era nel file proposto da Jarhead. Può essere tolto.
F @Fugma è possibile rimpicciolire o ingrandire la cartina in maniera proporzionale senza che gli shapes si allontanino tra loro nel caso la rimpicciolissi, in modo da non perdere la cartina dell'italia?
 

prrpql

Utente junior
16 Maggio 2018
29
1
sessa aurunca
2010
0
Salve a tutti invece delle provincie è possibile avere la mappa per regione?
Grazie
F @Fugma
 

Marius44

VBA Expert
Moderatore
9 Settembre 2015
7.195
145
76
Catania
Excel2010
323
Buone Feste a tutti
prova con quanto allegato (ovviamente da mettere nella stessa cartella) in questo link

Ciao,
Mario
 

Renatizzi

Utente junior
28 Marzo 2020
35
6
Castiglione della Pescaia GR
2016 per Mac
0
il codice in debug evidenziato in giallo è questo: ActiveSheet.Shapes.Range(Array("Provincia_" & ActiveCell)).Fill.ForeColor.RGB = ActiveCell.Offset(0, 1).DisplayFormat.Interior.Color
ActiveCell.Offset(1, 0).Select
Purtroppo non avendo office 2007 non ti posso aiutare. Molto probabilmente l'istruzione "Displayformat" non è supportata dalla versione 2007.

Sei stato davvero magnifico... posso chiederti una cosa? Sarebbe possibile mettere i nomi delle province? tipo Mi Milano BG Bergamo sulla rispettiva mappa?
Ecco la versione aggiornata (Office 2010 in poi) -> https://www.dropbox.com/s/xaxu8td4hcssubb/Cartina Italia.xlsm?dl=0

Modifiche:

a) adesso ogni provincia ha il seguente nome -> "Provincia_xx_yyyyyyy" (Dove xx è il codice mentre yyyyyyy è la descrizione);
b) Tramite il seguente codice posizionando il mouse sulla provincia esce il nome e la relativa percentuale (Era già presente nel file di Mauro Gamberini)

Codice:
ActiveSheet.Hyperlinks.Add ActiveSheet.Shapes("Provincia_" & ActiveCell & "_" & ActiveCell.Offset(0, 1)), "", "", ScreenTip:=ActiveCell & " - " & ActiveCell.Offset(0, 1) & ": " & Format(ActiveCell.Offset(0, 2), "0.00%")
c) come proposto da Gallo Balm Arturo ho raggruppato tutte le province (Adesso per spostare la cartina basta cliccare con il tasto destro del mouse e in automatico seleziona l'intero grafico).
Ciao Fugma,
desidero anche io accodarmi alla lunga fila di amici che hanno espresso apprezzamenti per il lavoro da te svolto.
Sto provando a personalizzare la tua cartina ma ho notato che le sigle delle province non sono aggiornate. In particolare, sono ancora presenti le seguenti:














EX OLBIA-TEMPIO ORA SS
EX PROVINCIA DEL MEDIO CAMPIDANO
EX PROVINCIA DELL'OGLIASTRA ORA NU
Non compare invece la neo istituita SUD SARDEGNA.
Ti chiedo cortesemente se posso aggiornare io, sulla base dei nuovi codici istat le shapes ed eventuali altri parametri presenti nel file che ci hai mandato. In caso affermativo, mi puoi dare qualche indicazione per farlo (sono un dilettante allo sbaraglio).
Grazie in anticipo
Renato
 

Renatizzi

Utente junior
28 Marzo 2020
35
6
Castiglione della Pescaia GR
2016 per Mac
0
RIPORTO CORRETTAMENTE LE VARIAZIONI EVIDENZIATE:
















CI - EX CARBONIA-IGLESIAS ORA SU
OT - EX OLBIA-TEMPIO ORA SS
VS - EX PROVINCIA DEL MEDIO CAMPIDANO ORA SUD SARDEGNA
OG - EX PROVINCIA DELL'OGLIASTRA ORA NU
SU-SUD SARDEGNA NEW
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!