Afficher une couleur sur un département avec une combobox

Bonjour,

Merci de m'aider

Là on clic sur un département, il devient bleu et une userform s'ouvre .

cartegeoff

Ce que j"aimerais:

Je change de numéro dans la ComboBox et le département correspondant devient bleu en effaçant le dernier sélectionné.

Macro récupérée ici.J'ai juste ajouter l'userform et je n'arrive pas à changer de carte car pas compris le fonctionnement.

Si vous avez une idée dans le même principe afin de pouvoir changer cette dernière car par la suite j'aimerais y ajouter certaines villes?

Merci beaucoup

Ge0ffroy

26carte-ge0ffroy.zip (1.02 Mo)

Bonjour Ge0ffroy,

En retour le fichier carte de France.

Finir de remplir les données dans la carte Départements car sinon certaines ne ressortiront pas dans les TextBox.

Il manque environ 80 départements à renseigner.

18carte-ge0ffmod.xlsm (105.49 Ko)

A nouveau,

Note que les 2 départements de la Corse, s'ils existent sur le tableau, sont absents de la carte!

Ensuite, corriger sur la macro du ComboBox.change la ligne de code ActiveSheet comme ci-dessous.

Private Sub ComboBox1_Change()
Dim tbl()
Dim ligE As Long
ActiveSheet.Shapes("Dpt" & Right("0" & [A1], 2)).Fill.ForeColor.SchemeColor = 1

Bonjour X Cellus

oui la Corse je l'ai supprimé

80 départements manquants, entrain de saisir mais parfois j'ai une idée et change ou essaye de mettre de nouveaux codes

Mais j'ai un petit problème:

1er clic ok on change dans la combo ok

je quitte puis

2ème clic inactif impossible d'ouvrir l'userform,

il affiche juste le dernier département contenu de A1, (si je supprime le contenu de cette cellule , je peux cliquer)


( Pour la combo, c'est juste cette ligne? )

If Range("A1") < 1 Then UserForm2.Show: Call ColorierDepts

j'avais mis les N° en Texte j'ai remis en Nombre

Bon WE

Ge0ffroy

Suite,

Rajouter une ligne au bouton qui ferme le formulaire.

Range("A1") = 0
Unload Me
'Il manquait la ligne Range sur le fichier posté 

En fait à l'ouverture du fichier, voir le workbook_open. La cellule A1 est à 0.

Ce qui fait que le formulaire peut se lancer. Une fois qu'il est affiché, le fait que la cellule A1 est supérieur à 0, cela évite qu'il soit à nouveau ouvert.

Mais effectivement, si tu le fermes, il faut que A1 revienne à 0 pour l'ouvrir à nouveau.

Mais tu n'as pas besoin de le fermer après chaque changement du combo dpt.

voir le workbook_open. La cellule A1 est à 0.

c'est OK

mais ça ne change pas les textbox

je change dans la combo --> ok pour la carte

mais pas ok pour les textBox

ça plante si j'efface le contenu de la combo

mais je ne trouve pas pourquoi les textbox ne s'affichent plus?

merci

A nouveau,

Je te renvoie le fichier avec la correction faite sur le bouton de commande Quitter.

22carte-ge0ffmod2.xlsm (105.67 Ko)

Note que le combo doit toujours être renseigné par la valeur d'un département.

Les textbox sont remplis si dans la feuille Départements il y a les infos dans les colonnes cibles.

Ok

merci beaucoup

mais c'est quelle ligne qui empêchait l'affichage des TextBox ou quel code fallait ajouter?

j'ai beau chercher , à part cette ligne

'tbl = Sheets("Départements").Cells(ligE, 1).Resize(1, 7).Value

Je ne trouve pas ce que tu as changé pour que ça fonctionne

bonne soirée

@bientôt

Bonsoir,

Peux-tu m'expliquer, si tu as un peu de temps, cette ligne?

  numero = Mid(Application.Caller, 4)

J'ai comme un blocage

parfois j'ai erreur 13

pas sur ton dernier fichier , c'est

merci

Ge0ffroy

Suite,

mais c'est quelle ligne qui empêchait l'affichage des TextBox ou quel code fallait ajouter?

En fait tu affichais bien les TextBox mais avec du vide. C'est d'ailleurs au début ce que je ne comprenais pas car les premiers départements répondaient convenablement mais pas les autres. Je pensais que toutes les colonnes était remplies dans la feuille 2. C'est lorsque j'ai vérifié cette feuille que j'ai compris que tu m'avais joué un tour.

Pour cette ligne

  numero = Mid(Application.Caller, 4)

le numero est la variable qui reçoit une valeur numérique (byte) qui représente les codes court (2 chiffres) des départements.

Application.Caller va ressortir le nom de la forme qui a été cliqué. Exemple: pour la forme Dpt62 (faire clic droit) sur celle-ci. Il donnera Dpt62

Enfin Mid est en VBA la formule Stxt du menu général d'Excel. Bien que cette dernière, si tu l'insères par exemple en J3 de la feuille Départements il faudra écrire

=STXT(DépartementFrançais[@Dessin];4;2). Sinon tu auras une erreur, si tu oublies le 2. Cela signifie en colonne A, prendre à partir du 4ième caractère (inclus) deux caractères.

A contrario en VBA Mid renverra à partir du 4ième caractère inclus tout ce qu'il y a après. Et comme ici il n'existe que 2 chiffres pour toutes les formes.

On aurait pu écrire aussi en VBA

numero = Right(Application.caller, 2)

Merci

très sympa

Super j'ai beaucoup moins mal à la tête

bon dimanche

Bonjour X Cellus,

2 questions:

 numero = Mid(Application.Caller, 4)

1-Peut-on remplacer cette ligne avec code semblable mais en AlphaNumérique ?

2- Peut-on récuperer la référence de la cellule ="Quimper" et l'afficher dans userform?

quimper

Merci

Bon Dimanche

avec le soleil ou la pluie ?

Ge0ffroy

Bonjour Ge0ffroy,

1-Peut-on remplacer cette ligne avec code semblable mais en AlphaNumérique ?

On peut toujours tous avec Excel, sauf exceptions (au cas où BrunoM45 verrait le message)

Tu peux m'envoyer mon dernier fichier posté CarteGe0ffMod2 mais en y ajoutant les deux formes départements de la Corse.

Car je ne n'en dispose pas sur le fichier d'origine ou tu l'as supprimé.

2- Peut-on récuperer la référence de la cellule ="Quimper" et l'afficher dans userform?

Cela dépend comment est cette référence, une forme (un point sans doute) ou une inscription dans une cellule sous le département.

Si c'est une forme, elle doit toujours être au dessus de la forme du département et dans un colori différent que le bleu ou le blanc.

Bonjour,

petit cercle bleu (mince , pourtant ça fonctionne, je dois changer la couleur?)

puis j'ai ajouté une info Bulle avec le même nom.

Sur chaque ville, info bulle + nom du cercle

Là je n'ai mis qu'un cercle car j'ai changer de carte...

Merci

Ge0ffroy

re

Bonne soirée

Geoffroy

A nouveau,

En retour le fichier avec les 2 départements de Corse.

La colonne I permettant le traitement des alphanumériques.

Voir les modifications sur les différentes macros cibles. Je simplifierais le code plus tard.

C'est fonctionnel aussi bien en clic sur la carte que par le combo du formulaire.

Bonjour,

Les départements sont nommés DPT22 par exemple,

Comment as-t-il fait (celui qui a créé cette macro) pour nommer ces départements ?

si je valide avec ce nom je vais directe en Ligne 22 colonne DPT.

Cela dépend comment est cette référence, une forme (un point sans doute) ou une inscription dans une cellule sous le département.

Si c'est une forme, elle doit toujours être au dessus de la forme du département et dans un colori différent que le bleu ou le blanc.

C'est un petit cercle bleu mais je viens de changer de couleur rouge

Comment insérer ce nom "quimper" (de chaque ville) dans userform?

merci

Geoffroy

Bonsoir Ge0ffroy,

Comment as-t-il fait (celui qui a créé cette macro) pour nommer ces départements ?

Excel donne automatiquement un numéro (croissant) à chaque type de forme.

Si l'on veut nommer autrement une forme on peut par clic droit sur la forme puis Format de la Forme (menu d'Excel) puis Volet Sélection, lui choisir un nom.

image

On peut aussi changer le nom d'une forme par VBA. Exemple, le Dpt10 sera nommé Aube. Par:

ActiveSheet.Shapes("Dpt10").Name = "Aube"
image image

Comment insérer ce nom "quimper" (de chaque ville) dans userform?

Il est déjà possible d'automatiser le placement des noms des préfectures sur la carte.

image

Par le code ci-dessous: avec la possibilité d'utiliser la colonne K pour le placement sur la forme et la colonne L pour la préfecture.

Attention seulement aux dpts Corse.

Sub TextForme()
'Note: Ici le texte Quimper sera placé au bas de la forme grâce à TwoLine
Dim OneLine, TwoLine As String
'Trois possibilités: Placemennt par défaut du texte en haut de la forme
'Oneline = texte au milieu de la forme. TwoLine = texte au bas de la forme
OneLine = "" & Chr(13)
TwoLine = "" & Chr(13) & "" & Chr(13)
'Placement du texte, couleur, taille, position left et alignement. Important, pour Excel 2007 changer TextFrame2 par TextFrame.
With ActiveSheet.Shapes("Dpt29").TextFrame2.TextRange.Characters
.Text = TwoLine & "Quimper" 'ou Range("K & N°Dpt + 2) & Range("L" & N°Dpt + 2)
.Font.Fill.ForeColor.RGB = RGB(255, 0, 0)
.Font.Size = 8
.ParagraphFormat.FirstLineIndent = 3
.ParagraphFormat.Alignment = msoAlignCenter
End With
End Sub
image

Si tu souhaites afficher dans le formulaire la préfecture, il faudra ajouter un contrôle TextBox. Et faire référence à la ligne de la colonne L (ici 31 pour le dpt 29)

J'ai réalisé le code pour les dernières versions d'Excel. Je regarderais mieux demain soir pour Excel 2007.

Bonjour X Cellus,

Respect

Merci beaucoup d'avoir passer du temps pour me donner toutes ces infos bien précises

Pour les formes j'avais vraiment galéré

Tu es vraiment très sympa

je vais de suite essayer tous ces codes

J'ai remarqué aussi qu'on ne peut pas mettre un lien-Hypertexte(info-bulle) et une macro.

c'est soit l'un ou l'autre, c'est bien ça?


Si tu souhaites afficher dans le formulaire la préfecture, il faudra ajouter un contrôle TextBox. Et faire référence à la ligne de la colonne L (ici 31 pour le dpt 29)

C'est fait TextBox5


Quand je viens sur une ville:

Je clic ou double clic

Une userform s'ouvre et affiche la ville plus quelques renseignement.

Seulement j'aimerais ajouter qu'un seul userform pour toutes les villes que j'installe.

Donc j'avais pensais à une formule qui récupère le nom de chaque ville.

.Est-ce possible? non, plutôt,

c'est possible mais comment?

Encore merci pout tout


Petite anomalie que j'ai trouvé

Avec ComboBox tout OK

Avec la souris: Si tu clic sur département 16 c'est le 17 qui s'affiche.

pas trouvé pourquoi?

Bonne semaine

Ge0ffroy

Rechercher des sujets similaires à "afficher couleur departement combobox"