Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Pivot Office 2003/2007 | Herbers Excel-Forum


Betrifft: Pivot Office 2003/2007 von: Petra
Geschrieben am: 09.12.2009 16:41:56

Schönen Tag allerseits
folgendes Codeschnipsel funktioniert in Excel 2003 tadellos:

Cells.Find(What:=StL, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Delete

wobei StL ein zusammengesetzter String ist. Das Suchen erfolgt in einer Pivottabelle. Ich suche eine Überschriftenzeile!

Nochwas Kurioses:
wenn der VBA-Code geschützt ist, kommt der Fehlercode 1004 - Sie können diese Markierung nicht ausblenden -
Mit dem "Beenden" Knopf läuft das Makro richtig weiter.

ist der VBA-Code ungeschützt, passiert folgendes:
Excel 2007 motzt mit Fehlercode 91(Objektvariable fehlt)?
bei beenden läuft der Code nicht mehr richtig weiter.

Ich bin am Ende, weiß mir keinen Rat mehr.

Weiß jemand Abhilfe??

Schönen Tag noch
Petra

  

Betrifft: AW: Pivot Office 2003/2007 von: fcs
Geschrieben am: 10.12.2009 02:26:08

Hallo Petra,

Excel mag es garnicht, wenn man versucht Zellen oder deren Inhalte innerhalb des Datenbereiches eines Pivot-Tabellenbereichs zulöschen. Im Handbetrieb kommmt dann auch immer sofort die von dir beschrieben Meldung oder eine andere, je nach dem in welchem Bereich der Pivot-Tabelle man sich befindet.

Die Meldung unter Excel 2007 wird angezeigt, wenn der Begriff in der Variablen StL im Blatt nicht gefunden wird. Dann gibt Find keine Zelle zurückt und der Delete-Befehl geht ins Leere.

Hier mal eine Code-Anpassung, die zumindest den kontrollierten Ausstieg aus den Prozeduren ermöglicht, ohne das die VBA-Prozdur "gewaltsam" beendet werden muss.

Gruß
Franz

Sub aatest()
  On Error GoTo Fehler
  Dim StL
  
  StL = InputBox("Suchwert", "Suche in Pivot", "Q3") 'Testzeile
  
  Cells.Find(What:=StL, After:=ActiveCell, LookIn:= _
    xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
    xlNext, MatchCase:=False, SearchFormat:=False).Delete
Fehler:
  With Err
    Select Case .Number
      Case 0 'kein Fehler aufgetreten
      Case 91
        MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
        & "Suchwert """ & StL _
        & """ wurde nicht gefunden oder ist bereits ausgeblendet!" & vbLf _
        & "Oder der gefundene Pivotbereich kann nicht gelöscht werden."
      Case 1004
        MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
        & "Suchwert """ & StL _
        & """ wurde im Datenbereich gefunden, hier ist Löschen/Ausblenden nicht möglich!"
      Case Else
        MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
    End Select
  End With
End Sub



  

Betrifft: AW: Pivot Office 2003/2007 von: Petra
Geschrieben am: 10.12.2009 10:58:07

Hallo Franz
bist Du Nachtschwärmer?aber Spass beiseite.
Der Suchbegriff StL ist vorhanden, wenn ich mit der Maus über der VBA-Code fahre, wird der richtige Begriff eingeblendet.
Wie bereits gesagt, in Excel2003 alles kein Problem.
Ich hoffe, jemand hat noch den zündenden Tipp, daher stelle ich nochmals auf offen.
Liebe Grüße Petra


  

Betrifft: AW: selbst gelöst - funktioniert von: Petra
Geschrieben am: 10.12.2009 16:52:38

Guten Abend allerseits

ich wollte meine Lösung nur hier reinstellen, falls jemand anders ein gleiches Problem hat.

das war mein alter Ansatz, der in Excel2007 nicht funktioniert hat:

Cells.Find(What:=StL, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Delete

mit diesem Code funktioniert es sowohl in Excel 2003 wie auch Excel 2007

ActiveSheet.PivotTables("PivotTableact").PivotFields( _
StL).Orientation = xlHidden

Vielleicht kanns ja jemand brauchen.

Schönen Tag noch

Petra


Beiträge aus den Excel-Beispielen zum Thema "Pivot Office 2003/2007"