Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres Planning - Pb "refresh" automatique sur UDF ds plage

zebanx

XLDnaute Accro
Bonjour à tous.

J'utilise un UDF (VCH) qui m'est pratique par la suite (transposition).

Son but est le suivant :
S'il y a un changement de couleurs, on affiche sur les bornes de chaque plage la valeur de référence (colonne A).
Ceci est valable sauf pour la couleur blanche (pas d'information sur ces cellules là).

Actuellement :
Obligation de faire un copier-coller "formule" sur la zone depuis une cellule quelconque contenant la formule.
Une petite vidéo pour visualiser cela sur le lient suivant :


Ce que je cherche à faire :
Lorsqu'on change de couleur, que la cellule contient la formule de cet UDF, que le "refresh" soit automatique.
On pourrait aussi prévoir de lancer un "sub" sur toute la plage mais à ce stade, je préfère imaginer de trouver une solution pour passer par un "refresh" automatique (target).

Ce qui a été essayé
Code VBA (fourni par JOB75 - merci!) enregistré dans "this workbook" pour forcer le recalcul de l'UDF.
Mais la plage ne se met pas à jour comme souhaité.
(IE : changer d'onglet et revenir sur la feuil1, rien ne s'affiche).

Merci beaucoup pour votre aide.
Zebanx

Le code de l'udf
VB:
Function VCH(rng)
'-- Valeur Couleur Hour
'x = cref.Interior.Color
ta = rng.Value
On Error Resume Next
i = Application.Caller.Row
j = Application.Caller.Column
If Cells(i, j).Interior.Color = RGB(255, 255, 255) Then VCH = "": GoTo fin
If Cells(i, j).Interior.Color = RGB(216, 216, 216) Then VCH = "": GoTo fin
If Cells(i, j).Interior.Color <> Cells(i - 1, j).Interior.Color Then
    VCH = ta(i - 1, 1)
    ElseIf Cells(i, j).Interior.Color <> Cells(i + 1, j).Interior.Color Then VCH = ta(i, 1)
    Else: VCH = ""
End If
fin:
End Function
 

Pièces jointes

  • Planning_VCH_target.xlsm
    94.2 KB · Affichages: 8
Solution
Bonjour Zebanx,
Un essai en PJ avec un WorksheetChange.
Vous n'en voulez pas mais cela peut être la solution, à vous de voir, et à tester.
Il suffit de cliquer sur une cellule pour changer la couleur et tout recalculer.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Zebanx,
Un essai en PJ avec un WorksheetChange.
Vous n'en voulez pas mais cela peut être la solution, à vous de voir, et à tester.
Il suffit de cliquer sur une cellule pour changer la couleur et tout recalculer.
 

Pièces jointes

  • Planning_VCH_target.xlsm
    105 KB · Affichages: 8

zebanx

XLDnaute Accro
Bonjour Sylvanu

Déjà merci pour t'être intéressé à ce fil (on peut se tutoyer si ça ne vous dérange pas) et de proposer cette solution.
Il y a plus de couleurs à utiliser mais incontestablement, on va dans le bon sens et la piste me donne envie de travailler sur cette base.

Donc "j'achète".

Bon apm/confinement
zebanx
 

zebanx

XLDnaute Accro
Bonjour Sylvanu, le forum

C'est une autre étape mais il faudra y songer peut-être (parce qu'une application.volatile peut amener parfois quelques soucis si le fichier est disons... chargé).

Pour le moment, l'idée de rafraichissement des formules par simple utilisation de la palette de couleurs me va bien.
Une étape un peu plus développée ci-joint avec des sous-totaux par couleurs. C'est basique mais correspond à mes attentes sur ce fichier pour le moment. Ton code fonctionne très bien avec les indications précises que tu avais indiqué (application.volatile, alea() et le code VBA sur la feuille).

S'agissant de ta question, en fait c'était le code de rafraichissement dans "this workbook" du fichier 1 qui posait problème. Il n'est plus présent dans le fichier.
(Et pourquoi je l'avais utilisé ?. Cf fil joint
)

Encore merci pour ton aide.
Bonne journée
zebanx
 

Pièces jointes

  • Planning_VCH_revu.xlsm
    38 KB · Affichages: 9

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…