XL 2016 Recuperer la valeur d'une cellule pour lancer sa macro

deudecos

XLDnaute Impliqué
Bonjour à toutes et à tous,

Cela fait quelques temps que je n'avais pas eu l'opportunité de vous demander votre aide, alors vu que mes recherches n'ont rien donné de satisfaisant, je me permet de vous poser directement la question.

A partir d'une cellule qui contient le nom d'une macro, je voudrais déclencher cette dernière.
Exemple: en C10 j'ai "Machin" qui correspond au nom d'une macro
à partir d'un USF, je clique sur un bouton qui me lance une recherche dans la colonne "C" afin de trouver "Machin" et me lancer la macro qui va avec... Jusque là vous me suivez ?

En gros j'ai pondu un truc dans le genre:

Dim L As Integer, i As Integer, e As String
L=Sheets("Feuil1") .Range("C65000") .End(XlUp) .Row
For i = 2 To L
If Sheets("Feuil1") .Range("A1")=Sheets("Feuil1").Range("C"& i).Value Then
e = Sheets("Feuil1") .range("C"& i) .Value

Call e 'et c'est là que je pêche... Il me renvoie une erreur : Sub, Function ou Property attendue
End If
Next

Quelqu’un aurait une idée de ce qui ne va pas?
Merci d'avance et bonne journée.
Olivier
 

deudecos

XLDnaute Impliqué
Bonjour Dranreb, le forum,

Merci pour cette réponse, ça fonctionne, mais curieusement pas quand je passe par e... Pour que la macro se lance, je suis obligé de traiter en direct à savoir Application. Run Sheets("Feuil1") .Range("C" & i). Value.
Bizarre non?

Bonne journée.

Olivier
 

deudecos

XLDnaute Impliqué
Désolé, j'ai du aller pousser la neige...
J'aurais aimé joindre mon classeur mais il fait plus de 25 Mo pour le moment et j'avoue n'avoir que peu de temps en ce moment pour tenter de le nettoyer, ce qui me semble fastidieux...
En attendant, je vais continuer à tâtonner...
Bonne soirée

Olivier
 

laurent950

XLDnaute Accro
Bonsoir

VB:
Dim L As Integer
dim i As Integer
' Remplace
' dim e As String
' news
Dim TabNom(0) As String

L=Sheets("Feuil1") .Range("C65000") .End(XlUp) .Row

For i = 2 To L
    If Sheets("Feuil1") .Range("A1")=Sheets("Feuil1").Range("C"& i).Value Then
        ' Remplace
        ' e = Sheets("Feuil1") .range("C"& i) .Value
        ' News
        TabNom(0) = Sheets("Feuil1") .range("C"& i) .Value
'Call e 'et c'est là que je pêche... Il me renvoie une erreur : Sub, Function ou Property attendue
        ' Remplace
        ' Application.Run ActiveCell.Value
        ' news
        Application.Run TabNom(0) ' Ou avec ceci Application.Run (TabNom(0))
    End If
Next

Peut être que cela fonctionne comme cela !

laurent
 

deudecos

XLDnaute Impliqué
Bonjour à tous

Autant pour moi, j'ai trouvé l'erreur qui ne venait pas du lancement de la macro, mais de la référence à la cellule... Je tombais systématiquement sur une cellule vide, donc pas de macro lancée...
Merci à tous et bonne journée.

Olivier
 

Discussions similaires

Réponses
28
Affichages
921