Conversion image/Excel

flocco

XLDnaute Junior
Bonjour,

Etant en ce moment toujours dans une logique géographique, j'ai essayé de trouver une carte Excel des régions allemandes.
Sur www.deixsys.com j'ai trouvé les départements mais c'est trop de détails, j'ai besoin des régions uniquement.
Alors je n'ai trouvé que des cartes comme celle en pièce jointe, pas top...
Quelle solution possible ? une "conversion" de l'image en Excel ?
Je n'ai pas de Datamap ou autres

Merci d'avance à tous en ces temps de fêtes !
 

Pièces jointes

  • Allemagne.jpg
    Allemagne.jpg
    33 KB · Affichages: 97

CISCO

XLDnaute Barbatruc
Re : Conversion image/Excel

Bonsoir

Un essai en pièce jointe.

Pour ce qui est de détourer les régions, il suffit de sélectionner la carte, et de la dégrouper. Chaque forme-région est déja nommée (Cf. son nom en haut à gauche).

J'ai mis des couleurs en AW4:AW24, avec format de cellule-->remplissage. Pour vraiment avoir un dégradé de qualité, il faudrait trouver une formule (dépendant de la valeur inscrite dans la cellule) ou positionner des couleurs mieux choisies dans cette colonne AW.
Il y a une petite macro que j'ai trouvé sur le forum qui définit la fonction personnalisé coloreimage utilisée en colonne AV.

@ plus
 

Pièces jointes

  • Germany_REGIONS test.xlsm
    567.8 KB · Affichages: 44
Dernière édition:

flocco

XLDnaute Junior
Re : Conversion image/Excel

Bonjour Cisco,

Merci pour cet essai.
Si je comprends bien il faut que les valeurs de ma colonne soit = à celle dans AW ?
Cela permettrait de répondre au coloriage des formes, yes.
Quid de faire apparaître les valeurs des colonnes dans les formes ? avec distinction de couleur de police ?

Je me permets de mettre en pj un exemple sur la France (Sousou m'avait alors super aidé), j'aimerais appliquer et optimiser le code sur la carte de l'Allemagne et le comprendre :)

Encore merci !
 

Pièces jointes

  • FRANCE_REGIONS_DEIXSYS test 2.xlsm
    108.7 KB · Affichages: 30

CISCO

XLDnaute Barbatruc
Re : Conversion image/Excel

Bonjour
Bonjour Cisco,

Merci pour cet essai.
Si je comprends bien il faut que les valeurs de ma colonne soit = à celle dans AW ?
Cela permettrait de répondre au coloriage des formes, yes.

Encore merci !

J'avais fait une petite erreur dans la formule en colonne AV. Cela ne fonctionnait que si les valeurs en colonne AS se trouvaient dans la colonne AW. Pour corriger ce défaut, il suffit de remplacer le EQUIV(...;...;0) par EQUIV(...;...;1) dans cette colonne AV. Par exemple, 110 renverra la couleur correspondant à 100...

Comme dit dans mon précédent post, cela n'est pas parfait car alors toutes les valeurs de 100 à 199 renverront la couleur correspondant à 100, toutes celles de 200 à 299 renverront celle correspondant à 200 et ainsi de suite. Il faudrait trouver une formule ou une macro donnant directement le dégradé en fonction de la valeur en colonne AS, ce que je ne sais faire.

@ plus
 

CISCO

XLDnaute Barbatruc
Re : Conversion image/Excel

Rebonjour

PS: je ne connais rien au VBA (juste une formation de 4h à mon entreprise il y a 1 mois...)

C'est tout comme pour moi, plusieurs heures de formation en basic et en fortran dans les années 1980, et 0 en VBA... Mais il y a le forum :).

Ceci dit, je pense que cela doit être faisable directement avec ton fichier sur la Fance. Cf. en pièce jointe le début du travail. Pour obtenir celle-ci, j'ai pris ton fichier sur la France, j'y ai collé la carte de l'Allemagne que tu as mise dans un de tes précédents post, et en colonne A les noms des régions allemandes... et hop, c'est fait... Les nombres, pourcentages n'apparaissent pas au bon endroit. Pour corriger cela, il suffit de choisir chaque région, puis de centrer horizontalement et verticalement ces valeurs comme tu le ferais dans Word (Accueil -->Alignement...).

Je ne dis pas que c'est parfait. Entre autre, j'ai vu que le nom Bretagne était marqué dans la macro, dans le module 1, ce qui ne semble pas des plus logiques... Bien sûr, on peut avoir dans la macro, un truc qui s'appelle Bretagne, mais qui ne désigne pas réellement la région Bretagne, mais tout autre chose, les formes en général, une plage de la feuille...

En espérant qu'un VBiste de passage controlera tout cela, et nous expliquera un peu comment cela fonctionne (création du dégradé, positionnement des nombres dans les formes-régions...).

Bonnes fêtes à tous.

@ plus
 

Pièces jointes

  • GERMANYFRANCE_REGIONS_DEIXSYS test 2.xlsm
    566.6 KB · Affichages: 36
Dernière édition:

flocco

XLDnaute Junior
Re : Conversion image/Excel

Bonne année à tous !
En espérant que celle-ci nous apporte toutes les solutions aux problèmes Excel rencontrés ;)
Vivement la bonne âme charitable qui résoudra mes demandes antérieures de ce post....
A bientôt
 

MJ13

XLDnaute Barbatruc
Re : Conversion image/Excel

Re

Il me suffit de changer les min et max et les couleurs de remplissage de cellules, j'adore le résultat !
Pourrais-je abuser et demander les commentaires des modules ? j'essaie vraiment de comprendre...

Oui, y'a pas de soucis. j'ai fait le premier. Pour les autres procédures, c'est le même principe :).

Code:
Sub MAJ_Régions()
Range("Zone").Select 'on sélectionne la plage nommée "Zone"
Application.ScreenUpdating = False 'on désactive les modifications visibles à l'écran
For Each cell In Selection 'pour chaque cellule dans la selection
cell.Select 'sélectionne la cellule
Couleur = ActiveCell.Offset(0, 1).Interior.Color 'la couleur à prendre en compte est la couleur de la cellule en colonne + 1
ActiveSheet.Shapes.Range(Array(ActiveCell.Text)).Select 'On sélectionne la forme du nom de la cellule active
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = Chr(10) & cell & "" & Chr(10) & ActiveCell.Offset(0, 1).Text & Chr(13) & ActiveCell.Offset(0, 2).Text 'on remplit la forme avec le texte
NCar = Len(Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text) 'on teste la longueur du texte de la forme
Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, NCar).ParagraphFormat. _
        Alignment = msoAlignCenter 'on aligne le texte de la forme des caractères 1 à Ncar
        ActiveSheet.Shapes.Range(Array(ActiveCell.Text)).Select 'On sélectionne la forme du nom de la cellule active
With Selection.ShapeRange(1).Fill
        .Visible = msoTrue
        .ForeColor.RGB = Couleur 'on rempli la forme avec la couleur précédemment définie
        .Transparency = 0
        .Solid
    End With
Next
Application.ScreenUpdating = True 'on réactive les modifications visibles à l'écran
[A1].Select 'on sélectionne la cellule A1
End Sub
 

Discussions similaires

Réponses
16
Affichages
671

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz