Macro gegevens vanuit draaitabel > fout verwijzing werkbladnummer

Status
Niet open voor verdere reacties.

Sjoerd2011

Gebruiker
Lid geworden
8 jun 2011
Berichten
8
Beste allen,

Allereerst dank voor diegene die mee willen denken.
Ik ben al geruime tijd verder met zoeken, testen en loop helaas continu tegen een probleem aan. Ik ben geen VBA expert dus helaas richt ik mij toch tot jullie!
Concreet heb ik 2 hoofdvragen;
- Kan hetgeen ik wens (2 vraagstukken) überhaupt in Excel?
- Indien ja waarin dien ik mijn VBA code te wijzigen?

Ik heb een Excel met een input werkblad (waarin een dump vanuit een ERP in gaat) en standaard werkbladen met draaitabellen die automatisch wijzigen op basis van de input.

Het probleem:
De (variabele) draaitabel heeft een 'eindtotaal veld', waarbij ik vanuit kolom: "totaal" + rij: "totaal" dubbelklik (H23) en hierbij automatisch door Excel een nieuw werkblad wordt geopend met alle details op regelniveau vanuit de draaitabel. Dit 'eindtotaal' veld is niet altijd hetzelfde veld in Excel omdat de dump variabel is.
Ik heb middels "Macro opnemen" een macro gemaakt waarbij ik vanuit de draaitabel dus dubbelklik op het 'eindtotaal veld', hij opent dan een werkblad (Blad ##) waarbij ik de naam en kleur van het tabblad wijzig. Dit herhaal ik op verschillende draaitabellen. (in onderstaande voorbeeld 2x)

Concreet het probleem is dat het 'eindtotaal veld' (nu H23) dus kan gaan variëren en dat de VBA refereert naar een specifiek bladnummer, bijvoorbeeld blad11. Omdat ik de Excel wekelijks gebruik en de macro dan opnieuw uitvoer correspondeert 'eindtotaal veld' & het bladnummer niet meer (deze telt automatisch door) en geeft deze een foutmelding.

resumé (waarbij 1 de belangrijkste is):
1) In de editor kan ik de code wijzigen maar ik krijg het niet voor elkaar dat hij dus niet meer naar een specifiek bladnummer verwijst. Daar geeft hij nu een foutmelding op.
2) Wat betreft het 'eindtotaal veld' (H23) weet ik überhaupt niet of je hier naar kan verwijzen vanuit een draaitabel als deze variabel is. Anders dien ik dat anders te doen en een draaitabel maken waarbij dit veld niet varieert en dit werkblad dan gewoon verberg vervolgens.

Hopelijk is het iets simpels! (i.v.m. inhoud kan ik nu helaas geen excel delen, is dit wel wenselijk voor een betere ondersteuning, let me know).


'
Range("H23").Select
Selection.ShowDetail = True
Sheets("Blad11").Select
Sheets("Blad11").Name = "TFS 1 Totaaloverzicht details"
Sheets("TFS 1 Totaaloverzicht details").Select
With ActiveWorkbook.Sheets("TFS 1 Totaaloverzicht details").Tab
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0
End With
Sheets("TFS 1 Overzicht MJOP locatie").Select
Range("F18").Select
Selection.ShowDetail = True
Sheets("Blad12").Select
Sheets("Blad12").Move Before:=Sheets(9)
Sheets("Blad12").Select
Sheets("Blad12").Name = "TFS 1 Totaalover. MJOP details"


Nogmaals alvast bedankt.

Met vriendelijke groet,

Sjoerd
 

Bijlagen

  • Excel draaitabel kolom h23.png
    Excel draaitabel kolom h23.png
    133,7 KB · Weergaven: 4
  • Excel draaitabel macro detailbladen.png
    Excel draaitabel macro detailbladen.png
    301,8 KB · Weergaven: 4
Concreet heb ik 2 tegenvragen:

- zet svp VBA code tussen code tags.
- plaats een Excelbestand en zeker geen plaatjes.
 
Concreet heb ik 2 tegenvragen:

- zet svp VBA code tussen code tags.
- plaats een Excelbestand en zeker geen plaatjes.

Excuus en dank voor je terugkoppeling. (ik merk dat ik er weer even in dien te komen, hopelijk is het zo beter/duidelijker).

Ik heb een testdocument gemaakt met minder inhoud.
Principe blijft hetzelfde waarbij "Macro1_Detailbladen_draaitabellen" je kunt zien wat ik wens te doen.

resumé (waarbij 1 de belangrijkste is):
1) In de editor kan ik de code wijzigen maar ik krijg het niet voor elkaar dat hij dus niet meer naar een specifiek bladnummer verwijst. Daar geeft hij nu warschijnlijk een foutmelding op.
2) Wat betreft het 'eindtotaal veld' (in nieuwe voorbeeld J15 & F6) weet ik überhaupt niet of je hier naar kan verwijzen vanuit een draaitabel als deze variabel is. Anders dien ik dat anders te doen en een draaitabel maken waarbij dit veld niet varieert en dit werkblad dan gewoon verberg vervolgens.

Code:
Sub Macro1_Detailbladen_draaitabellen()
'
' Macro1_Detailbladen_draaitabellen Macro
' - het openen van de details uit de draaitabellen vanuit rij "eindtotaal" en kolom "eindtotaal" - het hernoemen van de werkbladen - het veranderen van de werkblad kleur
'
' Sneltoets: Ctrl+q
'
    Range("J15").Select
    Selection.ShowDetail = True
    Sheets("Blad5").Select
    Sheets("Blad5").Name = "Totaaloverzicht alle orders"
    Sheets("Totaaloverzicht alle orders").Select
    With ActiveWorkbook.Sheets("Totaaloverzicht alle orders").Tab
        .ThemeColor = xlThemeColorAccent2
        .TintAndShade = 0
    End With
    Sheets("DT Workload").Select
    Range("F6").Select
    Selection.ShowDetail = True
    Sheets("Blad6").Select
    Sheets("Blad6").Name = "Totaaloverzicht openstaande WL"
    Sheets("Totaaloverzicht openstaande WL").Select
    With ActiveWorkbook.Sheets("Totaaloverzicht openstaande WL").Tab
        .ThemeColor = xlThemeColorAccent2
        .TintAndShade = 0
    End With
End Sub
 

Bijlagen

Dynamisch:

CSS:
Sub M_snb()
   MsgBox Split(Blad2.PivotTables(1).DataBodyRange.Address, ":")(1)
End Sub
 
CSS:
Sub Sjoerd()
     With Sheets("DT Orders-status").PivotTables(1).TableRange1     'deze draaitabel
          .Cells(.Rows.Count, .Columns.Count).ShowDetail = True     'detail van eindtotaal
     End With
     With ActiveSheet
          .UsedRange.EntireColumn.AutoFit    'kolombreedtes aanpassen
          On Error Resume Next
          .Name = "Totaaloverzicht alle orders"     'poging tot hernoemen van tabblad (als die nog niet bestaat !!!)
          On Error GoTo 0
          .Move after:=Sheets(Sheets.Count)  'verplaatsen naar het einde
     End With

     With Sheets("DT Workload").PivotTables(1).TableRange1     'deze draaitabel
          .Cells(.Rows.Count, .Columns.Count).ShowDetail = True
     End With
     With ActiveSheet
          .UsedRange.EntireColumn.AutoFit
          On Error Resume Next
          .Name = "Totaaloverzicht openstaande WL"
          On Error GoTo 0
          With .Tab                          'je tabje aanpassen
               .ThemeColor = xlThemeColorAccent2
               .TintAndShade = 0
          End With
          .Move after:=Sheets(Sheets.Count)
     End With


End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan