OVH Cloud OVH Cloud

barre autocalculate

7 réponses
Avatar
Steph_D
Bonjour à tous,

En cette veille de week-end, je me pose comme d'habitude des questions
métaphysiques, à savoir cette fois-ci, comment ajouter une fonction
personnalisée dans la barre autocalculate. Le but est de me donner le nombre
de lignes visibles suite à un filtre auto dans la barre d'état.

Quand j'attribue à ".OnAction" une sub qui m'affiche par un msgbox le
résultat, cela fonctionne. Mais je préfèrerais avoir directement le résultat
affiché dans la barre, comme les fonctions par défaut.

Merci de me montrer la voie
Steph D.


Sub NouvelleFonction()
With Application.CommandBars("AutoCalculate").Controls.Add
.Caption = "Nombre de lignes visibles (titre exclu)"
.OnAction = CompteLignesVisibles()
End With
End Sub

Function CompteLignesVisibles()
Application.Volatile
CompteLignesVisibles = WorksheetFunction.Subtotal(3, [A:A]) - 1
End Function

7 réponses

Avatar
isabelle
bonjour Steph_D,

Application.StatusBar = Application.CountA(plage)

isabelle

Bonjour à tous,

En cette veille de week-end, je me pose comme d'habitude des questions
métaphysiques, à savoir cette fois-ci, comment ajouter une fonction
personnalisée dans la barre autocalculate. Le but est de me donner le nombre
de lignes visibles suite à un filtre auto dans la barre d'état.

Quand j'attribue à ".OnAction" une sub qui m'affiche par un msgbox le
résultat, cela fonctionne. Mais je préfèrerais avoir directement le résultat
affiché dans la barre, comme les fonctions par défaut.

Merci de me montrer la voie
Steph D.


Sub NouvelleFonction()
With Application.CommandBars("AutoCalculate").Controls.Add
.Caption = "Nombre de lignes visibles (titre exclu)"
.OnAction = CompteLignesVisibles()
End With
End Sub

Function CompteLignesVisibles()
Application.Volatile
CompteLignesVisibles = WorksheetFunction.Subtotal(3, [A:A]) - 1
End Function




Avatar
anonymousA
bonjour,

certes, mais le résultat ne s'affiche pas au même endroit que les fonctions
par défaut de la barre d'outils Autocalculate. Je ne prétends d'ailleurs pas
savoir comment inscrire le résultat souhaité à cet endroit.
Par ailleurs, il faudrait aussi gérer l'effacement de ce qui sera porté dans
la barre d'état par un retour au texte par défaut de la barre d'état en
utilisant un Application.StatusBarúlse, sinon la valeur est maintenue telle
quelle et même empêche Excel de la gérer comme il en a l'habitude.
Du moins c'est ce que je constate sur mon PC avec Excel 2000.

Enfin, comme Steph_D cherche à compter les lignes visibles ( je suppose que
c'est parce que ce nombre disparait une fois que le filtre a été activé une
1ere fois), il vaut mieux qu'il s'en réfère à sa procédure pour arriver à
ses fins sous réserve bien sur que la plage considérée contienne bien quelque
chose pour chacune des cellules.Ceci dit dans la fonction en question,
l'utilité de Volatile ne parait pas évidente.

Qu'en penses-tu ?

Cordialement,

A+


bonjour Steph_D,

Application.StatusBar = Application.CountA(plage)

isabelle

Bonjour à tous,

En cette veille de week-end, je me pose comme d'habitude des questions
métaphysiques, à savoir cette fois-ci, comment ajouter une fonction
personnalisée dans la barre autocalculate. Le but est de me donner le nombre
de lignes visibles suite à un filtre auto dans la barre d'état.

Quand j'attribue à ".OnAction" une sub qui m'affiche par un msgbox le
résultat, cela fonctionne. Mais je préfèrerais avoir directement le résultat
affiché dans la barre, comme les fonctions par défaut.

Merci de me montrer la voie
Steph D.


Sub NouvelleFonction()
With Application.CommandBars("AutoCalculate").Controls.Add
.Caption = "Nombre de lignes visibles (titre exclu)"
.OnAction = CompteLignesVisibles()
End With
End Sub

Function CompteLignesVisibles()
Application.Volatile
CompteLignesVisibles = WorksheetFunction.Subtotal(3, [A:A]) - 1
End Function







Avatar
Steph_D
"anonymousA" a écrit
certes, mais le résultat ne s'affiche pas au même endroit que les
fonctions

par défaut de la barre d'outils Autocalculate.


Oui, c'est pas mal une solution dans la barre d'état, mais j'aurais préféré,
pour l'utilisateur, lui associer tout simplement une fonction dans
"AutoCalculate". Cela me paraissait plus simple et pratique.

Enfin, comme Steph_D cherche à compter les lignes visibles ( je suppose
que

c'est parce que ce nombre disparait une fois que le filtre a été activé
une

1ere fois), il vaut mieux qu'il s'en réfère à sa procédure pour arriver à
ses fins sous réserve bien sur que la plage considérée contienne bien
quelque

chose pour chacune des cellules.Ceci dit dans la fonction en question,
l'utilité de Volatile ne parait pas évidente.


J'avais pensé à utiliser Volatile pour réactualiser, sans action de
l'utilisateur, le résultat de la fonction.
Mais je n'arrive même pas à afficher le résultat en utilisant la Fonction
dans le OnAction, alors qu'une macro avec msgbox le fait très bien.
Peut-être n'est-ce pas possible avec une fonction directement.

Merci pour vos conseils
Steph D.

Avatar
lazade
Bonsoir,

En configuration 'Calcul sur ordre' (Outils > Options > Calcul > Sur ordre),
le nombre de lignes filtrées apparaît à gauche dans la barre d'état.

Bon WE.



Bonjour à tous,

En cette veille de week-end, je me pose comme d'habitude des questions
métaphysiques, à savoir cette fois-ci, comment ajouter une fonction
personnalisée dans la barre autocalculate. Le but est de me donner le nombre
de lignes visibles suite à un filtre auto dans la barre d'état.

Quand j'attribue à ".OnAction" une sub qui m'affiche par un msgbox le
résultat, cela fonctionne. Mais je préfèrerais avoir directement le résultat
affiché dans la barre, comme les fonctions par défaut.

Merci de me montrer la voie
Steph D.


Sub NouvelleFonction()
With Application.CommandBars("AutoCalculate").Controls.Add
..Caption = "Nombre de lignes visibles (titre exclu)"
..OnAction = CompteLignesVisibles()
End With
End Sub

Function CompteLignesVisibles()
Application.Volatile
CompteLignesVisibles = WorksheetFunction.Subtotal(3, [A:A]) - 1
End Function





Avatar
anonymousA
ben , en utilisant une sub sur l'appel de onaction ca marchera mais bien sur
pas une fonction.

A+


"anonymousA" a écrit
certes, mais le résultat ne s'affiche pas au même endroit que les
fonctions

par défaut de la barre d'outils Autocalculate.


Oui, c'est pas mal une solution dans la barre d'état, mais j'aurais préféré,
pour l'utilisateur, lui associer tout simplement une fonction dans
"AutoCalculate". Cela me paraissait plus simple et pratique.

Enfin, comme Steph_D cherche à compter les lignes visibles ( je suppose
que

c'est parce que ce nombre disparait une fois que le filtre a été activé
une

1ere fois), il vaut mieux qu'il s'en réfère à sa procédure pour arriver à
ses fins sous réserve bien sur que la plage considérée contienne bien
quelque

chose pour chacune des cellules.Ceci dit dans la fonction en question,
l'utilité de Volatile ne parait pas évidente.


J'avais pensé à utiliser Volatile pour réactualiser, sans action de
l'utilisateur, le résultat de la fonction.
Mais je n'arrive même pas à afficher le résultat en utilisant la Fonction
dans le OnAction, alors qu'une macro avec msgbox le fait très bien.
Peut-être n'est-ce pas possible avec une fonction directement.

Merci pour vos conseils
Steph D.







Avatar
Steph_D
En configuration 'Calcul sur ordre' (Outils > Options > Calcul > Sur
ordre),

le nombre de lignes filtrées apparaît à gauche dans la barre d'état.



Bonjour,

Merci mais je cherchais surtout à créer des fonctions totalement
paramétrables et facilement utilisables par l'AutoCalculate.

Avatar
Steph_D
;o))) bien dommage que le Sub ne puisse me renvoyer une valeur !
Bonne journée

"anonymousA" a écrit dans le message
de news:
ben , en utilisant une sub sur l'appel de onaction ca marchera mais bien
sur

pas une fonction.

A+


"anonymousA" a écrit
certes, mais le résultat ne s'affiche pas au même endroit que les
fonctions

par défaut de la barre d'outils Autocalculate.


Oui, c'est pas mal une solution dans la barre d'état, mais j'aurais
préféré,


pour l'utilisateur, lui associer tout simplement une fonction dans
"AutoCalculate". Cela me paraissait plus simple et pratique.

Enfin, comme Steph_D cherche à compter les lignes visibles ( je
suppose



que
c'est parce que ce nombre disparait une fois que le filtre a été
activé



une
1ere fois), il vaut mieux qu'il s'en réfère à sa procédure pour
arriver à



ses fins sous réserve bien sur que la plage considérée contienne bien
quelque

chose pour chacune des cellules.Ceci dit dans la fonction en question,
l'utilité de Volatile ne parait pas évidente.


J'avais pensé à utiliser Volatile pour réactualiser, sans action de
l'utilisateur, le résultat de la fonction.
Mais je n'arrive même pas à afficher le résultat en utilisant la
Fonction


dans le OnAction, alors qu'une macro avec msgbox le fait très bien.
Peut-être n'est-ce pas possible avec une fonction directement.

Merci pour vos conseils
Steph D.