Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Weergeven resultaten 1 tot 11 van 11

Onderwerp: Waarde automatisch aanpassen

  1. #1
    Junior Member
    Geregistreerd
    23 april 2019
    Vraag is niet opgelost

    Waarde automatisch aanpassen

    Hallo,

    Ik ben bezig om mijn uitgaven van mijn rekening overzichtelijk te maken, maar nu loop ik tegen een probleempje aan (waarschijnlijk is het heel makkelijk, maar ik zie het even niet).
    Ik kan een uitdraai maken van mij rekening en dan krijg ik een aantal gegevens zoals die ik anders wil om het beter te verwerken.

    De datum wordt bijvoorbeeld geven als "20200901" en wil hier gewoon 01-sept van maken. Nu is dit wel gelukt met de formule =DATUM(LINKS(D3;4);DEEL(D3;5;2);RECHTS(D3;2))
    Maar het probleem is dat dit dan in een andere cel komt te staan. Kan ik deze formule ook in dezelfde cel verwerken en dat Excel hem dus automatisch aanpast? Ik wil namelijk zo min mogelijk cellen gebruiken.
    Dit zelfde probleem heb ik met het aanpassen van de bedragen. Bij de uitdraai staat alleen "Bij" of "Af" en niet dat het getal dan positief of negatief is. Dit heb ik aangepast met de formule: =ALS(F3="Af";G3*-1;G3)
    Maar wederom komt dit in een andere cel te staan.

    In de bijlage moeten dus als ik de gegevens in "D3" invul, automatisch aangepast worden zoals de uitkomst in "I3".
    Zelfde geldt voor "G3" automatisch naar de gegevens van "J3".
    Bijgevoegde bestanden Bijgevoegde bestanden

  2. #2
    Mega Senior JVeer's avatar
    Geregistreerd
    27 februari 2019
    Probeer deze eens achter je werkblad



    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Columns(4)) Is Nothing Then
    Application.EnableEvents = False
        Target = Format(Right(Target, 2) & "-" & Mid(Target, 5, 2), "d-mmm")
            Select Case Target.Offset(, 2)
                Case "Af"
                    Target.Offset(, 3).Value = Abs(Target.Offset(, 3).Value) * -1
                Case "Bij"
                    Target.Offset(, 3).Value = Abs(Target.Offset(, 3).Value)
            End Select
    Application.EnableEvents = True
    End If
    End Sub
    Laatst aangepast door JVeer : 15 september 2020 om 22:30

  3. #3
    Junior Member
    Geregistreerd
    23 april 2019
    Dank u voor uw reactie!
    Ik heb helaas alleen geen kennis van vba. Er is zeker geen 'simpelere' manier?

    (Misschien toch maar eens verdiepen in vba)

  4. #4
    Mega Senior JVeer's avatar
    Geregistreerd
    27 februari 2019
    Met Alt F11 open je VBA.
    Klik op je blad waar de gegevens staan en plak die code daar in.

    In dit geval is VBA de enige oplossing
    Laatst aangepast door JVeer : 15 september 2020 om 21:36

  5. #5
    Giga Senior
    Geregistreerd
    13 juni 2016
    Volgens mij kan dat alleen met een hulpkolom. In dit geval dus twee hulpkolommen waarin je jouw formule zet naast kolom D en G en dan verberg je de andere twee.

  6. #6
    Mega Senior JVeer's avatar
    Geregistreerd
    27 februari 2019
    @Senso,
    Kan met hulpkolommen maar:

    Maar het probleem is dat dit dan in een andere cel komt te staan. Kan ik deze formule ook in dezelfde cel verwerken en dat Excel hem dus automatisch aanpast? Ik wil namelijk zo min mogelijk cellen gebruiken.
    Gr,
    JV

  7. #7
    Giga Senior
    Geregistreerd
    13 juni 2016
    Kan ik deze formule ook in dezelfde cel verwerken en dat Excel hem dus automatisch aanpast?
    Volgens mij is het antwoord dan > Nee.

    Ik wil namelijk zo min mogelijk cellen gebruiken.
    Je kunt iets wel willen maar niet alles is mogelijk, verbergen van kolommen wel.

    Post 4 is dan de oplossing en plak de code daar en opslaan als Excel-werkmap met macro's (.xlsm) als ik het goed heb.

  8. #8
    Mega Senior JVeer's avatar
    Geregistreerd
    27 februari 2019
    Deze werkt wat beter. Onafhankelijk de datum of Bij/Afschrijvingen aanpassen triggert in beide gevallen de macro

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Intersect(Target, Columns(6)) Is Nothing Then
            Select Case Target
                Case "Af"
                    Target.Offset(, 1).Value = Abs(Target.Offset(, 1).Value) * -1
                Case "Bij"
                    Target.Offset(, 1).Value = Abs(Target.Offset(, 1).Value)
            End Select
          Else
        If Not Intersect(Target, Columns(4)) Is Nothing Then
                Target.Value = Format(Right(Target, 2) & "-" & Mid(Target, 5, 1), "d-mmm")
        End If
    End If
    Application.EnableEvents = True
    End Sub
    Laatst aangepast door JVeer : 15 september 2020 om 22:49
    Gr,
    JV

  9. #9
    Giga Honourable Senior Member
    Geregistreerd
    18 juli 2008
    Een keer het gebruik van 'intersect' met union.
    Maak gebruik LCase bij handmatig invoer of er moet al een validatie zijn in kolom F.
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Intersect(Target, Union(Columns(4), Columns(6))) Is Nothing Then
    If Target.Column = 6 Then
            Select Case LCase(Target)
                Case "af"
                    Target.Offset(, 1).Value = Abs(Target.Offset(, 1).Value) * -1
                Case "ij"
                    Target.Offset(, 1).Value = Abs(Target.Offset(, 1).Value)
            End Select
          Else
                Target.Value = Format(Right(Target, 2) & "-" & Mid(Target, 5, 1), "d-mmm")
        End If
    End If
    Application.EnableEvents = True
    End Sub
    Of:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Intersect(Target, Union(Columns(4), Columns(6))) Is Nothing Then
    If Target.Column = 6 Then
                    Target.Offset(, 1).Value = Abs(Target.Offset(, 1).Value) * (IIf(LCase(Target) = "af", -1, 1))
                Else
                   Target.Value = Format(Right(Target, 2) & "-" & Mid(Target, 5, 1), "d-mmm")
        End If
    End If
    Application.EnableEvents = True
    End Sub
    ____________
    Met vriendelijke groet,
    Harry

    Lag nooit om de keuzes van dien vraauw, bist ter zulf aine van....
    (Grunnegs-Gronings)

  10. #10
    Mega Senior JVeer's avatar
    Geregistreerd
    27 februari 2019
    @HSV, naar die Union methode was ik al op zoek, niet gevonden helaas
    Gr,
    JV

  11. #11
    Junior Member
    Geregistreerd
    23 april 2019
    Bedankt allemaal voor de reacties! Het is inmiddels gelukt om de code in vba te zetten en hij werkt ook! Daarvoor dank!
    Alleen werkt hij nog niet helemaal naar mijn zin.
    Het is de bedoeling dat ik de gegevens kopieer van de door mijn bank uitgedraaide gegevens naar mijn eigen bestand. Als ik nu, met deze code, 1 cel kopieer en plak werkt hij perfect en past hij de datum en getallen aan, maar als ik meerdere cellen selecteer, kopieer en plak dan krijg ik de foutmelding:
    Fout 13 tijdens uitvoering: Typen komen niet over een met elkaar.
    Is hier nog iets aan te doen?


    Maak gebruik LCase bij handmatig invoer of er moet al een validatie zijn in kolom F.
    De bedoeling is dat er (bijna) nooit handmatig wordt ingevoerd, het is eigenlijk knip en plak werk, dus er zal altijd in kolom F "Bij" of "Af" staan.


    Edit:
    En als ik extra kolommen wil toevoegen waarin ik deze gegevens ook automatisch wil laten veranderen hoe doe ik dat? Dus bv in kolom "I" weer de datum en in "K" en "L" weer Af/Bij en het bedrag?
    Laatst aangepast door Dtox : 16 september 2020 om 16:20

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl

Regels
Help

Helpmij.nl en business

Partners
Sponsoren