Microsoft Excel

Herbers Excel/VBA-Archiv

wo ist da der fehler?

Betrifft: wo ist da der fehler? von: Spenski
Geschrieben am: 09.06.2014 22:17:31

huhu anfänger braucht mal wieder hilfe

privat

Sub test()
    If ActiveSheet.Range("b33") = "22730" Then
        ActiveSheet.ChartObjects("Diagramm 2").Activate
        With ActiveSheet.PivotTables("PivotTable9").PivotFields("KST")
        .PivotItems("22730").Visible = True
    End With

    If ActiveSheet.Range("b33") = "22790" Then
        ActiveSheet.ChartObjects("Diagramm 2").Activate
        With ActiveSheet.PivotTables("PivotTable9").PivotFields("KST")
        .PivotItems("22790").Visible = True
    End With
        
    End If
    End If
End Sub

  

Betrifft: AW: wo ist da der fehler? von: Daniel
Geschrieben am: 09.06.2014 22:35:03

HI
warum lässt du uns raten?
was der Fehler ist, solltest du am besten wissen.
Entweder gibt es eine Fehlerabbruch, dann bekommst du eine Fehlernummer und einen Hinweistest, außerdem wird im VBA-Editor die Zeile, die den Fehler verursacht, gelb markiert.
Diese Informationen solltest du uns dann geben, dh Fehlernummer, Fehlertext und die Zeile in welcher der Fehler passiert.

erfolgt kein Fehlerabbruch, dann macht das Programm was anderes, als du erwartest.
Du solltest uns dann beschreiben, was das Programm deinem Wunsch nach machen soll und was es tatsächlich macht.

Wenn man sich deinen Code so anschaut, dann fällt auf, dass die Einrückungen falsch gesetzt sind, dh du machst nach dem WITH keine Einrückung, dafür aber dann beim END WITH rückst du zurück.

richtig Eingerückt sieht dein Code so aus:

Sub test()
    If ActiveSheet.Range("b33") = "22730" Then
        ActiveSheet.ChartObjects("Diagramm 2").Activate
        With ActiveSheet.PivotTables("PivotTable9").PivotFields("KST")
            .PivotItems("22730").Visible = True
        End With

        If ActiveSheet.Range("b33") = "22790" Then
            ActiveSheet.ChartObjects("Diagramm 2").Activate
            With ActiveSheet.PivotTables("PivotTable9").PivotFields("KST")
                .PivotItems("22790").Visible = True
            End With
        
        End If
    End If
End Sub
und dann fällt auf, dass deine IF-Bedingungen so gestellt sind, dass die zweite IF-Bedinung nie WAHR werden kann, weil deren WAHR-Fall schon von der ersten IF-Bedingung ausgeschlossen wird.

richt sieht es dann so aus:
Sub test()
    If ActiveSheet.Range("b33") = "22730" Then
        ActiveSheet.ChartObjects("Diagramm 2").Activate
        With ActiveSheet.PivotTables("PivotTable9").PivotFields("KST")
            .PivotItems("22730").Visible = True
        End With
    ElseIf ActiveSheet.Range("b33") = "22790" Then
        ActiveSheet.ChartObjects("Diagramm 2").Activate
        With ActiveSheet.PivotTables("PivotTable9").PivotFields("KST")
            .PivotItems("22790").Visible = True
        End With
    End If
End Sub
eine weitere Ursache, warum nichts passiert könnte sein, dass in den Zellen Zahlen stehen, du aber den Vergleich auf einen Text machst (wegen der Anführungszeichen) und beim Vergleich mit "=" ist für VBA eine Zahl immer ungleich einem Text, auch wenn Zahl und Text aus den selben Ziffern bestehen, dh "123" ist immer ungleich 123.

lass also mal bei den IF-THENs die Anführungszeichen weg.

Gruß Daniel


  

Betrifft: AW: wo ist da der fehler? von: Spenski
Geschrieben am: 09.06.2014 22:41:48

hallo daniel.
es lag am elseif

ich möchte dir danken. besonders weil du es mir so gut erklärt hast.

gruss
christian


  

Betrifft: noch was ähnliches daher kein neuer thread von: Spenski
Geschrieben am: 10.06.2014 01:07:44

hab folgendes mit dem recorder aufgenommen:

Sub Makro10()

    ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=1, Operator:= _
        xlFilterValues, Criteria2:=Array(2, "6/18/2014")
End Sub

damit filter ich in einer tabelle das datum . in dem beispiel den 18.06.2014.
statt der "6/18/2014" würd ich gerne den inhalt der zelle (Z1) als filterkriterium haben in der auch ein datum steht

geht sowas??

gruss


  

Betrifft: AW: noch was ähnliches daher kein neuer thread von: Daniel
Geschrieben am: 10.06.2014 02:02:21

Kannst du mir bitte erklären, worin die Ähnlichkeit zwischen dem Aufbau einer If-Then-Struktur und dem Autofiltern besteht?
Ich sehe da keinen inhaltlichen Zusammenhang.
Gruß Daniel


  

Betrifft: AW: noch was ähnliches daher kein neuer thread von: Spenski
Geschrieben am: 10.06.2014 02:46:05

jetzt wo du es sagts^^ ...k ich mach nen neuen auf
danke


 

Beiträge aus den Excel-Beispielen zum Thema "wo ist da der fehler?"