personnalisation barre d'état

  • Initiateur de la discussion Initiateur de la discussion Pol
  • 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 !

Pol

XLDnaute Occasionnel
Bonjour,

Est-il possible d'obtenir en lecture directe dans la barre d'état en bas de l'écran la différence entre 2 cellules ou plages de cellules ? (de la même manière que la somme/moyenne/minimun/maximun....)

Je vous remercie vivement !

Pol.
 
Re : personnalisation barre d'état

Bonjour Pol,

En supposant que une des deux cellules ou plages est une référence fixe, ceci devrait fonctionner :
(code à mettre dans la feuille).

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    ' Référence à cellule fixe, exemple A1
    'Application.StatusBar = ActiveCell.Value - Range("A1")
    
    ' Entre 2 plages de cellules
    Application.StatusBar = WorksheetFunction.Sum(Selection) - WorksheetFunction.Sum(Range("A1:B2"))
    

End Sub

A+
 
Re : personnalisation barre d'état

Bonjour

En partant
  • de l'idée de Grand Chaman
  • du principe d'une sélection limitée à deux plages
calcul de la somme de la plage 1 - somme de la plage 2

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    ' Entre 2 plages de cellules
    If Target.Areas.Count = 2 Then Application.StatusBar = _
        "Différence " & WorksheetFunction.Sum(Target.Areas(1)) - WorksheetFunction.Sum(Target.Areas(2))
   
End Sub

à mettre dans le module de la feuille.

Peut-être adapté au module workbook...

Edit : version Workbook améliorée (effacement de la mention si le contexte est différent)
Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    ' Ecart entre 2 plages de cellules
    
    If Target.Areas.Count = 2 Then
       Application.StatusBar = "Différence " & WorksheetFunction.Sum(Target.Areas(1)) - WorksheetFunction.Sum(Target.Areas(2))
    Else
        Application.StatusBar = ""
    End If
End Sub
 
Dernière édition:
Re : personnalisation barre d'état

Bonjour à tous,

Ajout d'une fonction "Différence" dans la barre d'état (AutoCalculate) :
Ici la différence entre le Maxi et le Mini

VB:
Option Explicit


Sub NouvelleFonction()
    With Application.CommandBars("AutoCalculate").Controls.Add
        .Caption = "Différence"
        .OnAction = "Difference"
    End With
End Sub


Sub EffaceFonction()
    Application.CommandBars("AutoCalculate").Controls("Différence").Delete
End Sub


Private Sub Difference()
Dim Valeur As Long
    On Error Resume Next
    Valeur = Application.Max(ActiveWindow.RangeSelection) - _
            Application.Min(ActiveWindow.RangeSelection)
    MsgBox "Différence = " & Valeur
    Range("A1") = Valeur
End Sub

Bise à Chris
A + à tous
 
Re : personnalisation barre d'état

Bonjour à tous,

Merci pour vos tests.
Effectivement cette procédure ne fonctionne qu'avec XL 2003 :

Capture_1.png
Dans le fichier joint : Création à l'Ouverture et Suppression à la Fermeture

A + à tous
 

Pièces jointes

Re : personnalisation barre d'état

Bonjour à tous,

Bizarrement, en Excel 2007, si on lance

Code:
Application.CommandBars("AutoCalculate").ShowPopup

On voit bien que Différence a été ajouté, mais pas de lien avec ce qui apparaît dans la barre d'état
Je suppose qu'il faut faire du XML pour modifier les menus de la barre d'état
 
Re : personnalisation barre d'état

Merci beaucoup chris,

ça fonctionne parfaitement,

Est-il possible d'avoir cette option à chaque ouverture de classeur ?

Je ne connais pas VBA et voir de tel résultat m'encourage à débuter ,

Que préconisez vous pour apprendre VBA, (usage comptable, gestion, finance) ?

Merci chris.

Merci aussi à grand chaman, JCGL et tototiti
 
Re : personnalisation barre d'état

Bonjour

Si le code est dans le classeur concerné cela marche pour ce classeur.

J'ai regardé rapidement pour le faire fonctionner dans tous les classeurs mais n'ai pas trouvé de solution simple.

La méthode la plus simple a priori serait de mettre le code dans un modèle de classeur (xltx) ou bien, pour généraliser, dans le modèle par défaut, mais dans les deux cas cela oblique à enregistrer les classeurs en xlsm.

La solution de JCGL serait plus générale : reste à trouver comment l'implémenter en 2007.

A suivre
 
Re : personnalisation barre d'état

Chris,

Je reviens vers vous demander si vous seriez faire la même chose (personnalisation barre d'état) avec un affichage du montant HT et du montant TTC (taux de TVA 19.60%) correspondant à une cellule ou plage de cellules. Bien entendu en gardant l'affichage de la différence que vous m'aviez gentiment programmé la dernière fois.

Enfin, savez-vous si on peut avoir un affichage des nombres avec un séparateur des milliers et arrondi à 2 chiffres après virgule (logique monétaire),

Je vous joins un fichier exemple.

Je vous remercie infiniment !

Sachez que j'utilise très très souvent cette différence,

Simple et efficace !
 

Pièces jointes

- 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
2
Affichages
502
Retour