Nuttige informatie in de statusbalk

Iemand leuk, maar ik heb persoonlijk slechts in 2-3 gevallen een statusbalk nodig:

  • na filtering wordt het aantal resterende waarden weergegeven na de selectie
  • wanneer een bereik is geselecteerd, worden de som, het gemiddelde en het aantal geselecteerde cellen weergegeven
  • in het geval van zware bestanden kunt u de voortgang van het herberekenen van formules in het boek zien.

Niet zozeer voor een lijn die bijna de hele breedte van het scherm in beslag neemt en er constant aan blijft hangen. Laten we proberen deze bescheiden lijst uit te breiden en er nog een paar handige functies aan toe te voegen 🙂

Algemene principes voor het beheren van de statusbalk

Het beheren van de statusbalk met Visual Basic is heel eenvoudig. Om uw tekst erin weer te geven, kunt u een eenvoudige macro gebruiken:

Sub MyStatus() Application.StatusBar = "Привет!" Einde sub  

Nadat we het hebben uitgevoerd, krijgen we:

Nuttige informatie in de statusbalk

Om de oorspronkelijke staat van de statusbalk te herstellen, hebt u dezelfde korte "anti-macro" nodig:

Sub MyStatus_Off() Application.StatusBar = Vals einde Sub  

In de basisversie is alles, zoals je kunt zien, heel eenvoudig. Laten we nu proberen het idee te ontwikkelen...

Adres van het geselecteerde bereik in de statusbalk

 In de linkerbovenhoek van het Excel-venster in de formulebalk kunt u altijd het adres van de huidige cel zien. Maar als een heel bereik is geselecteerd, zien we daar helaas het selectieadres niet - dezelfde enkele actieve cel wordt weergegeven:

Nuttige informatie in de statusbalk

Om dit probleem op te lossen, kunt u een eenvoudige macro gebruiken die het adres van het geselecteerde gebied in de statusbalk weergeeft. Bovendien zou deze macro automatisch moeten worden gestart, met elke wijziging in de selectie op een willekeurig blad - hiervoor plaatsen we het in de gebeurtenishandler Selectie wijzigen ons boek.

Open de Visual Basic Editor met behulp van de knop met dezelfde naam op het tabblad ontwikkelaar (Ontwikkelaar) of sneltoetsen Links Alt+F11. Zoek uw boek in de linkerbovenhoek van het deelvenster Project en open de module erin door te dubbelklikken Dit boek (Dit Werkboek):

Kopieer en plak in het geopende venster de volgende macrocode:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = "Выделено: " & Selection.Address(0, 0) End Sub  

Wanneer nu een bereik is geselecteerd (inclusief meer dan één!), wordt het adres weergegeven in de statusbalk:

Nuttige informatie in de statusbalk

Om te voorkomen dat de adressen van verschillende bereiken die met Ctrl zijn geselecteerd, worden samengevoegd, kunt u een kleine verbetering toevoegen - gebruik de functie Vervangen om een ​​komma te vervangen door een komma met een spatie:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = "Выделено: " & Replace(Selection.Address(0, 0), ",", ", ") End Sub  

Aantal geselecteerde cellen in de statusbalk

Wanneer een bereik is geselecteerd, wordt standaard het aantal niet-lege geselecteerde cellen weergegeven aan de rechterkant van de statusbalk. Soms moet u het toegewezen aantal weten. Deze taak kan ook worden uitgevoerd met een eenvoudige macro om de boekgebeurtenis SelectionChange af te handelen, zoals in het vorige voorbeeld. Je hebt een macro nodig zoals:

Private Sub Workbook_SheetSelectionChange (ByVal Sh As Object, ByVal Target As Range) Dim CellCount As Variant, rng As Range For Each rng In Selection.Areas 'Doorloop alle selecties RowsCount = rng.Rows.Count 'aantal rijen ColumnsCount = rng.Columns . Count 'aantal kolommen CellCount = CellCount + RowsCount * ColumnsCount 'accumuleer het totale aantal cellen Volgende 'weergave in de statusbalk Application.StatusBar = "Geselecteerd: " & CellCount & " cellen" End Sub  

Deze macro loopt door alle met Ctrl geselecteerde gebieden (als er meer dan één zijn), slaat het aantal rijen en kolommen in elk gebied op in de variabelen RowsCount en ColumnsCount en verzamelt het aantal cellen in de variabele CellCount, die vervolgens wordt weergegeven in de statusbalk. Op het werk ziet het er als volgt uit:

Nuttige informatie in de statusbalk

Natuurlijk kunt u deze en de vorige macro's combineren om zowel het adres van het geselecteerde bereik als het aantal cellen tegelijkertijd weer te geven. U hoeft slechts één voorlaatste regel te wijzigen in:

Application.StatusBar = "Geselecteerd: " & Replace(Selection.Address(0, 0), ",", ", ") & " - totaal " & CellCount & " cellen"  

Dan zal de foto heel mooi zijn:

Nuttige informatie in de statusbalk

Nou, ik denk dat je het idee snapt. Stel voor in de opmerkingen - wat zou nog meer handig zijn om in de statusbalk weer te geven?

  • Wat zijn macro's, hoe ze werken, hoe ze te gebruiken en te maken
  • Handige coördinaatselectie op een Excel-blad
  • Hoe complexe formules visueler te maken

Laat een reactie achter