• 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.

Opmaak cellen

Status
Niet open voor verdere reacties.

JeffVDB

Gebruiker
Lid geworden
25 aug 2009
Berichten
106
Ik houd een dagboek bij over mijn glycemiewaarden. Dit gebeurt soms op een automatische manier, dan eens op een handmatige manier. Nu wil ik die 2 ingevoerde waarden automatisch van mekaar aftrekken.
Dit mag zowel in een voorwaardelijke opmaak als in vba.
Dus wanneer er in een cel x "FS" staat, moet er in (rij x+1, kolom x-1) het verschil komen tussen (rij x-1, kolom x+0) en (rij x+1, kolom x+1). In bijlage vind een beknopt voorbeeld:
Bekijk bijlage Map2.xlsm
 
Hallo Jeff,

Staat er altijd FS? zo ja dan kan je deze formule gebruiken:
=ALS(H4="FS";H3-I5)

Zo niet, laat het dan even weten ;)
 
Hallo Jeff,

Staat er altijd FS? zo ja dan kan je deze formule gebruiken:
=ALS(H4="FS";H3-I5)

Zo niet, laat het dan even weten ;)

Bedankt voor je interesse.
Nee, zoals je kan zien staat er niet altijd FS. (FS (fusion set = automatische meting)). Normaal gebeurt de manuele meting slechts 1 per dag op een willekeurig tijdstip. Naast de manuele meting doe ik ook de automatische meting. Die waarden durven nogal eens verschillen. Daarom wil ik het verschil tussen die 2 metingen het hele jaar door automatisch in de cel naast de manuele meting ingevoerd zien.
Nog een fijn eindejaar gewenst.
 
Zou je even kunnen vertellen welke waarde er dan precies FS is en welke niet?

De waarde naast de cel waarin "FS" staat. De waarde boven "FS" is de manuele waarde. Naast de manuele waarde komt het verschil tussen manuele en automatische waarde, dus in cel (rij -1, kolom +1 tov van cel met "FS")
 
Zoiets?

Code:
Sub VenA()
For Each cl In Range("C4:Z4").SpecialCells(2, 2)
  If cl = "FS" Then cl.Offset(-1, 1) = cl.Offset(, 1) - cl.Offset(-1)
Next cl
End Sub
 
Het is wel de bedoeling dat deze procedure voor heel het jaar werkt. Range (C4:Z2203)
Als ik dit test in mijn bestand, gebeurt er niets.
Heb je dit ook geprobeerd in mijn voorbeeldbestand?
 
Dan ben ik benieuwd hoe je het getest hebt. Dus als je dat even in het bestandje kan laten zien en dan ook hoe je tot de range C4:Z2203 komt dan komen we waarschijnlijk een stapje verder.
 
Ik heb een oplossing gevonden : zie de code hieronder :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vLetter As String
Dim vColor As Integer
Dim vWit As Integer
Dim cRange As Range
Dim cell As Range
Dim num As Integer
Dim Sport As String
Dim vSport As String
Dim pSport As String
Dim RFS As Integer
'***************** check range ****
Set cRange = Intersect(Range("C6:Z2203"), Range(Target(1).Address))
If cRange Is Nothing Then Exit Sub
Sport = "Sport AM"
vSport = ""
pSport = "Sport PM + pomp 50%"
'**********************************
For Each cell In Target
vLetter = cell.Value
vColor = "0" 'default is no color
Select Case vLetter
Case "40"
vColor = 25
num = ActiveCell.Row
Sheets("Jaargang").Cells(num + 2, 3).Value = Sport
Case "50"
vColor = 25
num = ActiveCell.Row
Sheets("Jaargang").Cells(num + 2, 3).Value = Sport
Case "S"
vColor = 25
num = ActiveCell.Row
If Sheets("Jaargang").Cells(num + 2, 3).Value = Sport Then
Sheets("Jaargang").Cells(num + 2, 3).Value = Sport & " - " & pSport
Else
Sheets("Jaargang").Cells(num + 2, 3).Value = pSport
End If
Case "30"
vColor = 0
num = ActiveCell.Row
Sheets("Jaargang").Cells(num + 2, 3).Value = vSport
Case "FS"
cell.Offset(-1, 1) = (cell.Offset(, 1)) - (cell.Offset(-1))
cell.Offset(-1, 1).Interior.ColorIndex = 13

End Select
Application.EnableEvents = False 'should be part of Change macro
cell.Interior.ColorIndex = vColor
cell.Font.ColorIndex = cWit
Application.EnableEvents = True 'should be part of Change macro
Next cell
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan