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

Variable uebergeben

Variable uebergeben
abu
Hallo Zusammen,
habe mal wieder ein kleines Problem und hoffe Ihr koennt mir helfen.
In meiner Userform habe ich eine Suchfunktion die mir die Ergebnisse in einer ListBox anzeigt. Da diese noch ein wenig zu ungenau ist, moechte ich nun ComboBoxen davor setzen die die Daten eingrenzen.
Es sind insgesamt vier Boxen. Wie uebergebe ich den nun die variable iZeile?
Private Sub ComboBox1_Change(izeile As Interger) funktioniert nicht.
Hier der Code fuer die erste Box aber wie mache ich bei der 2. weiter?
Private Sub ComboBox1_Change()
Dim iZeile As Integer
Sheets("Tabelle1").Range("A2:A" & Sheets("Tabelle1").Range("A65536").End(xlUp).Row).Value = False
If ComboBox1.Value = "COM" Then
For iZeile = ActiveSheet.CheckBoxes.Count To 2 Step -1
If Sheets("Tabelle1").Cells(iZeile, 3) = "COM" Then
Sheets("Tabelle1").Cells(iZeile, 1) = True
Else
Sheets("Tabelle1").Cells(iZeile, 1) = False
End If
Next iZeile
End If
Beste Gruesse
Abu

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Variable uebergeben
24.08.2010 09:37:02
Ramses
Hallo
Wozu musst die Variable "iZeile" denn "übergeben". Die Variable iZeile ist doch bloss ein Schleifenzähler der abgearbeitet wird.
Ausserdem muss "iZeile" ja nicht unbedingt mit der Zelle übereinstimmen die du prüfst.
Ausserdem, warum sind die Checkboxen in einer Tabelle (ActiveSheet.CheckBoxes.Count) während die Comboboxen ? vor einer Listbox in einer Userform stehen sollen ?
?
Fragen über Fragen.
Zeig doch am besten mal deine Datei und erklär dort drin was du erreichen willst.
Gruss Rainer
AW: Variable uebergeben
24.08.2010 10:06:56
abu
Hallo Rainer,
danke fuer Dein Interesse. Ich habe diese Datei hier im Forum gefunden und moechte auf diesem Wege noch mal danke an Hans-Dieter sagen..
https://www.herber.de/bbs/user/71223.xls
Beste Gruesse
abu
Anzeige
AW: Variable uebergeben
24.08.2010 10:35:44
Ramses
Hallo
Sorry,... aber das ist mir definitiv zu viel.
Die Suchfunktion musst du so anpassen
Statt

Do
    If Not (IsNumeric(Application.Match(rng.Row, vtmp, 0))) Then
        ReDim Preserve vtmp(UBound(vtmp) + 1)
        vtmp(UBound(vtmp)) = rng.Row
        ListBox1.AddItem .Cells(rng.Row, 2)
        ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(rng.Row, 3)
        ListBox1.List(ListBox1.ListCount - 1, 2) = .Cells(rng.Row, 4)
        ListBox1.List(ListBox1.ListCount - 1, 3) = .Cells(rng.Row, 5)
        ListBox1.List(ListBox1.ListCount - 1, 4) = .Cells(rng.Row, 6)
        ListBox1.List(ListBox1.ListCount - 1, 5) = .Cells(rng.Row, 7)
        ListBox1.List(ListBox1.ListCount - 1, 6) = rng.Row
    End If
    Set rng = .Range("B:G").FindNext(rng)
Loop While Not rng Is Nothing And rng.Address <> strFirst

verwendest du

Do
    If Cells(rng.Row, 1) = True Then
        ListBox1.AddItem .Cells(rng.Row, 2)
        ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(rng.Row, 3)
        ListBox1.List(ListBox1.ListCount - 1, 2) = .Cells(rng.Row, 4)
        ListBox1.List(ListBox1.ListCount - 1, 3) = .Cells(rng.Row, 5)
        ListBox1.List(ListBox1.ListCount - 1, 4) = .Cells(rng.Row, 6)
        ListBox1.List(ListBox1.ListCount - 1, 5) = .Cells(rng.Row, 7)
        ListBox1.List(ListBox1.ListCount - 1, 6) = rng.Row
    End If
    Set rng = .Range("B:G").FindNext(rng)
Loop While Not rng Is Nothing And rng.Address <> strFirst


Den Code der 1. Comboxbox must du noch auf die anderen 3 übertragen
Aber ich würde dir vielleicht raten, mit etwas kleinerem anzufangen, oder zumindest deine Datei völlig neu aufzusetzen. Diese UF auf deine Bedürfnisse anzupassen ist wahrscheinlich mehrere Stufen zu hoch und zu viel.
Vor allem kann niemand mehr nachvollziehen, was dort eigentlich passieren soll weil es jetzt schon ein Mischmasch deines Codes und des Codes der Originalmappe ist.
Gruss Rainer
Anzeige
AW: Variable uebergeben
24.08.2010 10:59:14
abu
Hallo Rainer,
das hatte ich mir schon gedacht aber trotzdem Danke das Du dir die Zeit genommen hast.
Koenntest Du mir denn vllt. noch erklaeren was dein Code bewirken soll wenn er laufen wuerde?
Hatte den Code fuer die anderen 3 noch nicht geschrieben weil ich nicht weiss wie ich den Wert von Variable izeile in den Code fuer die zweite ComboBox bekomme. Vllt. koenntest Du mir denn mit einem kleine Codebeispiel erklaeren wie man sowas macht oder funktioniert das nicht bei eine Change-Ereignis? Da ich ja hier immer einer Fehlermeldung bekomme:
Private Sub ComboBox1_Change(izeile As Interger)
Beste Gruesse
abu
ps. vllt hast Du recht und ich sollte es neu aufsetzen aber ich bin keine Experte und fuer mich ist es einfacher mir was anzuschauen was schon funktioniert und es dann zu aendern als Blanko anzufangen. Vllt. hast Du auch mal ein Tip wo man was nachschlagen kann...
Anzeige
AW: Variable uebergeben
24.08.2010 15:14:57
Ramses
Hallo
"...Koenntest Du mir denn vllt. noch erklaeren was dein Code bewirken soll wenn er laufen wuerde?..."
Dann denke ich, ist das Projekt auf jeden Fall zu gross.
DU hast doch den Code der Combobox "geschrieben" die in der Spalte A den Suchbegriff mit der Checkbox markiert.
DU setzt doch das Häkchen und damit WAHR oder FALSCH in die jeweilige Zelle der Spalte A.
Mein Code macht nichts anderes als wenn ein Suchbegriff gefunden wurde, zu prüfen
If Cells(rng.Row, 1) = True Then
ob in dieser Zeile das Häkchen gesetzt ist oder nicht. Wenn ja, wird der Wert in die Listbox geschrieben und sonst nicht.
"...weil ich nicht weiss wie ich den Wert von Variable izeile in den Code fuer die zweite ComboBox bekomme...:"
Gar nicht, wozu auch.
"..fuer mich ist es einfacher mir was anzuschauen was schon funktioniert ..."
Das glaube ich Dir
"...und es dann zu aendern..."
Das wiederum nicht. Wenn du die einzelne Zeile die ich geändert habe, nicht auf Funktion interpretieren kannst,.... wie willst du dann das ganze andere im Code ändern ?
"....Vllt. hast Du auch mal ein Tip wo man was nachschlagen kann...:"
Gar nicht. Selber machen, Funktion definieren was wo wie funktionieren soll, und dann Schritt für Schritt umsetzen.
Gruss Rainer
Anzeige
Suchfunktion anpassen
24.08.2010 15:49:00
abu
Hallo Rainer,
danke das Du mir meine Unwissenheit noch mal vor Augen gefuehrt hast.
Nun ich werde es trotzdem weiter versuchen und hoffen das mir freundliche Menschen wie Du auch weiterhin helfen.
Mein Code macht nichts anderes als wenn ein Suchbegriff gefunden wurde, zu prüfen...

Die Zeile hatte ich schon verstanden aber Du laesst ja diesen Teil Weg:
If Not (IsNumeric(Application.Match(rng.Row, vtmp, 0))) Then
ReDim Preserve vtmp(UBound(vtmp) + 1)
vtmp(UBound(vtmp)) = rng.Row
und ohne diesen Teil funktioniert die Suchfunktion nicht mehr... Vllt. hast Du trotzdem lust mir etwas beizubringen und mir zu Erklaeren was denn noch geandert werden muss.
"...weil ich nicht weiss wie ich den Wert von Variable izeile in den Code fuer die zweite ComboBox bekomme...:"
Gar nicht, wozu auch.
OK, den Denkfehler habe ich jetzt verstanden.
"...und es dann zu aendern..."
Das wiederum nicht. Wenn du die einzelne Zeile die ich geändert habe, nicht auf Funktion interpretieren kannst,.... wie willst du dann das ganze andere im Code ändern ?

Na die Antwort gibst Du ja selber:Selber machen, Funktion definieren was wo wie funktionieren soll, und dann Schritt für Schritt umsetzen.
Nun ich denke ich bin auf einem guten Weg auch wenn ich einen anderen Ansatz waehle.
Beste Gruesse
Abu
Anzeige
AW: Suchfunktion anpassen
24.08.2010 17:23:09
Ramses
Hallo
"..und ohne diesen Teil funktioniert die Suchfunktion nicht mehr...."
Warum nicht ?
Das habe ich doch getestet. Ausserdem werden die Daten in diesem Array im ganzen nachfolgenden Code nicht mehr weiterverwendet und hat somit keinerlei Funktion
Code mit meiner Änderung
Userbild
Als Suchbegriff wird "xx" verwendet, weil das bei allen Datensätzen vorkommt und nun wird auf den Suchen-Button geklickt
Userbild
Also alles korrekt gefunden und angezeigt. Gefunden werden nur die Datensätze, bei denen COM bzw. das Häkchen gesetzt war.
"...Nun ich denke ich bin auf einem guten Weg..."
Glaub ich so nicht. Du nimmst eine Vorlage und verwendest den Code darin. Nur den Code verstehst du offensichtlich nicht. Wenn du dann Änderungen, notabene mit Forenhilfe machst, dann funktioniert das zwar, aber die Situation ist wieder die gleiche.
Du hast soviele Codeschnipsel darin, dass es für einen Aussenstehenden dann unmöglich wird nachzuvollziehen, was denn dann wo tatsächlich noch verwendet wird. Wie z.B. das Array das ich herausgelöscht habe weil unnötig und ohne Funktion in diesem Code
Gruss Rainer
Anzeige
AW: Suchfunktion anpassen
25.08.2010 11:14:14
abu
Hallo Rainer,
erstmal muss ich sagen das ich es toll finde das Du dich weiterhin mit mir auseinandersetzt.
Ich seh ja ein das mein Weg nicht der optimale ist. Mein Ansinnen ist es die Dinge die ich im Forum gezeigt bekomme auch zu verstehen, ich bemuehe mich...
Habe nun eine neue Datei nur mit der Suchfunktion erstellt (urspruengliche Suchfunktion). Im Code habe ich beinah jede Zeile kommentiert wie ich sie verstehe. https://www.herber.de/bbs/user/71249.xls
Die Zeilen die mir nicht so klar sind habe ich mit '********** gekennzeichnet und mein Verstaendnisproblem geschildert.
Vllt. hast Du lust dir das mal anzuschauen und mir die Dinge die ich nicht verstehe naeher zu bringen bzw. Falls ich was falsch erklaert habe mir meine Denkfehler zu zeigen.
Beste Gruesse
Abu
Anzeige
Wie gehts es weiter...?
26.08.2010 12:12:23
abu
Hallo Zusammen,
habe nun meine Suchfunktion soweit das sie alles macht was ich moechte:
1. Suchen nach dem Wert der in TB16 ist
2. Suchen nach dem Wert der in TB16 steht aber nur in den Zeilen die vorher durch CB1 sleektiert wurden
3. Zeigt alle an die durch CB1 vorher bestimmt wurden.
Nun moechte ich gerne das ganze um die naechste ComboBox erweitern aber mir ist nicht ganz klar ob ich das alles mit If-Bedingungen machen muss oder ob das auch irgendwie anders geht. Ich habe insgesamt 4 ComboBoxen.
Hier ist der Code der soweit funktioniert:
Private Sub ComboBox1_Change()
Dim iZeile As Integer
Sheets("Tabelle1").Range("A2:A" & Sheets("Tabelle1").Range("A65536").End(xlUp).Row).Value =  _
False
With Sheets("Tabelle1")
If ComboBox1.Value = "COM" Then
ListBox1.Clear 'listbox leeren
For iZeile = ActiveSheet.CheckBoxes.Count To 2 Step -1
If Sheets("Tabelle1").Cells(iZeile, 3) = "COM" Then
Sheets("Tabelle1").Cells(iZeile, 1) = True
ListBox1.AddItem .Cells(iZeile, 2)
ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(iZeile, 3)
ListBox1.List(ListBox1.ListCount - 1, 2) = .Cells(iZeile, 4)
ListBox1.List(ListBox1.ListCount - 1, 3) = .Cells(iZeile, 5)
ListBox1.List(ListBox1.ListCount - 1, 4) = .Cells(iZeile, 6)
ListBox1.List(ListBox1.ListCount - 1, 5) = .Cells(iZeile, 7)
ListBox1.List(ListBox1.ListCount - 1, 6) = iZeile
Else
Sheets("Tabelle1").Cells(iZeile, 1) = False
End If
Next iZeile
End If
.... Hier kommt noch der selbe Code fuer alle anderen Werte die CB1 hat.
Hier der Code fuer die Suchfunktion

Private Sub CommandButton1_Click()
Dim rng As Range
Dim strFirst As String
ListBox1.Clear
With Sheets("Tabelle1")
If ComboBox1.Value = "" Then
.Range("A2:A" & Sheets("Tabelle1").Range("A65536").End(xlUp).Row).Value = False
End If
Set rng = .Range("B:G").Find(What:=TextBox16, LookAt:=xlPart)
strFirst = rng.Address
If Len(Trim(TextBox16)) = 0 And ComboBox1.Value = "" And ComboBox2.Value = "" And  _
ComboBox3.Value = "" And ComboBox4.Value = "" Then Exit Sub
Do
If Not ComboBox1.Value = "" Then
If Cells(rng.Row, 1) = True Then
ListBox1.AddItem .Cells(rng.Row, 2)
ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(rng.Row, 3)
ListBox1.List(ListBox1.ListCount - 1, 2) = .Cells(rng.Row, 4)
ListBox1.List(ListBox1.ListCount - 1, 3) = .Cells(rng.Row, 5)
ListBox1.List(ListBox1.ListCount - 1, 4) = .Cells(rng.Row, 6)
ListBox1.List(ListBox1.ListCount - 1, 5) = .Cells(rng.Row, 7)
ListBox1.List(ListBox1.ListCount - 1, 6) = rng.Row
Cells(rng.Row, 1) = True
End If
Else
ListBox1.AddItem .Cells(rng.Row, 2)
ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(rng.Row, 3)
ListBox1.List(ListBox1.ListCount - 1, 2) = .Cells(rng.Row, 4)
ListBox1.List(ListBox1.ListCount - 1, 3) = .Cells(rng.Row, 5)
ListBox1.List(ListBox1.ListCount - 1, 4) = .Cells(rng.Row, 6)
ListBox1.List(ListBox1.ListCount - 1, 5) = .Cells(rng.Row, 7)
ListBox1.List(ListBox1.ListCount - 1, 6) = rng.Row
Cells(rng.Row, 1) = True
End If
Set rng = .Range("B:G").FindNext(rng)
Loop While Not rng Is Nothing And rng.Address  strFirst
End With
End Sub
Ich wuerde mich freuen wenn mir jemand sagen koennte wie ich denn nun am besten weiter machen soll.
Beste Gruesse
Abu
Anzeige
Suche fertig aber ein anderes Problem
26.08.2010 16:53:20
abu
Hallo Rainer und auch alle anderen,
habe nun die Suchfunktion fertig (Rainer, ich hoffe Du bist stolz auf mich!).
Leider funktioniert sie nur einmal. Wenn man einen Wert aendert zeigt er nichts mehr an und muss man wieder bei der 1. ComboBox anfangen.
Das Problem ist das ich sie so aufgebaut habe das alles ueber die CheckBoxen in Spalte A laeuft. Das war wohl ein Fehler obwohl ich diese Checkboxen auch brauche (also die Auswahl, fuer ein anderes Sub).
Hat jemand eine Idee was ich besser machen kann, so dass man auch die Werte der ComboBoxen veraendern kann ohne das man wieder bei der ersten anfngen muss.
https://www.herber.de/bbs/user/71273.xls
Beste Gruesse
Abu
Anzeige
AW: Suche fertig aber ein anderes Problem
28.08.2010 19:14:10
fcs
Hallo Abu,
hier ein Vorschlag wie du es machen kannst.
Die Daten für die Listbox werden in einem Daten-Array verwaltet. Nach Eingabe eines neuen Suchbegriffs in die Textbox16 wird dieses Datenarray mit den Daten aus der Tabelle aktualisiert.
Die Checkboxen werden jeweils mit den Treffern in der Listbox synchronisiert.
Gruß
Franz
https://www.herber.de/bbs/user/71301.xls
Danke
30.08.2010 13:32:36
abu
Hallo Franz,
ich find's grossartig das Du dir die Muehe gemacht hast. Vielen Dank dafuer.
Hab sie jetzt mal getestet und bisher erfuellt sie alles was ich brauche. Das wird sich bestimmt noch aendern da mein Tabelle leider noch nicht fertig ist...
Nun, ich muss Rainer Recht geben das es meine Kenntnisse weit uebersteigt, trotzdem denke ich das ich mehr lerne wenn ich versuche diesen Code zu verstehen als wenn ich vor einem leeren Blatt stehe, das Ergebniss sieht man ja in meiner Version.
Gruesse
Abu
Verbesserungsvorschlaege
27.08.2010 09:57:37
abu
Hallo,
hat keiner einen Vorschlag wie ich es besser umsetzen kann?
Gruss
Abu

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige