|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
|
Invité de passage
![]() Administrateur de base de données Inscription : avril 2012 Messages : 1 ![]() |
Article très utile.
J'ajoute ma pierre à l'édifice en joignant un fichier réalisé à partir d'une carte monde au format SVG qui pourra je l'espère servir à d'autres. Quelques petites restrictions cependant : - certains petits pays ou territoires ne sont pas recensés sur la carte initiale et donc non présent dans les formes libres, - certains pays sont ont été générés en plusieurs formes donc j'ai ajouté un indice après le nom des pays en question (par exemple la France génère deux formes libres : une pour la métropole et une autre pour la Corse appelées France1 et France 2; Autre exemple, le Canada génère à lui seul plus de 20 formes). Bonnes cartographies |
|
|
00
|
|
|
#22 |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Merci audalice (et SkyCorp même si ta contribution date un peu
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
00
|
|
|
#23 | ||||
|
Invité de passage
![]() Inscription : août 2012 Messages : 1 ![]() |
Bonjour,
Je souhaite adapter la méthode proposée dans le tutorial pour dessiner les cartes à partir de coordonnées de points uniquement. Par exemple celle ci : http://commons.wikimedia.org/wiki/Fi...h_Communes.svg qui est définie par le code ci-dessous (un bout seulement) : Code :
J'ai repris les coordonnées dans ma feuille de calcul comme ceci : ![]() J'ai donc touché au code initial mais j'ai une erreur sur ConvertToShape... (erreur définie par l'application ou par l'objet). Cela plante à la ligne 61 du code ci dessous. Code :
Quelqu'un saurait pourquoi ? Merci d'avance! |
||||
|
|
00
|
|
|
#24 |
|
Invité de passage
![]() Inscription : janvier 2013 Messages : 1 ![]() |
Bonjour, est ce que ce script mis plus haut fonctionne avec excel 2000?? parce que j'ai essayé d'appliquer la méthode avec un dessin dans inskape de 7 formes et cela fait planter excel qui ne fait que tourner en boucle. Si quelqu'un a déjà essayer sur excel 2000?
|
|
|
00
|
|
|
#25 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 10 ![]() |
Bonjour,
merci pour ce fil très intéressant, notamment pour la carte multi couleurs. J'avais fait un premier essai avec un nombre de classes variables, reste la coloration. Il me reste à définir comment passer d'une échelle fixe de 15 couleurs à une échelle variable (de 5 à 15 classes), en fonction de l'échantillon. Mais ceci est une autre histoire. Ce qui m'amène, c'est la conversion d'une carte que j'ai retravaillée sous Inscape, intégrant les DOM. Comme dans le message précédent, le traitement se plante, en raison du codage SVG retenu dans Inscape. Je m'explique : quand une série de commandes est continue, le tableau de valeurs ne comprend que la commande initiale suivie du couple de valeurs. Un exemple : Code :
m 517.76892 448.70596 -2.84 1.91 0.39 1.88 1.51 1.91 -1.69 1.3 0.76 1.51 -1.15 1.33 v 1.69 l 1.91 1.73 v 2.63 l -1.15 2.45 -1.3 0.57 -1.51 -2.09 -2.66 0.21 -0.58 -0.39 h -2.27 l -2.06 1.91 -0.79 3.21 -4.9 0.94 -3.78 3.21 -0.76 2.09 -1.88 -0.18 -0.97 -1.15 -0.54 3.24 -1.33 0.54 -0.39 3.03 0.57 1.33 -2.09 1.51 -0.57 1.51 2.12 0.39 0.36 1.03 h 3.75 l 1.03 0.67 2.75 -0.51 1.18 0.7 -0.51 0.85 1.88 2.57 h 3.6 l 0.88 2.57 h 2.54 l -0.15 1.54 2.06 2.57 1.03 0.51 1.36 0.85 v 3.27 l 1.03 0.85 h 2.06 l 0.51 0.85 0.33 4.63 1.21 0.85 -0.51 0.7 0.33 2.72 3.93 -0.15 3.3 -2.18 -0.12 -5.6 4.54 -6.42 v -10.59 l -1.88 -3.6 -0.57 -11.35 -1.33 -2.09 -2.45 -1.88 -0.39 -7.02 1.15 -3.21 -1.51 -5.11 -0.94 -4.15 -0.79 -1.15 -1.71 -0.94 z Je réfléchis donc à une amélioration du traitement pour traiter ce cas, en intégrant en plus les H (ligne horizontale) et les V (ligne verticale). Comme je sèche un peu Encore merci. |
|
|
00
|
|
|
#26 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 10 ![]() |
Bonjour,
Le traitement a avancé. Par rapport au traitement initial proposé dans ce fil de discussion, je vous propose la version suivante : Code :
le * 100 ne change en rien par rapport à * 10. J'ai intégré les commandes multiples c'est à dire : La première commande est M qui définit le point de départ. Quand plusieurs commandes M se suivent, les commandes suivantes doivent s'interpréter comme des commandes L. J'ai intégré les commandes H (déplacement horizontal et V déplacement vertical), relatives au dernier point X ou Y en fonction du cas. J'ai séparé en deux feuilles Département et Carte. Le fichier SVG que j'ai créé est en points relatifs. Cela m'a posé pas mal de problèmes. Pour transformer un fichier SVG en points relatifs en fichiers en points absolus, il est nécessaire de modifier l'option Sortie SVG de Inscape et de décocher "Autorise les coordonnées relatives". Pour que votre fichier courant passe en coordonnées absolues, il est nécessaire de sélectionner l'ensemble du dessin (CTRL + A) puis de le déplacer eg. haut, bas, droite, gauche avant de le sauvegarder. Par contre j'obtiens plusieurs aléatoires : parfois, le dessin de la Corse (exemple) n'est pas "bouclé". En fonction des essais, certains départements sont en bleu, d'autres en blanc, d'autres en transparent. Enfin, j'obtiens systématiquement une erreur sur la ligne 2102 (dernière itération : mes données vont de 101 à 201. La ligne "With oMap.Shapes.Range(lShapeRange).Group" ne s'exécute jamais, en cause de ma gestion des erreurs aléatoire certainement ! Si vous le souhaitez, je peux mettre à disposition mon fichier xlsm. Je veux bien amender le tuto proposé pour le faire évoluer. J'ai laissé tomber temporairement la version en déplacement relatif. Ce sera pour une prochaine fois. Par rapport à la carte multi couleurs, si quelqu'un peut m'aiguiller pour créer un gradient de couleurs variable en fonction du nombre de classes, je le remercie par avance. La carte finale est relativement éloignée de la carte d'inscape : les départements ont une forme sensiblement différents pour certains. La Seine Maritime, bien que correctement définie chevauche l'Oise et la Somme. A replacer à la fin du traitement. Je me propose de faire évoluer la carte multicolore pour y intégrer plus de variables. A bientôt merci TGM |
||
|
|
00
|
|
|
#27 | ||||
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Bonjour,
Effectivement, le tutoriel a été simplifié au maximum et ne donne pas le code pour gérer toute la spécification SVG. Pour les bugs, vous pouvez joindre le classeur ou juste le svg à la discussion (bouton "gérer les pièce-jointes" lors de l'écriture d'un message). Pour le dégradé, il faut passer en couleur HLS (teintes / luminance / saturation) pour appliquer un pourcentage entre les deux couleurs du dégradé : Code à mettre dans un module standard :
La fonction de test suivante coloe les 100 premières cellules d'une feuille avec un dégradé du jaune vers le bleu : Code :
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
||||
|
|
00
|
|
|
#28 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 10 ![]() |
Bonjour,
Merci pour votre réponse. Je teste la partie couleur dès que possible. Vous trouverez ci joint le fichier courant pour la génération des cartes. la carte générée est légèrement différente de celle créée avec Inscape, certaines limites de département laissant des vides ou se chevauchant. Cela vient certainement des coordonnées de points avec des valeurs au millième ... Les onglets sont les suivants : Departements contient les coordonnées en relatif Departements2 contient les coordonnées en absolu Carte est l'onglet recevant la CarteOK est la carte légèrement remaniée à la main (limites de département, repositionnement de la Seine Maritime) J'ai renommé le fichier en XLS. Pour une utilisation avec les macro dans excel 2010, il doit être de type xlsm. J'ai fait un essai avec 2003 (j'ai les deux version) mais j'ai abandonné en cours de route ... A votre disposition Cordialement |
|
|
00
|
|
|
#29 |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Re,
Pour les petits décalages : il ne faut pas utiliser Val sur les variables lLastX et lLastY (qui pourraient d'ailleurs être définies en Single : Code :
Dim lLastX As Single, lLastY As Single Val est utilisée pour transformer les données du svg du format texte vers du numérique. Appliquer Val une deuxième fois retire la partie décimale (car Val s'applique sur du texte et ces variables sont des nombres ; donc par exemple un nombre 456.123 est transformé en texte 456,123, puis Val s'arrête à la virgule...). Dans les AddNodes utilisant ces variables (pour les types V et H), remplacer : par Idem pour lLastX. C'est ensuite beaucoup mieux , les contours des départements se superposent bien. Pour la Seine Maritime, voir dans le svg s'il n'y a pas une transformation de défini pour le chemin de ce département. Et pour la gestion d'erreurs : http://silkyroad.developpez.com/VBA/...nErreurs/#LIII
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
00
|
|
|
#30 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 10 ![]() |
Effectivement, c'est beaucoup mieux ... même s'il reste quelques petites zouzouilles. J'avais fait le test en remplaçant tous les val(xxx*10) par les variables idoines. je regarderai si je peux encore améliorer le résultat, notamment en regardant de plus près mon fichier svg. Concernant la Seine Maritime elle semble bien positionnée. Si ça continue, je vais passer à la tortue logo ...
Par contre, je ne comprends pas l'erreur sur la dernière ligne (dernière itération + 1). merci |
|
|
00
|
|
|
#31 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 10 ![]() |
Pour l'erreur, c'est OK ... il manque l'exit sub !
Je ne suis pas très doué en VBA ... j'ai ajouté dans la carte St Pierre et Miquelon ... pour le moment surtout Miquelon ! Je vous tiens au courant de la suite. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com