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

Lijst maken van begroting per rekening op datum

pas260

Gebruiker
Lid geworden
14 aug 2013
Berichten
28
Beste,
Ik heb een bestand met alle inkomsten en uitgaven ( uitgaven zijn 3 categorieën ) , het geld komt en gaat van verschillende rekeningen kolom C ( in voorbeeld genoemd als rood , blauw , groen , geel en oranje ) .
Nu wil ik graag op het tabblad vooruitkijken dat ik een rekening kan selecteren in A1 en dat ik dan een overzicht op volgorde van datum krijg wat er bij komt en af gaat , met als doel dat ik kan zien hoeveel op betreffende rekening staat op een bepaalde datum.

Op tabblad vooruitkijken heb ik in kolom H t/m L gezet hoe ik het zou willen.
De datum moet echter naar drie cellen kijken eerst kolom A in begroting daarna maand Kolom D t/m O en vervolgens het jaar in cel A$1$ van tabblad begroting.
Is een cel zonder bedrag dan die er graag niet tussen 10-1-2026 jaarafrekening staat geen bedrag dus die liever er niet tussen.

Hoe kan ik dit het beste doen of moet ik dit anders aan pakken ?
Het originele bestand is inmiddels behoorlijk groot.
 

Bijlagen

Hoi,
Ik krijg de melding dat de macro's geblokkeerd zijn vanwege een beveiliging risico

Wat ik van het resultaat kan zien is het goed maar ik kan in A1 wel een andere kleur kiezen ( bank ) maar dan veranderd eruit niks omdat de macro niks wil doen.
 
Je kunt via de verkenner de blokkering opheffen. Klik in de verkenner met de rechtermuisknop op de bestandsnaam, kies "Eigenschappen" en klik onderaan op "Blokkering opheffen".
 
Het is gelukt en doet precies wat ik wil , dank je wel .
Nu moet ik het vertalen naar mijn bestand.
Heb ik beide macro's nodig ?



Code:
Sub Vooruitkijken()
    Dim rij As Long
    Set Rng = Sheets("Begroting").Columns("A:A").Find(What:="Af", LookAt:=xlWhole)
    If Not Rng Is Nothing Then
        rijAf = Rng.Row
    Else
        MsgBox "'Af' niet gevonden in kolom A"
        Exit Sub
    End If
    Range("A3:E" & Cells(Rows.Count, 5).End(xlUp).Row).ClearContents
    rij = 2
    With Sheets("begroting")
        jaar = .Range("A1")
        rekening = Range("A1")
        For r = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
            If .Cells(r, 3) = rekening Then
                vandaag = Date
                For maand = 1 To Month(Date)
                    datum = DateSerial(jaar, maand, .Cells(r, 1))
                    If datum <= vandaag Then
                        bedrag = .Cells(r, maand + 3)
                        If bedrag <> 0 Then
                            rij = rij + 1
                            Cells(rij, 1) = datum
                            Cells(rij, 2) = .Cells(r, 2)
                            If r < rijAf Then
                                Cells(rij, 3) = bedrag  'inkomsten
                            Else
                                Cells(rij, 4) = bedrag  'uitgaven
                            End If
                        End If
                    End If
                Next
            End If
        Next
    End With
    With ActiveWorkbook.Worksheets("Vooruitkijken").Sort
        .SetRange Range("A3:D" & rij)
        .Apply
    End With
    Application.CutCopyMode = False
    Range("E3").FormulaR1C1 = "=RC[-2]-RC[-1]"
    Range("E4").FormulaR1C1 = "=R[-1]C+RC[-2]-RC[-1]"
    Range("E4").AutoFill Destination:=Range("E4:E" & rij)
End Sub


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then Vooruitkijken
End Sub
 
Als deze werkwijze je bevalt dan heb je beide macro's nodig. De Worksheet_Change gebeurtenis start de 'echte' macro Vooruitkijken. Je zou de macro ook met de hand kunnen starten, maar dan is het verstandig om de macro iets aan te passen zodat het opruimen van de oude resultaten en het plaatsen en sorteren van de nieuwe resultaten alleen op het werkblad Vooruitkijken plaatsvinden. Indien gewenst kan ik dat voor je aanpassen. Je zou de macro ook via een knop kunnen starten. Let ook op de namen van de werkbladen als die anders zijn in je 'grote' bestand.
 
Bedankt alvast.
De werkwijze bevalt mij zeer zeker.
Ga morgen er goed voor zitten want in het echte bestand staan nog extra tussen kolommen .
Laat morgen weten of het gelukt is.
 
Bijgaande versie is iets sneller en robuuster. Het hele werkblad Begroting wordt nu in een array geladen. De macro kan nu eventueel ook vanuit andere werkbladen worden gestart.
 

Bijlagen

Terug
Bovenaan Onderaan