Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recuperer la valeur somme de la barre d'état en bas a droite en VBA

14 réponses
Avatar
TTL76
Bonsoir a tous,

Y a t il des courageux qui fuient la torpeur des plages pour m'aider à
répondre a ces question :
Peux t on recuperer par VBA la valeur de la somme ou comptage cellule
ou....... qui s'affiche dans la barre d'etat en bas a droite ?
Peut t on selectionner le menu contextuel et choisir ce qui sera affiché si
oui comment?

Merci de votre aide,

Bien Cordialement,

10 réponses

1 2
Avatar
Jacky
Bonsoir,

Recuperer les valeurs inscrites dans la barre, je ne sais pas si c'est
possible.
Mais si j'ai bien compris, l'équivalent en vba serait
'----------
MsgBox Application.CountA(Selection)
MsgBox Application.Sum(Selection)

--
Salutations
JJ


"TTL76" a écrit dans le message de news:

Bonsoir a tous,

Y a t il des courageux qui fuient la torpeur des plages pour m'aider à
répondre a ces question :
Peux t on recuperer par VBA la valeur de la somme ou comptage cellule
ou....... qui s'affiche dans la barre d'etat en bas a droite ?
Peut t on selectionner le menu contextuel et choisir ce qui sera affiché
si oui comment?

Merci de votre aide,

Bien Cordialement,










Avatar
Modeste
Bonsour® Jacky avec ferveur ;o))) vous nous disiez :

Recuperer les valeurs inscrites dans la barre, je ne sais pas si c'est
possible.
Mais si j'ai bien compris...


../..
;o)))
????? c'est pas certain ...

l'équivalent en vba serait plutôt du genre
MsgBox Application.SubTotal(N° de Fonction, Plage)

voir l'aide-en ligne F1
pour la fonction SOUS.TOTAL
- no_fonction représente le nombre compris entre 1 et 11 indiquant quelle fonction utiliser pour calculer les sous-totaux d'une liste.
- La fonction SOUS.TOTAL ne prend pas en compte les lignes masquées suite à un filtrage.
Le sous-total ne porte que sur les données visibles résultant du filtrage d'une liste.

@+
Avatar
TTL76
Bonjour,
Merci a vous deux pour ces réponses, mais je constate que c'est pas gagné!
Mon besoin est : l'utilisateur selectionne une zone variable
(lignes+colonnes) par selection click gauche, sans relacher le MsgBox doit
s'afficher le nombre de cellules selectionnées * constante comme le fait le
resultat de la barre d'état.

Pas d'autre idée ??

Merci pour votre aide

Cordialement,



"Modeste" a écrit dans le message de news:

Bonsour® Jacky avec ferveur ;o))) vous nous disiez :

Recuperer les valeurs inscrites dans la barre, je ne sais pas si c'est
possible.
Mais si j'ai bien compris...


../..
;o)))
????? c'est pas certain ...

l'équivalent en vba serait plutôt du genre
MsgBox Application.SubTotal(N° de Fonction, Plage)

voir l'aide-en ligne F1
pour la fonction SOUS.TOTAL
- no_fonction représente le nombre compris entre 1 et 11 indiquant quelle
fonction utiliser pour calculer les sous-totaux d'une liste.
- La fonction SOUS.TOTAL ne prend pas en compte les lignes masquées suite à
un filtrage.
Le sous-total ne porte que sur les données visibles résultant du filtrage
d'une liste.

@+
Avatar
Jacky
Bonjour Modeste

l'équivalent en vba serait plutôt du genre
MsgBox Application.SubTotal(N° de Fonction, Plage)



Qu'est-ce qui permet cette affirmation ???
MsgBox Application.Subtotal(109, Selection)
plutôt que
MsgBox Application.Sum(Selection)

Dans la barre il y à bien.....
Somme=résultat
--
Salutations
JJ


"Modeste" a écrit dans le message de news:

Bonsour® Jacky avec ferveur ;o))) vous nous disiez :

Recuperer les valeurs inscrites dans la barre, je ne sais pas si c'est
possible.
Mais si j'ai bien compris...


../..
;o)))
????? c'est pas certain ...

l'équivalent en vba serait plutôt du genre
MsgBox Application.SubTotal(N° de Fonction, Plage)

voir l'aide-en ligne F1
pour la fonction SOUS.TOTAL
- no_fonction représente le nombre compris entre 1 et 11 indiquant quelle
fonction utiliser pour calculer les sous-totaux d'une liste.
- La fonction SOUS.TOTAL ne prend pas en compte les lignes masquées suite à
un filtrage.
Le sous-total ne porte que sur les données visibles résultant du filtrage
d'une liste.

@+
Avatar
Modeste
Bonsour® TTL76 avec ferveur ;o))) vous nous disiez :

Merci a vous deux pour ces réponses, mais je constate que c'est pas
gagné! Mon besoin est : l'utilisateur selectionne une zone variable
(lignes+colonnes) par selection click gauche, sans relacher le MsgBox
doit s'afficher le nombre de cellules selectionnées * constante comme
le fait le resultat de la barre d'état.



;o)))
le click gauche étant le click de sélection par défaut s'appliquant à toute les cellules
son utilisation dans ce contexte risque d'étre tres perturbant.
je conseillerai donc plutot l'utilisation du click droit ...
macro à installer dans le module de la feuille concernée :

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
MsgBox "nb cellules concernées: " & Selection.Cells.Count _
& Chr(10) & Selection.Address _
& Chr(10) & "visibles:" & vbTab & Selection.SpecialCells(xlCellTypeVisible).Count _
& Chr(10) & "Moy :" & vbTab & Application.Subtotal(1, Selection) _
& Chr(10) & "Numer. :" & vbTab & Application.Subtotal(2, Selection) _
& Chr(10) & "Cpteur :" & vbTab & Application.Subtotal(3, Selection) _
& Chr(10) & "Max :" & vbTab & Application.Subtotal(4, Selection) _
& Chr(10) & "Min :" & vbTab & Application.Subtotal(5, Selection) _
& Chr(10) & "Produit :" & vbTab & Application.Subtotal(6, Selection) _
& Chr(10) & "Somme :" & vbTab & Application.Subtotal(9, Selection), vbInformation, "stats MPFE"
End Sub
Avatar
Modeste
Bonsour® Jacky avec ferveur ;o))) vous nous disiez :

l'équivalent en vba serait plutôt du genre
MsgBox Application.SubTotal(N° de Fonction, Plage)



Qu'est-ce qui permet cette affirmation ???


MsgBox Application.Subtotal(109, Selection)
plutôt que
MsgBox Application.Sum(Selection)


;o)))
à condition que ce soit bien par défaut la fonction Somme dans la barre de tache qui est activé à l'instant donné !!!!
et pour la changer il suffit d'une action (in)volontaire de l'utilisateur ;o)))
Avatar
Modeste
Bonsour®
;o)))
à condition que ce soit bien par défaut la fonction Somme dans la
barre de tache qui est activé à l'instant donné !!!!
et pour la changer il suffit d'une action (in)volontaire de
l'utilisateur ;o)))



Corollaire :
Comment en VBA, modifier (cocher ou décocher) la fonction active
pour cet affichage dans la barre de tache ... ?
:-(
Avatar
TTL76
Merci Modeste pour cette réponse,
mais le fonctionnement click droit ne correspond pas à ce que je cherche,
car en fait le mode de fonctionnement souhaité est : je connais le résultat
objectif et je cherche à selectionner des cellules (lignes et colonnes
contigues quand même!) pour obtenir ce résultat. Le comptage cellule (en
direct) de la barre d'état m'irait trés bien si je pouvais exploiter sa
valeur en VBA.
Une autre idée?
Merci de votre aide

Cordialement,

"Modeste" a écrit dans le message de news:

Bonsour® TTL76 avec ferveur ;o))) vous nous disiez :

Merci a vous deux pour ces réponses, mais je constate que c'est pas
gagné! Mon besoin est : l'utilisateur selectionne une zone variable
(lignes+colonnes) par selection click gauche, sans relacher le MsgBox
doit s'afficher le nombre de cellules selectionnées * constante comme
le fait le resultat de la barre d'état.



;o)))
le click gauche étant le click de sélection par défaut s'appliquant à toute
les cellules
son utilisation dans ce contexte risque d'étre tres perturbant.
je conseillerai donc plutot l'utilisation du click droit ...
macro à installer dans le module de la feuille concernée :

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)
On Error Resume Next
MsgBox "nb cellules concernées: " & Selection.Cells.Count _
& Chr(10) & Selection.Address _
& Chr(10) & "visibles:" & vbTab &
Selection.SpecialCells(xlCellTypeVisible).Count _
& Chr(10) & "Moy :" & vbTab & Application.Subtotal(1, Selection) _
& Chr(10) & "Numer. :" & vbTab & Application.Subtotal(2, Selection) _
& Chr(10) & "Cpteur :" & vbTab & Application.Subtotal(3, Selection) _
& Chr(10) & "Max :" & vbTab & Application.Subtotal(4, Selection) _
& Chr(10) & "Min :" & vbTab & Application.Subtotal(5, Selection) _
& Chr(10) & "Produit :" & vbTab & Application.Subtotal(6, Selection) _
& Chr(10) & "Somme :" & vbTab & Application.Subtotal(9, Selection),
vbInformation, "stats MPFE"
End Sub
Avatar
MichDenis
Bonjour TTL76,

Dans Excel 2007, tu peux utiliser ceci :

Au lieu d'afficher le message, tu peux utiliser une variable
différente déclarée "Public" dans un module Standard pour
conserver la valeur obtenue par chaque item. Excel 2007
permet de cocher plusieurs items à la fois.

Tu copies ce qui suit dans le ThisWorkbook du classeur.
'-----------------------------------
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim Ctrl As CommandBarButton, Msg As String
If TypeName(Selection) = "Range" Then
If Selection.Cells.Count = 1 Then Exit Sub
V = ""
On Error Resume Next
For Each Ctrl In Application.CommandBars("AutoCalculate").Controls
Select Case Ctrl.Caption
Case "&Moyenne"
Msg = Msg & "Valeur de la moyenne de la sélection : " _
& Application.Round(Application.Average(Selection), 3) & vbCrLf
Case "&Compteur"
Msg = Msg & "Nombre de cellules non vides dans la " _
& "sélecton : " & Application.CountA(Selection) & vbCrLf
Case "Chi&ffres"
Msg = Msg & "Nombre de valeurs numériques dans la " _
& "sélection: " & Application.Count(Selection) & vbCrLf
Case "Ma&x."
Msg = Msg & "Valeur maximale de la sélection : " _
& Application.Max(Selection) & vbCrLf
Case "M&in."
Msg = Msg & "Valeur minimale de la sélection : " _
& Application.Min(Selection) & vbCrLf
Case "&Somme"
Msg = Msg & "La somme de la sélection est : " _
& Application.Sum(Selection) & vbCrLf
End Select
Next Ctrl
If Msg <> "" Then MsgBox Msg
End If
End Sub
'-----------------------------------



"TTL76" a écrit dans le message de groupe de discussion :

Bonsoir a tous,

Y a t il des courageux qui fuient la torpeur des plages pour m'aider à
répondre a ces question :
Peux t on recuperer par VBA la valeur de la somme ou comptage cellule
ou....... qui s'affiche dans la barre d'etat en bas a droite ?
Peut t on selectionner le menu contextuel et choisir ce qui sera affiché si
oui comment?

Merci de votre aide,

Bien Cordialement,
Avatar
MichDenis
Pour les versions antérieures à 2007, on peut ajouter
une ligne de code pour tester expressément quelle est la
fonction de cocher pour afficher seulement cette information
dans le message.
La ligne de code est : If Ctrl.State = msoButtonDown Then
sinon, le fonctionne est similaire à 2007.

'------------------------------------------
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim Ctrl As CommandBarButton, Msg As String
If TypeName(Selection) = "Range" Then
If Selection.Cells.Count = 1 Then Exit Sub
V = ""
On Error Resume Next
For Each Ctrl In Application.CommandBars("AutoCalculate").Controls
If Ctrl.State = msoButtonDown Then
Select Case Ctrl.Caption
Case "&Moyenne"
Msg = Msg & "Valeur de la moyenne de la sélection : " _
& Application.Round(Application.Average(Selection), 3) & vbCrLf
Case "&Compteur"
Msg = Msg & "Nombre de cellules non vides dans la " _
& "sélecton : " & Application.CountA(Selection) & vbCrLf
Case "Chi&ffres"
Msg = Msg & "Nombre de valeurs numériques dans la " _
& "sélection: " & Application.Count(Selection) & vbCrLf
Case "Ma&x."
Msg = Msg & "Valeur maximale de la sélection : " _
& Application.Max(Selection) & vbCrLf
Case "M&in."
Msg = Msg & "Valeur minimale de la sélection : " _
& Application.Min(Selection) & vbCrLf
Case "&Somme"
Msg = Msg & "La somme de la sélection est : " _
& Application.Sum(Selection) & vbCrLf
End Select
End If
Next Ctrl
If Msg <> "" Then MsgBox Msg
End If
End Sub
'------------------------------------------



"TTL76" a écrit dans le message de groupe de discussion :

Bonsoir a tous,

Y a t il des courageux qui fuient la torpeur des plages pour m'aider à
répondre a ces question :
Peux t on recuperer par VBA la valeur de la somme ou comptage cellule
ou....... qui s'affiche dans la barre d'etat en bas a droite ?
Peut t on selectionner le menu contextuel et choisir ce qui sera affiché si
oui comment?

Merci de votre aide,

Bien Cordialement,
1 2