executer une macro à partir d'une procédure

Taebo

XLDnaute Nouveau
Bonjour!

J'ai un problème avec une macro que je veux faire démarer depuis une procédure. L'idée est simple: J'enregistre une macro pendant que je remplis des cellules. La macro enregistre et quand je l'exécute elle me re-rempli les cellules. Jusque là, je suis content ;-)

Mais après je fais une liste déroulante et je crée une procédure qui me dis: Dès que la cellule avec la liste indique telle valeur, alors rempli les cellules, respectivement execute la macro expliquée plus haut.

Voilà ma procédure: (la macro s'appelle Operationsablauf_1_Werkzeug_1_Maschine_1_Oberfläschenqualität je sais c'est la langue à tonton...)

Sub Worksheet_Change(ByVal Target As Range)

If Range("c158") = "w" Then
Operationsablauf_1_Werkzeug_1_Maschine_1_Oberfläschenqualität
End If

End Sub


et voilà la macro (simplifiée pour une cellule, normalement il y a toute une ribambelle de valeur, de chamgement de couleur, etc):

Sub Operationsablauf_1_Werkzeug_1_Maschine_1_Oberfläschenqualität()

Range("C165").Select
ActiveCell.FormulaR1C1 = "Hauptphase 2"

End Sub


Mon ordi me bloque après si je veux modifier la/les cellule(s) qui se sont remplies. Je crois que la macro se re-execute. Comment faire pour qu'elle se remplisse comme si on avait simplement écrit dedans et basta? Sans que la macro se redéclenche.

Je sais j'explique pas super :(

Merci d'avance à celui/celle qui peut m'aider.

Taebo

P.S Si jamais vous avez aussi des idées pour me simplifier la vie, genre des formules plus basiques qui font tout ça, je prends tout! Suis novice!
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : executer une macro à partir d'une procédure

Bonjour Taebo

je ne sais pas si je pourrais t'aider, mais un petit fichier en pièce jointe, sans données confidentielles, avec codes et résultat attendu, nous permettrait plus facilement d'essayer de t'apporter une solution.

bon après midi
@+
 

Cousinhub

XLDnaute Barbatruc
Re : executer une macro à partir d'une procédure

Bonjour
salut pierrot :)

d'après ce que j'ai compris :

Code:
Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$158" And Target = "w" Then
Operationsablauf_1_Werkzeug_1_Maschine_1_Oberfläsc henqualität
End If

End Sub

tu peux aussi utiliser la propriété Application.EnableEvents, mais prudence....
 

Discussions similaires

Réponses
26
Affichages
352

Statistiques des forums

Discussions
312 023
Messages
2 084 713
Membres
102 637
dernier inscrit
TOTO33000