Macro mise à jour auto valeur par cellule?

  • Initiateur de la discussion Initiateur de la discussion Jema
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jema

XLDnaute Nouveau
Bonjour,
j'ai une fonction qui fonctionne très bien :
"""
Function ValColonneCm()
ValColonneCm = Format(Selection.ColumnWidth / 4.663, "0.000")
End Function
"""
Elle affiche la taille, en cm, de la colonne de la cellule où elle est exécutée. (la cellule contient donc sa largeur)

Le problème c'est que cette fonction ne se met pas à jour automatiquement quand je change la taille de la colonne, je suis obligé de rentré dans la cellule, faire F2 puis ENTER. Ce qui, vu le nombre d'ajustements que je dois faire, me faire perdre beaucoup de temps.

J'ai tenté un :
"""
Application.Volatile
"""
En début de fonction, ca fonctionne déjà mieux (toutes les fonctions se mettent à jour au lieu d'une seule quand je fais la même manipulation) Sauf que la valeur n'est calculée qu'une seule fois et qu'elle est donc affichée partout pareil.
Exemple une colonne de 4cm, une de 2 et une de 6, je fais F2 puis ENTER sur celle de 6cm et, dans toutes les colonnes, serra affiché 6cm.

Cette fréquence de rafraîchissement des informations me suffirait si c'était calculé correctement donc si quelqu'un a une idée pour que j'ai les bonnes informations qui s'affichent au lieu de tout le temps la même, je suis preneur.
Cependant l'idéal serrait que cette information soit mise à jour automatiquement à chaque modification de taille de colonne.

Merci d'avance pour votre aide. 🙂

Jema
 
Dernière édition:
Re : Macro mise à jour auto valeur par cellule?

Bonjour Jema,

A priori je dirais qu'il faut préciser la plage concernée, modifies peut être ainsi :

Code:
Function ValColonneCm(maplage As Range)
Application.Volatile
ValColonneCm = Format(maplage.ColumnWidth / 4.663, "0.000")
End Function

bonne journée
@+
 
Re : Macro mise à jour auto valeur par cellule?

Super ca marche. Il suffit juste de rajouter les coordonnées de la cellule à l'appel de la fonction, donc les coordonnées de la cellule où se trouve la fonction, je trouve ca bizarre mais ca marche parfaitement. 🙂

Merci beaucoup!

Jema
 
Re : Macro mise à jour auto valeur par cellule?

Ah! Quelqu'un vient de me proposer ceci :

"""
Public Function LgColonne()
Application.Volatile
LgColonne = Format(Application.Caller.ColumnWidth / 4.663, "0.000")
End Function
"""

J'aurai donc appris deux choses très intéressante aujourd'hui.

Encore merci à Pierrot93 pour sa solution et merci également à lermite222 pour celle-ci.

Jema
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
24
Affichages
2 K
Réponses
21
Affichages
2 K
Retour