Avatar billede Wepor Novice
02. marts 2021 - 07:27 Der er 7 kommentarer og
2 løsninger

Skjult formel i en celle

Hej

Jeg har A1 celle og den vil jeg gerne have at når man skriver fx 7 skal den lægge fx 4 til og vise 11 i feltet. Den skal ikke slette formel. Håber det giver mening.

Kan de overhoved lade sig gøre.
Avatar billede Jan K Ekspert
02. marts 2021 - 09:50 #1
Du kan ikke skrive i en celle med en formel uden at slette formlen, men det kan løses med VBA, hvis du er interesseret i det.
Avatar billede store-morten Ekspert
02. marts 2021 - 10:12 #2
F.eks.:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Target, Range("A1")) Is Nothing Then
        Range("A1").Value = Range("A1").Value + 4
    End If
End Sub

Eller:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Target, Range("A1")) Is Nothing Then
        Range("A1").Value = "=" & Range("A1").Value & "+4"
    End If
End Sub
Avatar billede jens48 Ekspert
02. marts 2021 - 12:07 #3
store-morten, din makro lægger 4 til A1 hver gang der skiftes celle.

Prøv i stedet med

Dim oldCellAddress As Long
Dim oldCellValue As Long
Private Sub Worksheet_Change(ByVal Target As Range)
    oldCellValue = 0
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Application.EnableEvents = False
        oldCellValue = Target.Value
        Target.Value = 4 + oldCellValue
        Application.EnableEvents = True
    End If
End Sub
Avatar billede store-morten Ekspert
02. marts 2021 - 14:26 #4
Ups...
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Application.EnableEvents = False
        Range("A1") = Range("A1") + 4
        Application.EnableEvents = True
    End If
End Sub

Eller:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Application.EnableEvents = False
        Range("A1").Value = "=" & Range("A1").Value & "+4"
        Application.EnableEvents = True
    End If
End Sub
Avatar billede Wepor Novice
02. marts 2021 - 15:11 #5
Mange tak begge løsning er kan bruges takker
Avatar billede store-morten Ekspert
02. marts 2021 - 15:20 #6
Velbekomme 😃
Avatar billede store-morten Ekspert
02. marts 2021 - 15:20 #7
Velbekomme 😃
Avatar billede Wepor Novice
03. marts 2021 - 10:57 #8
Hvis jeg nu vil have 3 cell mere der skal ligge 4 til det tal man skriver hvordan vil det så se ud?
Avatar billede jens48 Ekspert
03. marts 2021 - 11:31 #9
Nu skriver du ikke hvor du vlil lægge 4 til eller hvor du vil lægge 3 til, men noget i stil med dette vil kunne bruges. For A1 bliver der lagt 4 til og for B1:B3 bliver der lagt 3 til.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1,B1:B3")) Is Nothing Then
        Application.EnableEvents = False
        If Target.Column = 1 Then
        Target = Target + 4
        Else
        Target = Target + 3
        End If
        Application.EnableEvents = True
    End If
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester