Hallo allen,
Graag had ik van jullie een beetje hulp.
Onderstaande code werkt naar alle tevredenheid maar is wel lang en onoverzichtelijk.
Maar ja, dat krijg je dan ook als je maar een klein, klein beetje kennis hebt van VBA.
De code doet niets anders dan wat data copieren van de ene sheet naar de andere sheet en dan ook nog naar een bepaalde regel als er een bepaalde selectie gemaakt wordt. Hier wordt dan weer een grafiek van gemaakt.
Mijn kennis van VBA is dusdanig dat het mij niet lukt om dit in te korten.
Deze code moet ik voor 3 jaar doen, dus 2013, 2014 en 2015 en in de toekomst 2016 en verder.
Nu loop ik tegen beperkingen aan, als de code te lang wordt dan krijg ik een melding: Compile error. Procedure too large. :evil::evil:
Nu is mijn vraag:
Kunnen jullie mij helpen om deze code in te korten zodat ik wel meerdere jaren (en dus ook andere selecties) kan doen?
Een voorbeeldje posten zou erg makkelijk zijn maar mijn bestand is bijna 10 Mb en om hier een voorbeeld van te maken zou mij een halve dag werk bezorgen. Maar als het moet, moet het en probeer ik het te maken.
Ik ben in het bezit van Excel 2007 (engelse versie)
Alvast hartelijk bedank dat je dit gelezen hebt en voor de hulp.
Graag had ik van jullie een beetje hulp.
Onderstaande code werkt naar alle tevredenheid maar is wel lang en onoverzichtelijk.
Maar ja, dat krijg je dan ook als je maar een klein, klein beetje kennis hebt van VBA.
De code doet niets anders dan wat data copieren van de ene sheet naar de andere sheet en dan ook nog naar een bepaalde regel als er een bepaalde selectie gemaakt wordt. Hier wordt dan weer een grafiek van gemaakt.
Mijn kennis van VBA is dusdanig dat het mij niet lukt om dit in te korten.
Deze code moet ik voor 3 jaar doen, dus 2013, 2014 en 2015 en in de toekomst 2016 en verder.
Nu loop ik tegen beperkingen aan, als de code te lang wordt dan krijg ik een melding: Compile error. Procedure too large. :evil::evil:
Nu is mijn vraag:
Kunnen jullie mij helpen om deze code in te korten zodat ik wel meerdere jaren (en dus ook andere selecties) kan doen?
Een voorbeeldje posten zou erg makkelijk zijn maar mijn bestand is bijna 10 Mb en om hier een voorbeeld van te maken zou mij een halve dag werk bezorgen. Maar als het moet, moet het en probeer ik het te maken.
Ik ben in het bezit van Excel 2007 (engelse versie)
Alvast hartelijk bedank dat je dit gelezen hebt en voor de hulp.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D8")) Is Nothing Then Exit Sub
If Target.Count < 1 Then Exit Sub
If Range("K6").Value = "AB02" And Range("K8").Value = "2015" And Range("K9").Value = "Jan" Or Range("K9").Value = "jan" Then
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("C41") = ActiveWorkbook.Sheets("Data").Range("D8")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("D41") = ActiveWorkbook.Sheets("Data").Range("D9")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("E41") = ActiveWorkbook.Sheets("Data").Range("D10")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("F41") = ActiveWorkbook.Sheets("Data").Range("D11")
End If
If Intersect(Target, Range("D8")) Is Nothing Then Exit Sub
If Target.Count < 1 Then Exit Sub
If Range("K6").Value = "AB02" And Range("K8").Value = "2015" And Range("K9").Value = "Feb" Or Range("K9").Value = "feb" Then
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("C42") = ActiveWorkbook.Sheets("Data").Range("D8")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("D42") = ActiveWorkbook.Sheets("Data").Range("D9")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("E42") = ActiveWorkbook.Sheets("Data").Range("D10")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("F42") = ActiveWorkbook.Sheets("Data").Range("D11")
End If
If Intersect(Target, Range("D8")) Is Nothing Then Exit Sub
If Target.Count < 1 Then Exit Sub
If Range("K6").Value = "AB02" And Range("K8").Value = "2015" And Range("K9").Value = "Mar" Or Range("K9").Value = "mar" Then
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("C43") = ActiveWorkbook.Sheets("Data").Range("D8")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("D43") = ActiveWorkbook.Sheets("Data").Range("D9")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("E43") = ActiveWorkbook.Sheets("Data").Range("D10")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("F43") = ActiveWorkbook.Sheets("Data").Range("D11")
End If
If Intersect(Target, Range("D8")) Is Nothing Then Exit Sub
If Target.Count < 1 Then Exit Sub
If Range("K6").Value = "AB02" And Range("K8").Value = "2015" And Range("K9").Value = "Apr" Or Range("K9").Value = "apr" Then
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("C44") = ActiveWorkbook.Sheets("Data").Range("D8")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("D44") = ActiveWorkbook.Sheets("Data").Range("D9")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("E44") = ActiveWorkbook.Sheets("Data").Range("D10")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("F44") = ActiveWorkbook.Sheets("Data").Range("D11")
End If
If Intersect(Target, Range("D8")) Is Nothing Then Exit Sub
If Target.Count < 1 Then Exit Sub
If Range("K6").Value = "AB02" And Range("K8").Value = "2015" And Range("K9").Value = "May" Or Range("K9").Value = "may" Then
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("C45") = ActiveWorkbook.Sheets("Data").Range("D8")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("D45") = ActiveWorkbook.Sheets("Data").Range("D9")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("E45") = ActiveWorkbook.Sheets("Data").Range("D10")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("F45") = ActiveWorkbook.Sheets("Data ").Range("D11")
End If
If Intersect(Target, Range("D8")) Is Nothing Then Exit Sub
If Target.Count < 1 Then Exit Sub
If Range("K6").Value = "AB02" And Range("K8").Value = "2015" And Range("K9").Value = "Jun" Or Range("K9").Value = "jun" Then
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("C46") = ActiveWorkbook.Sheets("Data").Range("D8")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("D46") = ActiveWorkbook.Sheets("Data").Range("D9")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("E46") = ActiveWorkbook.Sheets("Data").Range("D10")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("F46") = ActiveWorkbook.Sheets("Data").Range("D11")
End If
If Intersect(Target, Range("D8")) Is Nothing Then Exit Sub
If Target.Count < 1 Then Exit Sub
If Range("K6").Value = "AB02" And Range("K8").Value = "2015" And Range("K9").Value = "Jul" Or Range("K9").Value = "jul" Then
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("C47") = ActiveWorkbook.Sheets("Data").Range("D8")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("D47") = ActiveWorkbook.Sheets("Data").Range("D9")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("E47") = ActiveWorkbook.Sheets("Data").Range("D10")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("F47") = ActiveWorkbook.Sheets("Data").Range("D11")
End If
If Intersect(Target, Range("D8")) Is Nothing Then Exit Sub
If Target.Count < 1 Then Exit Sub
If Range("K6").Value = "AB02" And Range("K8").Value = "2015" And Range("K9").Value = "Aug" Or Range("K9").Value = "aug" Then
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("C48") = ActiveWorkbook.Sheets("Data").Range("D8")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("D48") = ActiveWorkbook.Sheets("Data").Range("D9")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("E48") = ActiveWorkbook.Sheets("Data").Range("D10")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("F48") = ActiveWorkbook.Sheets("Data").Range("D11")
End If
If Intersect(Target, Range("D8")) Is Nothing Then Exit Sub
If Target.Count < 1 Then Exit Sub
If Range("K6").Value = "AB02" And Range("K8").Value = "2015" And Range("K9").Value = "Sep" Or Range("K9").Value = "sep" Then
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("C49") = ActiveWorkbook.Sheets("Data").Range("D8")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("D49") = ActiveWorkbook.Sheets("Data").Range("D9")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("E49") = ActiveWorkbook.Sheets("Data").Range("D10")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("F49") = ActiveWorkbook.Sheets("Data").Range("D11")
End If
If Intersect(Target, Range("D8")) Is Nothing Then Exit Sub
If Target.Count < 1 Then Exit Sub
If Range("K6").Value = "AB02" And Range("K8").Value = "2015" And Range("K9").Value = "Oct" Or Range("K9").Value = "oct" Then
ActiveWorkbook.Sheets("Overzicht _grafiek").Range("C50") = ActiveWorkbook.Sheets("Data").Range("D8")
ActiveWorkbook.Sheets("Overzicht _grafiek").Range("D50") = ActiveWorkbook.Sheets("Data").Range("D9")
ActiveWorkbook.Sheets("Overzicht _grafiek").Range("E50") = ActiveWorkbook.Sheets("Data").Range("D10")
ActiveWorkbook.Sheets("Overzicht _grafiek").Range("F50") = ActiveWorkbook.Sheets("Data").Range("D11")
End If
If Intersect(Target, Range("D8")) Is Nothing Then Exit Sub
If Target.Count < 1 Then Exit Sub
If Range("K6").Value = "AB02" And Range("K8").Value = "2015" And Range("K9").Value = "Nov" Or Range("K9").Value = "nov" Then
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("C51") = ActiveWorkbook.Sheets("Data").Range("D8")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("D51") = ActiveWorkbook.Sheets("Data").Range("D9")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("E51") = ActiveWorkbook.Sheets("Data").Range("D10")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("F51") = ActiveWorkbook.Sheets("Data").Range("D11")
End If
If Intersect(Target, Range("D8")) Is Nothing Then Exit Sub
If Target.Count < 1 Then Exit Sub
If Range("K6").Value = "AB02" And Range("K8").Value = "2015" And Range("K9").Value = "Dec" Or Range("K9").Value = "dec" Then
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("C52") = ActiveWorkbook.Sheets("Data”).Range("D8")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("D52") = ActiveWorkbook.Sheets("Data”).Range("D9")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("E52") = ActiveWorkbook.Sheets("Data”).Range("D10")
ActiveWorkbook.Sheets("Overzicht_grafiek").Range("F52") = ActiveWorkbook.Sheets("Data”).Range("D11")
End If
End Sub