VBA Hilfe
#1
Hallo Liebe Forum User,
ich habe ein Kleines Problem mit einen VBA Script, vll kann mir jemand Weiterhelfen.

Merkwürding: Das VBA Script funktoniert auf ein anderen Tabellen Blatt, aber nicht auf ein neu Kopiertes.

VBA Code
Code:
Sub Test2()
Dim d As String
Application.ScreenUpdating = False
'
' Macro1 Macro
'
d = Sheets("Test2").Range("M5").Value

If Sheets(d).Visible = False Then
Sheets(d).Visible = True

'
    Sheets(d).Select
    ActiveSheet.Columns("A:E").Select
   
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "'" & d & "'!R1C1:R1048576C5", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Test2!R10C1", TableName:="PivotTable4", DefaultVersion _
        :=xlPivotTableVersion14
    Sheets("Test2").Select
    Cells(10, 1).Select
    With ActiveSheet.PivotTables("PivotTable4").PivotFields("Grund")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable4").PivotFields("Reason")
        .Orientation = xlColumnField                                               <- Hier bleibt er immer stehen.
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable4").AddDataField ActiveSheet.PivotTables( _
        "PivotTable4").PivotFields("Reason"), "Count of Reason", xlCount
        ActiveSheet.PivotTables("PivotTable4").PivotSelect "Grund[All]", _
        xlLabelOnly + xlFirstRow, True
    ActiveWorkbook.ShowPivotTableFieldList = True
    With ActiveSheet.PivotTables("PivotTable4").PivotFields("Reason")
        .Orientation = xlColumnField
        .Position = 1
    End With
     With ActiveSheet.PivotTables("PivotTable4").PivotFields("Grund")
        .PivotItems("(blank)").Visible = False
    End With
    ActiveWorkbook.ShowPivotTableFieldList = False
    Sheets(d).Visible = False
   
    Else: Sheets(d).Visible = False
    End If

   
    Columns("A:A").EntireColumn.AutoFit
   
End Sub

Viele Grüße
Top
#2
Hallo,

sollen wir jetzt zum Testen deine Datei nachbauen?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#3
Sorry Confused


Angehängte Dateien
.xlsm   auto_mail.xlsm (Größe: 751,45 KB / Downloads: 6)
Top
#4
Hallo,

die Makros gehören in ein Standardmodul, nicht in das Modul eines Tabellenblattes.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#5
Auch wenn ich mehrere Tabs habe ? Also wenn ich es in ein Modul rein packe, dann macht er den gleichen Fehler!
Top
#6
Hallo,

auch dann. In die Module der Tabellenblätter gehören nur Ereignisprozeduren, die zum Beispiel auf Eingaben in dieses Blatt reagieren sollen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#7
Wie schon gesagt, funktoniert es dann auch nicht. Er bleibt an der Gleichen Stelle stehen. Sad
Top
#8
Hallo,

bei mir kommt der Fehler "Index außerhalb des gültigen Bereichs". Was steht denn auf dem Blatt "Test2" in der Zelle M5? Beides gibt es in der Beispieldatei nicht.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#9
Dort steht der blatt name drin, wie in der Beispiel Datei bzw. steht bei mir folgendes

d = Sheets("BDML").Range("M5").Value

Dies ist dann schlussendlich eine Verkettung die auf das jeweilige ROW Blatt zeigt, wo die Rohdaten liegen
Top
#10
Hallo,

wo ist denn jetzt das Makro Test2 geblieben, bzw. welches Makro löst wo welchen Fehler aus?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste