Solun muotoilu ja desmaalien määrä

Minulla tulee kaavan tuottamana soluun lukuavo hyvin laajalta alueella 0,0001- 10000. Minun pitää muotoilla solu lukuarvoksi ja desimaaleja neljä, ettei solu näyttäisi nollaa hyvin pienillä arvoilla. Näyttää kuitenkin hassulta kun lukuarvo on tuhansia ja vielä desimaaleja neljä perässä. Muotoilu "yleinen" tuottaa myös desimaaleja tuhottomasti luvun perään.
Voiko jotenkin määrittää että jos luvussa on kokonaisosa niin näytetään vain esim. kaksi desimaalia, ja vasta kun kokonaisosaa ei ole otetaan useampi desimaali käyttöön?
8327
Äänestä

Muut lukivat myös

Vastaukset 8

Vanhimmat

ko. taulukon moduuliin...
muuta solualue sopivaksi nyt A -sarake

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Solu As Range
For Each Solu In Intersect(Target, Columns("A"))
If Not Solu.Value Like "*[!0-9]*" Then
Solu.NumberFormat = "General"
ElseIf Not Solu.Value Like "*[!0-9,]*" And Not Solu.Value Like "*,*,*" Then
Solu.NumberFormat = "0.0000"
Else
Solu.NumberFormat = "General"
End If
Next
End Sub

Keep EXCELing
@Kunde

Äänestä
  • Tämän siis pitäisi vaikuttaa koko sarakkeen kaikkien rivien muotoiluun? Lisäsin tämän koodin VBA:n moduliin, mutta solukohtainen muotoilu on edelleenkin voimassa. Miten tämän pitäisi oikein toimia, tarvitseeko se jotenkin erikseen käynnistää?

    Äänestä

Huonosti luin ...
Sulla olikin siis kaava soluissa, joka muuttuu. Muutin nyt alueeksi A1:A100, jolla tekee muutokset....
helppo fiksata tota solualuetta

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Solu As Range
For Each Solu In Range("A1:A100")
If Not Solu.Value Like "*[!0-9]*" Then
Solu.NumberFormat = "General"
ElseIf Not Solu.Value Like "*[!0-9,]*" And Not Solu.Value Like "*,*,*" Then
Solu.NumberFormat = "0.0000"
Else
Solu.NumberFormat = "General"
End If
Next
End Sub

Keep EXCELing
@Kunde

Äänestä
  • Joo kaavat ovat soluissa, jotka tuottavat nämä lukuarvot.
    Ei ollut tällä fiksatullakaan makrolla mitään vaikutusta alueen desimaaleihin, eli menee solukohtaisen muotoilun mukaisesti. Jokin mättää...

    Äänestä

ElseIf Not Solu.Value Like "*[!0-9,]*" And Not Solu.Value Like "*,*,*" Then

Eikö ensimmäinen Not ole tarpeeton?

Äänestä

Solukohtaisiksi muotoiluksi kaavoja sisältäviin soluihin (=Format Cells, Number Category: Custom, Type kohtaan): [>=1]#####,00;[<1]0,0000

Äänestä
  • No siinä oli helppo ratkaisu peruskäyttäjälle, tuo litania vain tarvittaviin soluihin "oma muotoilu" listalta. Kiitos!

    Äänestä

Ilman makroja.
Esim
Sarakkeelle Conditional Formatting -> Format only cells that contain , Cell value, less than, 1 ->
Format Number, Number , Decimal placess 4

Äänestä

Kommentoi aloitusta


suurella_tarkkuudella kirjoitti:

Minulla tulee kaavan tuottamana soluun lukuavo hyvin laajalta alueella 0,0001- 10000. Minun pitää muotoilla solu lukuarvoksi ja desimaaleja neljä, ettei solu näyttäisi nollaa hyvin pienillä arvoilla. Näyttää kuitenkin hassulta kun lukuarvo on tuhansia ja vielä desimaaleja neljä perässä. Muotoilu "yleinen" tuottaa myös desimaaleja tuhottomasti luvun perään.
Voiko jotenkin määrittää että jos luvussa on kokonaisosa niin näytetään vain esim. kaksi desimaalia, ja vasta kun kokonaisosaa ei ole otetaan useampi desimaali käyttöön?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu