Clever-Excel-Forum

Normale Version: Suchfunktion mit Zeilenanzeige
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Forum-Mitglieder,
Ich habe lange Zeit gesucht, aber habe keinen Lösungsweg für mein Problem gefunden.
Um meine Problemdarstellung zu vereinfachen habe ich im Anhang meine Excel Datei hochgeladen.

Nun zum Problem:

Auf meiner ersten Seite in Excel habe ich eine Tabelle mit dem Spaltne: Eissorte, Farbe, Geschmack, Geruch, Eigenschaft1, Eigenschaft2.
Die Spalten Eigenschaft1 und Eigenschaft 2 beschreiben im Wesentlichen für Kinder=2 oder Erwachsene= 1 oder beide=3 geeignet und Farbe in Zahlen(1-5) um eine Funktion bzw. Code zu vereinfachen.

Jetzt wir die Tabelle im laufe der Zeit wachsen und ich möchte sie für "Anwender" vereinfachen. Deshalb soll auf Seite 2 eine Art „Abfrage“  initiieret werden. Dort kann ein "Anwender" im ersten Feld (A3) eine Zahl zwischen 1(Erwachsen) und 2 (Kind) wählen.
Wählt er 1 werden die Zeilen aus Eigenschaft1 mit der Zahl 1 und 3 angezeigt, bei 2 werden alle Zeien mit dem Wert 2 und 3 angezeigt. Im zweiten Feld (B3) sollen mehrere Zahlen gewählt werden können z.B 1 und 4, werden diese Zahlen gewählt, soll aus Eigenschaft 2, die entsprechenden Zahlen in Abhängigkeit mit der ersten gewählten Zahl angezeigt werden.

Ich hoffe ich habe das Problem verständlich genug erklärt.
Sollten Fragen offen sein werde ich diese gerne sofort beantworten.
Ich hoffe ihr könnt mir helfen. Ich habe schon sehr vieles mit WENN, INDEX, ZÄHLEWENN experimentiert. Aber ich bin leider auf keinen grünen Zweig gekommen. Ich bin jetzt wirklich verzweifelt.
Ich wäre dankbar über jede Hilfe. Ich bin leider kein Experte im Thema Makros etc.

mfg

moryboy
Hallo,

vielleicht wäre auch der Spezialfilter eine Möglichkeit. Ich habe hier auf die zweite Folge von dem Tutorial verlinkt. Schaue dir auch ruhig mal die anderen Seiten dazu an.
Vielen Dank Stefan ! Ich werde es mir mal anschauen. Ich werde dann nochmal Feedback geben, wie es gelaufen ist.
Danke hat mir super geholfen ! Schade nur das sich der Spezialfilter nicht bei änderung anpasst ! Mir hat zudem noch dieses Video geholfen: Youtube Video Spezialfilter !
Hallo,

(22.06.2015, 12:33)moryboy94 schrieb: [ -> ]Schade nur das sich der Spezialfilter nicht bei änderung anpasst !

Dafür bräuchtest Du VBA.
Hi Stefan,
Danke für deine Antwort. Ich würde mir gerne VBA bei bringen, wenn dies zum Erfolg führt. Kann VBA auf Excel2010 angewendet werden ? Ist es möglich für einen Neuling sich in die Materie einzulesen und es auch in die Tat umzusetzen ?

Mit freundlichen Grüßen
moryboy
Hi,

lies dich doch mal hier ein (ein paar Beispiele):

Wikibooks (klick)

Online-Excel (klick)

Ansonsten kannst du auch die alte Tante Gugl fragen, zum Beispiel nach VBA für Excel. (klick) Und auf keinen Fall zu vergessen unsere eigene Tipps-und Tricks-Rubrik.
Hallöchen,

geht die Frage nicht in diese Richtung?
http://www.clever-excel-forum.de/thread-33.html
Hallo Leute,
Vielen Dank für die zahlreichen Tipps und Tricks. Ich habe ja leider lange nichts mehr von mir hören lassen. Nun bin ich gerade am VBA Programmieren. Jedoch komm ich einfach nicht weiter, auch Gugl kann mir leider nicht helfen.
Ich werde meine UserForm hochladen mit der oben hochgeladenen Excel-Datei müsstet ihr das Problem erkennen.

So, Das Problem in Worten:
Ich habe in meiner UserForm, 2 Textfelder, 3 Button,
In Textfeld 1 kann man eine Zahl zwischen 1-3 wählen. Im Textfeld 2 kann man eine Zahl zwischen 1-5 wählen.
Mein Problem bezieht sich nun nur auf Textfeld 1 und seine Wirkung mit dem Button 1, bei dessen Klick die Eingabe bestätigt wird.
Nun trage ich z.B. in mein Textfeld 1, die Zahl 1, klicke auf den Button1, dann wird erstmals geprüft ob die Eingabe möglich ist. Das klappt auch einwandfrei.
Danach mach ich eine Schleife die i hochzählt. Innerhalb dieser Schleife frage ich ab die TextBox den gleichen Wert hat, wie in der Zelle Spalte 5, Reihe i.
Nun passiert aber etwas eigenartiges. Auch wenn ich meine Schleife so geschrieben habe, dass i niemals größer als 13 werden kann, löscht er alle wahllos Zeilen zwischen 13 und 20 und Zeile 2 und 3 nicht.

Ich denke mein Problem ist in Worten geschrieben schwierig zu verstehen, deshalb lade ich auch meinen programmierten Text hoch. Es wäre super nett, wenn sich das jemand im Zusammenhang mit meiner Excel-Tabelle anschauen könnte.

Ich danke vielmals im Voraus !!!

P.S.: Ich habe den kompletten Programmcode, kommentiert so gut es geht ! Konnte ihn leider nicht hochladen also füge ich ihn hier unten ein ! Ich hab noch ein Bild meiner Oberfläche in VBA eingefügt, zum Verständnis.

Code:
Private Sub CommandButton1_Click()                  'Klick auf Button 1

X = Int(TextBox1.Text)                              ' Textbox Eingabe wird als Variable deklariert

If X > 0 And X < 3 Then                             ' If Abfrage ob X im realistischen bereich
   MsgBox "Ihre Eingabe war erfolgreich"
   Else
   MsgBox "Ihnen ist ein Fehler unterlaufen"
End If

Dim i As Integer 'Variable 1 für Abfrage
Dim j As Integer 'Variable 2 für Abfrage
Dim k As Integer 'Variable 3 für Abfrage
Dim r As Range

Set r = ActiveSheet.Range("A2:F12")
i = 1
l = ListBox1 'Listbox als Variable definiert zur Kürzung(Listbox wurde entfernt)

marke1:         'Sprungmarke

   If i > 13 Then  'If-Abfrage bei Zelle = Wert, wird zeile versteckt, Zelle <> Wert Wird Zeile angezeigt
       i = i + 1
       MsgBox "Reihe wird geprüft"
           If TextBox1.Value = Worksheets("Sheet1").Cells(i, 5).Value Then
           r.Offset(i, 5).EntireRow.Hidden = False
           MsgBox "Reihe wird angezeigt"
           Else
           r.Offset(i, 5).EntireRow.Hidden = True
           MsgBox "Reihe wird angezeigt"
           End If
   GoTo marke1
   Else
   k = k + 1
   MsgBox "Else2"
   End If 'Ende der Abfrage
           
           
   
End Sub     'Ende Klick button 1


Private Sub CommandButton2_Click() 'Klick Button2

Y = Int(TextBox2.Text) 'TxtBox wird als Int variable deklariert

If Y > 0 And Y < 5 Then 'Abfrage auf realistische Eingabe
MsgBox "Ihre Eingabe war erfolgreich"
Else
MsgBox "Ihnen ist ein Fehler unterlaufen"
End If 'Ende Abfrage

End Sub 'Ende Button2 Klick


Private Sub CommandButton3_Click()                  'ResetKnopf für Tabelle

Dim a As Integer                                    'Variable 1 zum Übertragen von Daten
Dim b As Integer
Dim r As Range                                      'gesetzt für r Offset

Set r = ActiveSheet.Range("A2:F12")                 'notwendig für r Offset

a = 1                                               'Zähler auf 1 setzen

marke2:

   If a < 13 Then                                  'Abfrage ob kleiner als Zeilen Anzahl
       r.Offset(a, 6).EntireRow.Hidden = False     'Ja = Zeile anzeigen
        a = a + 1                                  'Dann Zeile um 1 erhöhen
       GoTo marke2                                 'Dann springe zu marke 2
       Else
       b = b + 1                                   'Nein = +1 für sinnlose variable
       MsgBox "Reset erfolgreich"                  'Ausgabe wenn fertig
   End If
   
End Sub
Hallo,


Zitat:Auch wenn ich meine Schleife so geschrieben habe, dass i niemals größer als 13 werden kann

Das ist wohl ein Trugschluß!
Zitat:If i > 13 Then
     i = i + 1
Heißt auf Deutsch: Wenn i Größer als 13, dann addiere 1 zu i!

Wo ist i auf 13 begrenzt??????
Seiten: 1 2