Macro mise à jour auto valeur par cellule?
Résolu
jemakaku
Messages postés
11
Statut
Membre
-
jemakaku Messages postés 11 Statut Membre -
jemakaku Messages postés 11 Statut Membre -
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
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
A voir également:
- Macro mise à jour auto valeur par cellule?
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Mise à jour libre office - Accueil - Bureautique
- Mise a jour kindle - Guide
3 réponses
Bonjour,
Normale que tu ai toujours la même largeur vu que tu travaille sur la sélection, faut faire..
Et après avoir changer une ou plusieurs largeurs tu tape F9 pour forcer un recalcul.
A+
Normale que tu ai toujours la même largeur vu que tu travaille sur la sélection, faut faire..
Public Function LgColonne()
Application.Volatile
LgColonne = Format(Application.Caller.ColumnWidth / 4.663, "0.000")
End Function
Et après avoir changer une ou plusieurs largeurs tu tape F9 pour forcer un recalcul.
A+
Merci à Pierrot93 sur un autre forum pour sa réponse. (question de rapidité! ;-) )
Je poste pour ceux que ca intéresse.
La fonction devient :
"""
Function ValColonneCm(maplage As Range)
Application.Volatile
ValColonneCm = Format(maplage.ColumnWidth / 4.663, "0.000")
End Function
"""
et pour l'appel, ce n'est plus simplement "=ValColonneCm()" mais "=ValColonneCm(A1)" (A1 représente les coordonnées de la cellule où se trouve la fonction)
Jema
Je poste pour ceux que ca intéresse.
La fonction devient :
"""
Function ValColonneCm(maplage As Range)
Application.Volatile
ValColonneCm = Format(maplage.ColumnWidth / 4.663, "0.000")
End Function
"""
et pour l'appel, ce n'est plus simplement "=ValColonneCm()" mais "=ValColonneCm(A1)" (A1 représente les coordonnées de la cellule où se trouve la fonction)
Jema