Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1476to1480
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ShowAllData fehlgeschlagen

ShowAllData fehlgeschlagen
27.02.2016 21:18:02
Lukas
Hi, ich Programmiere in Excel VBA gerade ein Formular...
Meine Datei: https://www.herber.de/bbs/user/103930.xlsm
Der Code:

  • Option Explicit
    
    Private Sub cmbUnterkategorie_Change()
    With cmbUnterkategorie
    If .Value = "Ton" Or .Value = "Glas" Or .Value = "Glasscheibe" Or .Value = "Wolle" Then
    lblArt.Caption = "Farbe:"
    lblArt.Visible = True
    Me.cmbArt.RowSource = "Spalte3"
    cmbArt.Visible = True
    ElseIf .Value = "Bretter" Or .Value = "Holz" Or .Value = "Zauntor" Then
    lblArt.Caption = "Holzart:"
    lblArt.Visible = True
    Me.cmbArt.RowSource = "Spalte4"
    cmbArt.Visible = True
    ElseIf .Value = "Zaun" Then
    lblArt.Caption = "Zaunart:"
    lblArt.Visible = True
    Me.cmbArt.RowSource = "Spalte5"
    cmbArt.Visible = True
    ElseIf .Value = "Treppe" Then
    lblArt.Caption = "Treppenart:"
    lblArt.Visible = True
    Me.cmbArt.RowSource = "Spalte9"
    cmbArt.Visible = True
    ElseIf .Value = "Tür" Then
    lblArt.Caption = "Türenart:"
    lblArt.Visible = True
    Me.cmbArt.RowSource = "Spalte7"
    cmbArt.Visible = True
    ElseIf .Value = "Falltür" Then
    lblArt.Caption = "Falltürenart:"
    lblArt.Visible = True
    Me.cmbArt.RowSource = "Spalte6"
    cmbArt.Visible = True
    ElseIf .Value = "Stufe" Then
    lblArt.Caption = "Stufenart:"
    lblArt.Visible = True
    Me.cmbArt.RowSource = "Spalte8"
    cmbArt.Visible = True
    ElseIf .Value = "Block" Then
    lblArt.Caption = "Blockart:"
    lblArt.Visible = True
    Me.cmbArt.RowSource = "Spalte10"
    cmbArt.Visible = True
    ElseIf .Value = "Erz" Then
    lblArt.Caption = "Erz:"
    lblArt.Visible = True
    Me.cmbArt.RowSource = "Spalte11"
    cmbArt.Visible = True
    ElseIf .Value = "Mauer" Then
    lblArt.Caption = "Mauerart:"
    lblArt.Visible = True
    Me.cmbArt.RowSource = "Spalte12"
    cmbArt.Visible = True
    Else
    lblArt.Visible = False
    cmbArt.Visible = False
    End If
    End With
    Tabelle1.ShowAllData
    Tabelle1.Range("A1:H1").AutoFilter field:=7, Criteria1:="Baumaterial"
    Tabelle1.Range("A1:H1").AutoFilter field:=8, Criteria1:=cmbUnterkategorie.Text
    Tabelle1.Range("A1:H1").AutoFilter field:=5, Criteria1:=cmbArt.Text
    End Sub
    

    Private Sub UserForm_Initialize()
    Me.cmbUnterkategorie.RowSource = "Spalte2"
    End Sub


  • Nun meine 1. Frage: Warum bekomme ich die Fehlermeldung "Die Methode ShowAllData für das Objekt _Worksheet ist fehlgeschlagen"? Was muss ich ändern bzw. was ist falsch?
    Meine 2. Frage: Wie kann ich vor den Autofiltern immer auf eine Auswahl warten, sodass danach gefiltert werden kann? Also wie warte ich auf eine Auswahl?
    Danke für die Antworten schon im Voraus!

    4
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: ShowAllData fehlgeschlagen
    27.02.2016 22:30:53
    Uduuh
    Hallo,
    1. Frage: Wahrscheinlich weil die Tabelle nicht gefiltert ist.
    If Tabelle1.Filtermode Then Tabelle1.ShowAllData
    2. Frage: Da kenne ich keine Möglichkeit. Filtern löst kein Ereignis aus.
    Anstatt der ElseIf würde ich mit Select Case arbeiten.
    Gruß aus’m Pott
    Udo

    AW: ShowAllData fehlgeschlagen
    28.02.2016 11:42:58
    Lukas
    Vielen Dank für eure Hilfe bisher! Ich habe mir allerdings generell überlegt, den Code ein wenig umzubauen. Neues Dokument: http://www.file-upload.net/download-11347394/Minecraft-Liste.xlsm.html
    Ich habe nun auf die Zusatztabelle mit den Datensätzen verzichtet, da das zu viel Arbeit beanspruchen würde. Ich entnehme nun die Daten direkt aus dem gefilterten. Das mit dem Filtern funktioniert soweit auch, allerdings wird nun sobald ich z.B. Ton ausgewählt habe, das neue drop Down nicht mehr eingeblendet.
    Was habe ich falsch gemacht?
    Danke für die Antworten schon im Voraus!

    Anzeige
    AW: ShowAllData fehlgeschlagen
    28.02.2016 11:51:41
    Lukas
    Vielen Dank für eure Hilfe bisher! Ich habe mir allerdings generell überlegt, den Code ein wenig umzubauen. Neues Dokument: http://www.file-upload.net/download-11347394/Minecraft-Liste.xlsm.html
    Code:
  • Option Explicit
    Private Sub cmbUnterkategorie_Change()
    If Tabelle1.FilterMode = True Then
    Tabelle1.ShowAllData
    End If
    Tabelle1.Range("berKategorie").AutoFilter Field:=1, Criteria1:="Baumaterial"
    Do
    Tabelle1.Range("berUnterkategorie").AutoFilter Field:=1, Criteria1:=cmbUnterkategorie. _
    Text
    Loop While cmbUnterkategorie = ""
    With cmbUnterkategorie
    Select Case cmbUnterkategorie
    Case .Text = "Ton" Or .Text = "Glas" Or .Text = "Glasscheibe" Or .Text = "Wolle"
    lblArt.Caption = "Farbe:"
    lblArt.Visible = True
    cmbArt.RowSource = "berArt"
    cmbArt.Visible = True
    End Select
    End With
    'With cmbUnterkategorie
    'Select Case cmbUnterkategorie
    '   Case .Value = "Ton" Or .Value = "Glas" Or .Value = "Glasscheibe" Or .Value = "Wolle"
    '      lblArt.Caption = "Farbe:"
    '      lblArt.Visible = True
    '      Me.cmbArt.RowSource = "Spalte3"
    '      cmbArt.Visible = True
    '   Case .Value = "Bretter" Or .Value = "Holz" Or .Value = "Zauntor"
    '      lblArt.Caption = "Holzart:"
    '      lblArt.Visible = True
    '      Me.cmbArt.RowSource = "Spalte4"
    '      cmbArt.Visible = True
    '   Case .Value = "Zaun"
    '      lblArt.Caption = "Zaunart:"
    '      lblArt.Visible = True
    '      Me.cmbArt.RowSource = "Spalte5"
    '      cmbArt.Visible = True
    '   Case .Value = "Treppe"
    '      lblArt.Caption = "Treppenart:"
    '      lblArt.Visible = True
    '      Me.cmbArt.RowSource = "Spalte9"
    '      cmbArt.Visible = True
    '   Case .Value = "Tür"
    '      lblArt.Caption = "Türenart:"
    '      lblArt.Visible = True
    '      Me.cmbArt.RowSource = "Spalte7"
    '      cmbArt.Visible = True
    '   Case .Value = "Falltür"
    '      lblArt.Caption = "Falltürenart:"
    '      lblArt.Visible = True
    '      Me.cmbArt.RowSource = "Spalte6"
    '      cmbArt.Visible = True
    '   Case .Value = "Stufe"
    '      lblArt.Caption = "Stufenart:"
    '      lblArt.Visible = True
    '      Me.cmbArt.RowSource = "Spalte8"
    '      cmbArt.Visible = True
    '   Case .Value = "Block"
    '      lblArt.Caption = "Blockart:"
    '      lblArt.Visible = True
    '      Me.cmbArt.RowSource = "Spalte10"
    '      cmbArt.Visible = True
    '   Case .Value = "Erz"
    '      lblArt.Caption = "Erz:"
    '      lblArt.Visible = True
    '      Me.cmbArt.RowSource = "Spalte11"
    '      cmbArt.Visible = True
    '   Case .Value = "Mauer"
    '      lblArt.Caption = "Mauerart:"
    '      lblArt.Visible = True
    '      Me.cmbArt.RowSource = "Spalte12"
    '      cmbArt.Visible = True
    '   Case Else
    '      lblArt.Visible = False
    '      cmbArt.Visible = False
    'End Select
    'End With
    'If Tabelle1.FilterMode = True Then
    'Tabelle1.ShowAllData
    'End If
    'Tabelle1.Range("A1:H1").AutoFilter field:=7, Criteria1:="Baumaterial"
    'Tabelle1.Range("A1:H1").AutoFilter field:=8, Criteria1:=cmbUnterkategorie.Text
    'Tabelle1.Range("A1:H1").AutoFilter field:=5, Criteria1:=cmbArt.Text
    End Sub
    

    Private Sub UserForm_Initialize()
    Me.cmbUnterkategorie.RowSource = "Spalte2"
    End Sub
    


  • Ich habe nun auf die Zusatztabelle mit den Datensätzen verzichtet, da das zu viel Arbeit beanspruchen würde. Ich entnehme nun die Daten direkt aus dem gefilterten. Das mit dem Filtern funktioniert soweit auch, allerdings wird nun sobald ich z.B. Ton ausgewählt habe, das neue drop Down nicht mehr eingeblendet.
    Was habe ich falsch gemacht?
    Danke für die Antworten schon im Voraus!

    Anzeige
    Zu 2.: Ein Ereignis würde ausgelöst wdn, ...
    27.02.2016 23:55:05
    Luc:-?
    …Lukas (& Udo),
    falls eine ZellFml des Blattes mit TEILERGEBNIS(101ff;…) bzw AGGREGAT(…;1|3|5|7;…) arbeitet, nämlich Worksheet_Calculate, aber erst nach Filterung. Wenn dir das reicht, war's das wohl. Ansonsten müsstest du in einer Do…Loop-Schleife mit/nach DoEvents den Auswahl-Status permanent abfragen. Ändert der sich (auf typische Weise), kann die Schleife mit Exit Do verlassen wdn, was es dann ebenfalls war.
    Feedback erwünscht! Gruß, Luc :-?
    Besser informiert mit …
    Anzeige

    80 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige