Bonjour,
je commence mon apprentissage en VBA et je me heurte à un problème depuis quelques jours.
Je souhaite changer dynamiquement la mise en forme d'une cellule selon le contenu d'une autre.
J'ai commencé une macro qui inscrit une formule dans la cellule (my_lign + 21, my_coll).
Cette formule vérifie le contenu de la cellule (my_lign + 4, my_coll), si ce contenu est égal à une valeur elle lance la fonction hachure() qui hachure la cellule (my_lign + 21, my_coll), sinon elle lance la fonction nettoie() qui vide cette même cellule.
Soit la ligne:
J'accède effectivement bien à mes fonctions, et si je change plusieurs fois le contenu de la cellule my_lign+4, les fonctions hachure() et nettoie() sont bien lancés plusieurs fois car les msgbox apparaissent bien. Le problème c'est qu'à l'intérieur de mes fonctions je ne peux quasi rien faire, je peux juste lancer une MsgBox et changer la valeur de ma cellule en faisant par exemple nettoie="tralala". Impossible de faire par exemple Cells(34,53) = 45 ou encore hachure.Interior.Pattern = xlUp
Code : Sélectionner tout - Visualiser dans une fenêtre à part Cells(my_lign + 21, my_coll).Formula = "=SI(" & Cells(my_lign + 4, my_coll).Address(RowAbsolute:=False, ColumnAbsolute:=False) & "=""SMS"",hachure(),nettoie())"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Public Function hachure() hachure = "" ' vide bien la case MsgBox "hachure" ' affiche bien une box avec le message hachure.Interior.Pattern = xlUp 'ne fait rien MsgBox "fin" ' n'apparait même pas End Function
Partager