Excel, Opmaak getal



Tip & Truc met betrekking tot Opmaken van een cel (getal).



Hoe toon ik een getal in 6 cijfers in Excel?


Gebruikmaken van een exact aantal cijfers in een getal! Is er een manier om in Excel een nummer van zes cijfers te laten zien, onafhankelijk van de plaatsing van het decimaalteken ?
Bijvoorbeeld, 0,1 wordt getoond als 0,10000, 200 wordt getoond als 200,000 en 25000 wordt getoond als 25000,0.

Helaas is er op dit moment nog geen opmaak (celeigenschappen) in Excel waarmee dit kan worden bereikt. Iedere opmaak is gerelateerd aan de plaats van het decimaalteken. Specificeer je in de aangepaste opmaak een vast aantal getallen achter het decimaalteken dan wordt dit aantal cijfers getoond ongeacht het aantal cijfers voor het decimaalteken.

Hierbij een suggestie om dit in eigen werkmap en werkblad te kunnen bewerkstelligen. Er zijn hiervoor 2 manieren:

  • via Formules
  • via Macro

Formule:
De volgende formule zal de celwaarde in A1 tonen met gebruikmaking van 6 cijfers:


=VAST(A1;ALS(ABS(A1)<1;5;5-GEHEEL(LOG(ABS(A1))));WAAR)

N.B. Het is ook mogelijk om het getal om te zetten naar TEKST en deze TEKST vervolgens in de juiste opmaak te tonen. Het equivalent van het getal in TEKST kan echter niet meer direct worden gebruikt als getal in een andere formule. De gebruikte formule heeft deze beperking niet.

Macro:
Het is mogelijk een macro (VBA) te definiëren die ervoor zorgt dat de celwaarde in de gewenste opmaak wordt getoond. Het voordeel ten opzichte van het gebruik van de formule is dat er geen extra cel nodig is voor de formule met de verwijzing naar de broncel. Het nadeel van een macro is dat je niet moet vergeten de macro uit te voeren. De volgende macro heeft hetzelfde effect als de eerder genoemde formule.


Sub DefineerGetal6Cijfers()
Dim AantalDecimalen As Integer
Dim DecimaalTekenAanwezig As Boolean
Dim Opmaak As String
Dim CelBereik As Range
Dim TestCel As Range

DecimaalTekenAanwezig = False 'Wijzig indien nodig


Set CelBereik = Selection

For Each TestCel In CelBereik
  If Abs(TestCel.Value) < 1 Then
    AantalDecimalen = 5
  Else
    AantalDecimalen = 5 - Int(Log(Abs(TestCel.Value)) / Log(10#))
  End If

  Opmaak = "0"

  If DecimaalTekenAanwezig Then Opmaak = "#,##0"
  If AantalDecimalen < 0 Then Opmaak = "Standaard"
  If AantalDecimalen > 0 Then Opmaak = Opmaak & "." & String(AantalDecimalen, "0")

  TestCel.NumberFormat = Opmaak

Next TestCel
End Sub



Voor het aanmaken van de macro, selecteer een celbereik van cellen die het betreffende formaat moeten krijgen en voer de macro vervolgens uit. Voor iedere cel zal de opmaak zo worden aangepast, dat het getal in zes cijfers wordt getoond, mits het getal niet te groot of te klein is.




Heb je nog vragen, neem dan gerust contact met ons op.