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

Knop toevoegen

Status
Niet open voor verdere reacties.

eelco42

Gebruiker
Lid geworden
21 mrt 2016
Berichten
28
Ik probeer knop 'jaar toe voegen' te maken (naast de bestaande knop 'project toevoegen'). De knop moet zoals gezegd een jaar toevoegen op tabblad meerjarenplanning, dus 4 kolomen erbij met het juiste jaartal/kwartalen erbij. Het lukt mij om één jaar via de knop toe te voegen, dus 2021 erbij, maar als ik dan nog een keer op de knop druk wil hij weer 2021 toevoegen ipv 2022. Vervolgens moet het toegevoegde jaar ook terug te zien zijn in de draaitabel op het andere tabblad, wat nu niet gebeurd.

Bekijk bijlage Meerjarenplanning.xlsb
 
Deze doet het volgens mij wel.
Code:
Sub mcrTabelUitbreiden()
Dim rng As Range
Dim lo As ListObject
    Set lo = ActiveSheet.ListObjects("TblDatabase")
    Set rng = Cells(4, lo.Range.Columns.Count + 1)
    rng.Value = rng.Offset(0, -4).Value + 1
    lo.Resize Range(Cells(5, 1), Cells(160, lo.Range.Columns.Count + 4))
    For i = 0 To 3
        rng.Offset(1, i).Value = "Q" & i + 1 & "-" & rng.Value
    Next i
End Sub
 
Dank, ik kan de knop nu inderdaad meerdere keren gebruiken, echter moet het toegevoegde jaar ook terug te zien zijn in de draaitabel op het andere tabblad, wat nu nog niet gebeurd. Is het mogelijk om de knop dus met de draaitabel te koppelen?
 
Bv

Code:
Sub VenA()
  Set pt = Sheets("Prognose molens").PivotTables(1)
  With Sheets("Meerjarenplanning")
    Set r = .Cells(4, Columns.Count).End(xlToLeft)
    r.Offset(, 4) = r + 1
    With .ListObjects(1)
      For j = 1 To 4
        c00 = "Q" & j & "-" & r + 1
        .ListColumns.Add
        .Range.Cells(1, .ListColumns.Count) = c00
        pt.PivotCache.Refresh
        pt.AddDataField pt.PivotFields(c00), "Som van " & c00, xlSum
      Next j
    End With
  End With
End Sub
 
Als ik de code uit #4 toevoeg aan de code uit #2, dan worden er per druk op de knop 2 jaar toegevoegd aan de planning, en daarvan wordt slechts een jaar in de draaitabel toegevoegd
 
Ah, de code uit #4 was geen toevoeging op de eerdere code...
Nu werkt het inderdaad prima. Laatste ding is dan nog de opmaak, ik heb naast de vaste tabelstijl nog dikgedrukte lijnen toegevoegd die elk jaar omranden. Hoe kan die opmaak overgenomen worden met een druk op de knop?
 
Even de opmaak kopiëren.

Code:
With .Range.Columns(.ListColumns.Count)
  .Offset(, -7).Resize(, 4).Copy
  .Offset(, -3).Resize(, 4).PasteSpecial xlPasteFormats
  Application.CutCopyMode = 0
End With
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan