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,

4 réponses

1 2
Avatar
TTL76
Merci MichDenis,
Je vais de ce pas tester cette solution
Cordialement,

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

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,



Avatar
MichDenis
La version suivante de la procédure te permet d'afficher
dans la barre d'état le ou les éléments pertinents suivants
suite à la sélection d'une plage de cellules dans une feuille.

1- Nombre de cellules non vides
2- Nombre de valeurs numériques
3- La somme des cellules de la sélection
4 - Moyenne de la sélection
5- Valeur maximale de la sélection
6- Valeur minimale de la sélection

La moyenne est arrondi à 3 décimales.

Placer dans le ThisWorkbook d'un classeur
'-------------------------------------------
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Range)
Dim Ctrl As CommandBarButton, Msg As String
Dim A As String, B As String, C As String
Dim D As String, E As String

Application.StatusBar = False
If Selection.Cells.Count = 1 Then Exit Sub

On Error Resume Next
For Each Ctrl In Application.CommandBars("AutoCalculate").Controls
Select Case Ctrl.Caption
Case "&Compteur"
If Application.CountA(Selection) > 1 Then
A = Msg & "Non vides : " & _
Application.CountA(Selection) & " "
End If

Case "Chi&ffres"
If Application.Count(Selection) > 0 Then
B = Msg & "Num : " & _
Application.Count(Selection) & " "
End If

Case "&Somme"
If Application.Count(Selection) > 0 Then
C = Msg & "Somme : " _
& Application.Sum(Selection) & " "
End If

Case "&Moyenne"
If Application.Count(Selection) > 0 Then
D = Msg & "Moyennne : " & Application.Round _
(Application.Average(Selection), 3) & " "
End If

Case "Ma&x."
If Application.Count(Selection) > 0 Then
E = Msg & "Max : " & _
Application.Max(Selection) & " "
End If

Case "M&in."
If Application.Count(Selection) > 0 Then
f = Msg & "Min : " _
& Application.Min(Selection) & " "
End If
End Select
Next Ctrl
'Peut choisir d'afficher seulement un ou tous
'les éléments en incluant dans la chaîne la ou
'les lettres correspondantes.
Application.StatusBar = A & B & C & D & E & f
End Sub
'-------------------------------------------



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

Merci MichDenis,
Je vais de ce pas tester cette solution
Cordialement,

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

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,



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

La version suivante de la procédure te permet d'afficher
dans la barre d'état le ou les éléments pertinents suivants
suite à la sélection d'une plage de cellules dans une feuille.

1- Nombre de cellules non vides
2- Nombre de valeurs numériques
3- La somme des cellules de la sélection
4 - Moyenne de la sélection
5- Valeur maximale de la sélection
6- Valeur minimale de la sélection



'Peut choisir d'afficher seulement un ou tous
'les éléments en incluant dans la chaîne la ou
'les lettres correspondantes.
Application.StatusBar = A & B & C & D & E & f
End Sub
'-------------------------------------------



Juste pour titiller... ;o)))
Il n'est pas certain que les chiffres restitués par cette macro
soient toujours les mêmes que ceux affichés par la commandbars("autoCalculate")
selon qu'un filtre soit actif ou pas...
;o)))

Les résultats affichés par la Commandbars("autoCalculate") sont équivalents à ceux de la fonction :
fr :
SOUS.TOTAL(NoFonction; Plage)
Us :
SubTotal(NoFonction, Plage)
Avatar
MichDenis
| Il n'est pas certain que les chiffres restitués par cette macro
| soient toujours les mêmes que ceux affichés par
| la commandbars("autoCalculate")
| selon qu'un filtre soit actif ou pas...

| Les résultats affichés par la Commandbars("autoCalculate")
| sont équivalents à ceux de la fonction :
| fr :
| SOUS.TOTAL(NoFonction; Plage)
| Us :
| SubTotal(NoFonction, Plage)

*** Le fait d'obtenir ces résultats par programmation permet
de retenir la formule la plus appropriée aux besoins de l'usager.

*** Pour les versions précédentes à Excel 2007, il est même possible
d'ajouter des éléments à la liste du menu contextuel au clic droit
sur cette barre d'outils et de les afficher dans la barre d'état.

*** La version Excel 2007 affiche déjà ces résultats dans la barre d'état
si on sélectionne le(s) item(s) dans le menu contextuel. Nul besoin de
les afficher 2 fois.

*** Le commentaire est approprié, il permettra au demandeur de retenir
la fonction qui lui plaît. À partir de la version Excel 2003, il est aussi
possible de retenir les fonctions (101 à 111) de Sous.Total().
1 2