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

Excel zet formules automatisch om naar waarden

Status
Niet open voor verdere reacties.

HertogHan12

Nieuwe gebruiker
Lid geworden
4 nov 2019
Berichten
4
Ik heb een excelsheet en sinds kort zet hij wanneer ik formules die al in cellen staan aanpas om naar waarden en ben je de formule kwijt die in de cel stond.
Dus bijv een cel staat B108+1 (een datum + 1) en krijg je netjes de uitkomt van die celwaarde de juiste datum, als ik de cel aanpas naar B108+2 en op enter druk dan krijg je niet de correcte celwaarde en is de formule uit de cel verdwenen. Iemand enig idee?
 
Er staat een Change Event in het niet geplaatste document.
 
Er staat een Change Event in het niet geplaatste document.

Dat klopt ben er niet zo ervaren mee, maar ik gebruik de onderstaande event. Echter de cel wordt gewijzigd in cel B129 en die staat volgens mij niet in het event! Als ik het event weghaal is het probleem opgelost. Heeft het ermee te maken dat cel B129 een samengevoegde cel is van B129 tot Q129?

Code:
Private Sub Worksheet_Change(ByVal target As Range)

'invoeren van tijd in gehele getallen

If IsEmpty(target) Then
   'do nothing
Else
    Select Case target.Column
        Case 2, 6, 10, 14
            Select Case target.Row
                 Case 5, 7, 9, 11, 13, 15, 17, 19, 21, 26, 28, 30, 32, 34, 36, 38, 40, 42, 47, 49, 51, 53, 55, 57, 59, 61, 63, 68, 70, 72, 74, 76, 78, 80, 82, 84, 89, 91, 93, 95, 97, 99, 101, 103, 105, 110, 112, 114, 116, 118, 120, 122, 124, 126, 131, 133, 135, 137, 139, 141, 143, 145, 147
                    'these are the cells you want
            End Select
            
            On Error Resume Next
            If Hour(target.Value) <> 0 Or Minute(target.Value) <> 0 Then GoTo Einde
            Application.EnableEvents = False
            If Int(target.Value / 100) < 0.1 Then
            target = "00:" & target.Value
            Else
            target = Int(target.Value / 100) & ":" & Right(target.Value, 2)
            End If
            Application.EnableEvents = True
            
        Case Else
          'do nothing
    End Select
End If
Einde:
ActiveSheet.Calculate
End Sub
 
Laatst bewerkt:
Deze opzet heeft niet mij voorkeur. Gebruik geen samengevoegde cellen. Probeer de gegevens die je wilt invoeren steeds in even of oneven rijen te zetten. Hiermee kan je de code en de formules consistent maken. Nu is het 1 groot breiwerk waar bijna niet doorheen te komen is en ook onmogelijk te onderhouden is.
In het huidige bestand wordt de code zoiets
Code:
Private Sub Worksheet_Change(ByVal target As Range)
  Select Case target.Column
    Case 2, 6, 10, 14
      Select Case target.Row
        Case 5, 7, 9, 11, 13, 15, 17, 19, 21, 26, 28, 30, 32, 34, 36, 38, 40, 42, 47, 49, 51, 53, 55, 57, 59, 61, 63, 68, 70, 72, 74, 76, 78, 80, 82, 84, 89, 91, 93, 95, 97, 99, 101, 103, 105, 110, 112, 114, 116, 118, 120, 122, 124, 126, 131, 133, 135, 137, 139, 141, 143, 145, 147
          Application.EnableEvents = False
          If Hour(target.Value) <> 0 Or Minute(target.Value) <> 0 Then GoTo Einde
            If Int(target.Value / 100) < 0.1 Then
              target = "00:" & target.Value
             Else
              target = Int(target.Value / 100) & ":" & Right(target.Value, 2)
            End If
      End Select
  End Select
Einde:
  Application.EnableEvents = True
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan