• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Voorwaardelijk opmaak getalnotatie excel 2003

Status
Niet open voor verdere reacties.

Mark Smit

Gebruiker
Lid geworden
20 mei 2010
Berichten
5
Goedendag,

Ik wil de opmaak getalnotaie van een bereik laten afhangen van een waarde in een andere cel.

BV: A1 = 0
Bereik I8:T30 moet dan als getalnotie 0% krijgen
A1=1
Bereik I8:T30 moet dan als getalnotie 0 krijgen

Ik heb het volgende in VBA maar die zorgt voor de notatie op basis van de waarde in het bereik zelf.
En dat is niet de bedoeling, het moet bepaald worden door een waarde in een cel buiten het bereik


Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim x As Range
    For Each x In ActiveSheet.Range("e13:t33")
        With x
        Select Case .Value
          Case Is <= "1"
              .NumberFormat = "0%"
          Case Else
              .NumberFormat = "0"
        End Select
    End With
  Next
 
 End Sub

bvd
Mark
 
Laatst bewerkt door een moderator:
De code kan gereduceerd worden tot 1 regel.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then Range("E13:T33").NumberFormat = "0" & IIf(Target < 1, "%", "")

End Sub

Met vriendelijke groet,


Roncancio
 
Hallo Roncancino.

Thx voor de reactie.

Het onderdeel < 1 was mijn tussen oplossing. alleen als de waarde nu 100% is geeft ie een 1 terug ipv 100%

Wat ik zoek =
ls A1=1 dan moet het bereik in hele getallen "0" weergegeven worden anders in percentages "0%".

Is het mogelijk om de voorwaarde te schrijven.

thx
 
Als in cel A1 een 1 staat dan worden de getallen in % gegeven.
In alle andere gevallen worden de waardes in de 0 notatie gegeven.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then Range("E13:T33").NumberFormat = "0" & IIf(Target = 1, "%", "")

End Sub

Met vriendelijke groet,


Roncancio
 
Hallo Roncancio

Sorry , iets te vroeg geroepen....
De waarde in cel A1 wordt bepaald aan de hand van een formule
Als ik een 1 of andere waarde rechtstreeks in A1 invul dan werkt het,

Als ik de waarde in cel A1 laat bepalen adh van een formule dan werkt ie niet.
bvformule in A1 :=ALS(A4=1;1;0)

Ik heb nog geprobeerd met Tekst() , INDIRECT, cel opmaak op tekst en de waarde 1 vervangen door "x" maar dat lukt niet.

Ik denk dat de cel A1 in de vba een waarde bepaling zoals value moet krijgen
Nu leest ie in de cel de formule als waarde ipv de waarde die het resultaat is van de formule.

heb je hier een oplossing voor.

gr
Mark
 
Code:
Private Sub Worksheet_Calculate()
Range("E13:T33").NumberFormat = "0" & IIf([A1] = 1, "%", "")

End Sub

Met vriendelijke groet,


Roncancio
 
Voorwaardelijke getalnotatie

Ik heb totaal geen ervaring met VBA. Toch heb ik met interesse naar de subroutine gekeken en zou deze graag willen gebruiken.
Kunnen jullie mij op weg helpen, hoe je dit moet doen?

Mvg

Arthur
 
Start een nieuw topic en stel daarin je vraag met een voorbeeldbestand zodat we kunnen zien hoe je het wilt hebben.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan