Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1096to1100
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

Datensätze automatisch ausblenden - Die ZWEITE

Datensätze automatisch ausblenden - Die ZWEITE
Thomas
Hallo
Vor kurzem habe ich hier die Frage gestellt, wie Datensätze durch eine Suchbegriffeingabe gefiltert und die nicht Passenden ausgelendet werden können.
https://www.herber.de/forum/archiv/1096to1100/t1096319.htm#1096319
Die Lösung von Boris funktioniert perfekt.
Nun habe ich das Problem, dass ich dies in mehreren unterschiedlichen Tabellenblättern anwenden möchte. Im hochgeladenen Beispiel läufts im Tabellenblatt "one" ausgezeichnet. Aber in "two" bring ich das einfach nicht in Gang!
Welche Einstellungen muss ich ändern?
Hier ein Beispiel, woran ich arbeite: https://www.herber.de/bbs/user/64081.xls
Danke für die Hilfe
Gruss
Thomas
AW: Datensätze automatisch ausblenden - Die ZWEITE
27.08.2009 00:55:06
Peter
Hallo Thomas
Ist - Sb = Tabelle1.TextBox1.Text
Soll - Sb = Tabelle2.TextBox1.Text
Gruß
Peter
AW: Datensätze automatisch ausblenden - Die ZWEITE
27.08.2009 01:12:25
Thomas
Danke Peter!
In der Beispieltabelle klappt das. Aber in der "richtigen" nicht. Da habe ich 9 Tabellenblätter und möchte im 1. und im 3. suchen.
Egal, welche Tabellennummer ich vergebe - es geht trotzdem nicht.
Ich erhalte folgende Fehlermeldung:
Fehler beim Kompilieren: Methode oder Datenobjekt nicht gefunden.
Private Sub TextBox1_Change() ........... wird gelb markiert
Sb = Tabelle2.TextBox1.Text ............. wird der Teil ".TextBox1" grau hinterlegt.
was kann das sein?
Gruss Thomas
Anzeige
AW: Datensätze automatisch ausblenden - Die ZWEITE
27.08.2009 01:43:46
fcs
Hallo Thomas,
innerhalb von Tabellen- oder Userformmodulen kann man mit der Systemvariablen Me auf die zugehörige Tabelle oder Userform verweisen.
Sb = Me.TextBox1.Text
Dann gibt es beim kopieren von Tabellenblättern bzw. Code keine Objekt-Probleme.
Warum der Fehler in deiner Datei auftritt: ?
Gruß
Franz
AW: aus eins mach ZWEI
29.08.2009 21:59:14
Gerd
Hallo Thomas,
dies ist die Textbox-Prozedur in der Tabelle2(two) deiner Beispieldatei.
Private Sub TextBox1_Change()
Dim Sb As String
Sb = Tabelle1.TextBox1.Text
If Sb  "" Then
Range("A36").autofilter Field:=8, Criteria1:="=*" & Sb & "*", Operator:=xlAnd
Else
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
End If
End Sub
Ich denke, dass die Textbox in Tabelle1(one) stets leer bleibt, wenn Du in der Textbox der Tabelle2(two)
einen Suchbegriff eingibst. Hole halt den Sb aus Tabelle2.
Oder - wie Franz schreibt - Du könntest in den Klassemodulen der Tabelle die Referenzierung
auf die "eigene" Tabelle durch "Me" ersetzen.
Gruß Gerd
Anzeige
AW: aus eins mach ZWEI
30.08.2009 21:56:32
Thomas
Hallo Gerd
Danke für deinen Input. Irgendwie verstehe ich das Ganze immer noch nicht.
Also: ich habe 9 Tabellenblätter. Dabei will ich im ersten und im dritten suchen können.
Das erste heisst: "Kontenplan".
Die "linked cell" ist in A2 (Eigenschaften der Textbox), Titelzeile und gesetzte Autofilter Zeile 4, der erste Datensatz kommt in Zeile 5, die Hilfsspalte (Zusammenfassung aller Spalten einer Zeile) ist in Spalte K.
Der Code lautet:
Private Sub TextBox1_Change()
Dim Sb As String
Sb = Tabelle1.TextBox1.Text
If Sb  "" Then
Range("A5").AutoFilter Field:=11, Criteria1:="=*" & Sb & "*", Operator:=xlAnd
Else
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
End If
End Sub

Das dritte Tabellenblatt heisst "Protokoll-Reg."
Die "linked cell" ist in C2, Titelzeile und gesetzte Autofilter Zeile 3, der erste Datensatz kommt in Zeile 4, die Hilfsspalte ist ebenfalls in K.
Der Code lautet:
Private Sub TextBox1_Change()
Dim Sb As String
Sb = Tabelle1.TextBox1.Text
If Sb  "" Then
Range("C4").AutoFilter Field:=11, Criteria1:="=*" & Sb & "*", Operator:=xlAnd
Else
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
End If
End Sub

Was ich jetzt festgestellt habe:
Das TabBlatt Protokoll ist 100% vom Kontenplan abhängig, nicht aber umgekehrt. Steht in Kontenplan etwas drin, kann ich bei Protokoll angeben, was ich will, es nimmt die Auswahl von Kontenplan. Steht in Kontenplan aber nichts, ist in Protokoll tote Hose…
Wie mache ich diese beiden Suchmodi bloss voneinander unabhängig?
Danke für die Hilfe
Gruss Thomas
Anzeige
AW: aus eins mach ZWEI
31.08.2009 14:17:49
fcs
Hallo Thomas,
in den beiden Codes für die Textboxen steht immer noch als 3. Zeile der gleiche Code:
Sb = Tabelle1.TextBox1.Text

Also wird bei der Suche in beiden Tabellen auf die Textbox1 in "Tabelle1" zugegriffen. Da du im Code mit dem Codenamen der Tabelle arbeitest ist für uns nicht erkennbar, welche Tabelle wirklich zugordnet ist.
Du kannst nur im VBA-Editor-Projektexplorer erkennen welche, da dort in Klammern hinter dem Code-Namen der öffentliche Name erkennbar ist. Der öffentliche Name ist der, der in Excel auf dem Register steht.
Wenn du unbedingt den Code-Namen verwenden willst, dann muss du für Blatt "Protokoll-Reg." statt "Tabelle1" auch den entsprechenden Code-Namen einsetzen. Ich vermute mal "Tabelle3", aber das muss du im VBA-Editor prüfen.
Deshalb auch mein Vorschlag, "Tabelle1" durch "Me" zu ersetzen, damit die Objektzuordnung korrekt ist, wenn auf Steuerelemente in der zum Code gehörenden Tabelle zugegriffen werden soll. So gibt es auch keine Probleme, wenn Tabellen kopiert werden oder Code von einem Tabellen-Modul in ein anderes.
Gruß
Franz
Anzeige
AW: aus eins mach ZWEI
31.08.2009 19:42:58
Gerd
Hallo Thomas,
damit jetzt nichts mehr schief geht. :-)
Das dritte Tabellenblatt heisst "Protokoll-Reg."
Der Code lautet für das Tabellenblatt-Modul von "Protokoll-Reg." :
Private Sub TextBox1_Change()
Dim Sb As String
Sb Me.TextBox1.Text
If Sb  "" Then
Range("C4").AutoFilter Field:=11, Criteria1:="=*" & Sb & "*", Operator:=xlAnd
Else
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
End If
End Sub
Gruß Gerd
AW: Joi, doch was schief gegangen :-)
31.08.2009 19:46:06
Gerd
Der Code lautet für das Tabellenblatt-Modul von "Protokoll-Reg." :
Korrektur:
Private Sub TextBox1_Change()
Dim Sb As String
Sb= Me.TextBox1.Text
If Sb  "" Then
Range("C4").AutoFilter Field:=11, Criteria1:="=*" & Sb & "*", Operator:=xlAnd
Else
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
End If
End Sub
Gruß Gerd
Anzeige
AW: Joi, doch was schief gegangen :-)
01.09.2009 01:43:02
Thomas
Vielen, vielen Dank Gerd!
Es funktioniert, auch wenn ich es noch nicht ganz verstehe (bin vielleicht etwas schwer von Begriff, werde mich aber mal durchackern... *lach!)
Mit einer ganz andern Tabelle werde ich es nach dem Urlaub mal versuchen.
Ihr seid schon gut ;-)
Gruss
Thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige