Code VBA pour Carte interactive

MounirM - 6 févr. 2018 à 16:06 - Dernière réponse : yg_be 4599 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 13 février 2018 Dernière intervention
- 13 févr. 2018 à 17:29
Bonjour,
Pourriez-vous m'aider à résoudre ce problème? le code semble correct, mais il y a un blocage quelque part, car en affectant la macro à une des formes de la carte, et en appuyant dessus une erreur s'affiche. au niveau de la ligne suivante qui s'affiche en jaune [Shape.Fill.ForeColor.RGB = RGB(0, 0, 200)].
Merci d'avance

Option Explicit
'Procédure permettant de rendre interactive la carte géographique
'constituée de zones de textes
'**********************************
Sub CarteInteractive()

'déclaration des variables
Dim NomShape As String
Dim Shape
'propriété Caller : permettre d'afficher la manière dont VB est appelé
NomShape = Application.Caller
'mise en couleur de la carte de Tunisie
For Each Shape In ActiveSheet.Shapes 'pour chacune des formes de la feuille active
Shape.Fill.ForeColor.RGB = RGB(0, 0, 200)
'on applique une couleur bleue à la forme
Next Shape
' on affecte une couleur lorsque la forme est sélectionnée
ActiveSheet.Shapes(NomShape).Fill.ForeColor.RGB = RGB(0, 150, 0) 'couleur verte

End Sub



Afficher la suite 

20 réponses

Répondre au sujet
yg_be 4599 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 13 février 2018 Dernière intervention - 6 févr. 2018 à 22:08
0
Utile
19
bonsoir, "une erreur s'affiche", avec quel message?
yg_be 4599 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 13 février 2018 Dernière intervention > MounirMahmoudi 6 Messages postés mardi 6 février 2018Date d'inscription 9 février 2018 Dernière intervention - 9 févr. 2018 à 17:21
l'instruction "on error resume next" indique que, en cas d'erreur dans la procédure en cours (sub ou function), il faut simplement passer à l'instruction qui suit l'instruction qui cause l'erreur.
cela peut-être utile, ou dangereux, suivant les cas.
si tu sais que tu peux avoir une erreur sur une ligne précise, et que tu veux "négliger" cette erreur, tu peux peut-être mettre "on error resume next" juste avant la ligne en question, et "on error goto 0" juste après. de cette façon, une erreur ailleurs sera traitée normalement (au lieu d'être ignorée).
plus de lecture: http://silkyroad.developpez.com/VBA/GestionErreurs/
Merci pour ces détails utiles et instructifs. Je continuerai alors le reste du programme VBA en espérant que ça ira bien. Toutefois, je voudrais essayer le même code sur un autre PC puisque chez vous ça fonctionne sans problème, donc c'est fort possible que c'est mon PC qui déconne.
Puis-je avoir votre mail ou autre coordonnée pour avoir votre avis une fois mon petit projet achevé? le mien : ***@***
Merci de votre aide.
A+
Mounir
yg_be 4599 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 13 février 2018 Dernière intervention > MounirM - 12 févr. 2018 à 16:56
mieux de commencer une autre sujet sur le forum pour avoir nos avis.
Salut,
Vers la fin de ce bout de programme, à chaque fois que j'enregistre après quelques ajouts, le message suivant s'affiche dans une boite de dialogue :
Attention! certaines parties de votre document peuvent renfermer des informations personnelles qui ne peuvent pas être supprimées par l'inspecteur de document.
avec 2 boutons (ok & annuler)
Quelle pourrait être la cause d'après vous?
Merci.
Mounir
yg_be 4599 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 13 février 2018 Dernière intervention > MounirM - 13 févr. 2018 à 17:29
Commenter la réponse de yg_be