Associer une macro de recherche à une forme

Bonjour à tous et tout d'abord merci d'avance pour les éléments que vous pourriez apporter.

Voilà je suis débutant en macro et j'avoue caler sur la finalisation de mon fichier...

Il y a normalement plus de 20 feuilles dans mon fichier mais pour l'exemple de travail, je vous propose d'exposer ma problématique sur 2 feuilles...

1ère feuille :

une feuille dont le but est d'accueillir un fond de carte et sur lequel je viens superposer des formes géométriques (rectangles, trapèzes..).

Pour les rectangles, il y a des références inscrites dedans type C09.00, C09.01, C09.02 ou C20.00.......pour les trapèzes CM02.03, CM52.00

Chaque figure est donc unique.

2ème feuille :

Elle liste les références des informations avec énormément de références associées : C01.00 vers lesquelles les figures doivent pointer.

Ainsi, j'ai créé avec l'enregistrement macro la macro suivante avec l'idée que lorsque je clique sur la figure désignée, cela me renvoie automatiquement

vers la feuille de données dans laquelle sont inscrites toutes les références en surlignant uniquement celle dont j'ai besoin...

Sub COUP0900()

Sheets("Feuil2").Select

Columns("B:B").Select

Selection.Find(What:="C09.00", After:=ActiveCell, LookIn:=xlFormulas, _

LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _

MatchCase:=False, SearchFormat:=False).Activate

End Sub

Problème :

Lorsque je crée d'autres macros auxquelles j'attribue un nom proche de ma référence type Sub COUP0900 ou Sub COUP0901....il me dit qu'il existe un conflit dans les noms des macros et cela après une dizaine de création de macros... je ne peux donc plus rien faire et tout se met en défaut...."erreur de compilation"

Je ne peux pas travailler autrement (tout repose sur ce type d'organisation) et ne vois vraiment pas comment procéder.

Autre problème de base peut-être, lorsque je veux enregistrer mon fichier il est écrit que "les fonctionnalités suivantes ne peuvent pas être enregistrées dans les classeurs sans macro.....: projet VB

Du coup je suis susceptible de tout perdre

11essai.xlsm (17.25 Ko)

Je vous remercie d'avance pour votre aide. Cordialement,

Bonjour,

Une astuce différente mais qui va, je pense, te faire gagner du temps :

Pourquoi ne pas nommer ta forme avec le nom que tu désires et y associer une macro UNIQUE où c'est le nom de la forme qui est recherché ? Ainsi tu n'auras qu'une macro dans ton classeur et tout se jouera sur la désignation de ta forme dans ta macro avec quelque chose du style Shape.Name dans ton "What" du Vlookup. Je pense que celà est possible et tu n'auras plus 200 macros avec un nom similaire.

forme

En restant à ta dispo pour t'assister.

Bonne journée.

PS : Un fichier avec macro est la plupart du temps enregistré sous format .xlsm, c'est obligatoire il me semble.

Bonjour toutes et tous

trop long ci-joint mdr, je préfère la soluce d'Ergotamine que, je salut en passant

ci-joint

crdlt,

André

Bonjour à tous,

un peu la même idée, mais basée sur le texte du bouton :

Sub cherche(ch As String)
    Dim c As Range
    Sheets("Feuil2").Select
    Set c = Columns("B:B").Find(What:=ch, LookIn:=xlFormulas, LookAt:=xlWhole)
    If c Is Nothing Then
        MsgBox ch & " non trouvé"
    Else
        Application.Goto c, True
    End If
End Sub

Sub COUP0900()
     cherche ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.Text
End Sub

Tous les boutons auront la même ligne de code.
Par ailleurs tu dois rechercher avec LookAt:=xlWhole. Totalité du texte et non xlPart (=contient)
eric

Rechercher des sujets similaires à "associer macro recherche forme"