Private Sub CmdAbbruch_Click() '############################## Private Sub ListBox1_Click() '################################# Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Private Sub UserForm_Activate() viel spass
'Ok anbei der kompl. Code mit kleinen Erläuterungen
'Aufbau: (UserForm)
'- 2 CommandButton (ComandButton1/CmdAbbruch)
'- 6 TextBoxen (txtAngebotNr/txtDatum/txtKunde/ect..)
'- 2 Listboxen (ListBox1/ListBox2)
Unload Me
End Sub
Private Sub CommandButton1_Click()
Dim s As String
Dim Found As Range
Dim FirstAddress As String
Dim i As Integer ' Zeile
i = 0
If txtSuche.Text = "" Then
MsgBox "Kein Eintrag vorhanden!", vbCritical, "Was soll ich den suchen?"
txtSuche.SetFocus
Else
End If
Eingabe = txtSuche.Text
If Eingabe = "" Then Exit Sub
ListBox1.Clear
ListBox2.Clear
With ActiveSheet
Set Found = .Cells.Find(Eingabe, LookAt:=xlPart)
If Not Found Is Nothing Then
FirstAddress = Found.Address
ListBox1.ColumnCount = 2
ListBox1.AddItem Found
ListBox1.List(i, 1) = Cells(Found.Row, 13)
ListBox2.AddItem Found.Row
i = i + 1
Do
Found.Activate
Set Found = Cells.FindNext(After:=ActiveCell)
On Error Resume Next
If Found.Address = FirstAddress Then Exit Do
ListBox1.AddItem Found
ListBox1.List(i, 1) = Cells(Found.Row, 13)
ListBox2.AddItem Found.Row
i = i + 1
Loop
End If
End With
CommandButton1.Caption = "Neue Suche"
End Sub
'Hier erfolgt die Ausgabe des gesuchten
'in einer TextBox per Auswahl in der ListBox
If ListBox1.Value <> "" Then
On Error Resume Next
ListBox2.ListIndex = ListBox1.ListIndex
txtAngebotNr = Cells(ListBox2.Value, 2)
txtDatum = Cells(ListBox2.Value, 3)
txtKunde = Cells(ListBox2.Value, 5)
txtOrt = Cells(ListBox2.Value, 10) & " " & Cells(ListBox2.Value, 11)
txtGesamtPreis = Cells(ListBox2.Value, 20) & " "
txtAuftragswert = Cells(ListBox2.Value, 21) & " "
End If
End Sub
'Hier wird die betreffende Zeile markiert bei
'einem Doppelklick
If ListBox1.Value <> "" Then
On Error Resume Next
ListBox2.ListIndex = ListBox1.ListIndex
Rows(ListBox2.Value).Select
End If
End Sub
CommandButton1.Caption = "Suche"
End Sub
ivan
Gruß René.
Gruß René.
ich stelle mich einfach zu doof an, ich bekomme das einfach nicht hin, aber ich kann auch nicht sagen was ich falsch mache.
Hofft ein Tipp zu bekommen.
Gruß René.
wenn ich ehrlich bin habe ich in diesen Fall null Ahnung, wie so etwas erstellt wird. Bis jetzt habe ich nur ein paar kleine Makros aufgezeichnet, wo jeder Schritt aufgezeichnet wurde, welchen ich mit der Maus gemacht habe.
Ich habe Dein geschriebenes einfach kopiert und in ein leeres Makro gelegt, aber das scheint falsch zu sein nehme ich mal an. Dann habe ich im Mircosoft Visual Basic Programm mal auf Userform geklickt und versucht einpaar Sachen zu zaubern siehe, wie Du es geschrieben hast (2 CommandButton, 6 Texboxen und 2 Listboxen) aber es scheint so nicht richtig zu sein.
Aber ich freue mich das Du bereit bist es mit mir Schritt für Schritt zu machen damit ich etwas Ahnung bekomme für ein nächstes mal. wenn ich etwas in dieser Art benötige.
Gruß René
so wenn du das hast dann machen wie weiter!
ivan
hmm ich bin mir nicht sicher ob ich das richtige genommen habe, es heißt bei mir Befehlsschaftfläche dieses Commandbutton.
So habe es soweit gemacht, größe und Position kann ich dann bestimmt noch ändern?
Gruß René
jetz must du allen buttons textboxen(TEXTFELD)listbox (listenfeld)einen namen geben.
klicke oberhalb der userform ca.mitte auf eigenschaftenfenster
beachte das du jedes objekt vorher markieren must,befor du es umbenennen kanst.
1.eigenschaften comandbutton1(muß markiert sein)caption Suchen eigeben
2.eigenschaften comandbutton2(muß mar.sein)caption Abbrechen eigeben.
3.eigenschaften comandbutton2(muß mar.sein)Name CmdAbbruch eigeben.
4.Listboxen brauchst nicht umbenennen
5. den 3 textboxen gibst du den namen unter eigenschaften Name folgende 3 namen txtSuche, txtDatum, txtKunde
6.kopiere den gesamten code den ich dir gesendet habe
folgender maßen:2 mal klick in die userform1
dort fügst du ihn ein.
fertig.
die spalten mußt du auch noch einstellen im code von txtKunde
und txtDatum dezeit sind sie auf 3 und 5 kanst ändern.
außerdem kanst dann noch mehr textboxen einfügen wenn du möchtest.
viel spass
ivan
so habe jetzt alles so gemacht wie beschrieben.
Nur mit "die spalten mußt du auch noch einstellen im code von txtKunde und txtDatum dezeit sind sie auf 3 und 5 kanst ändern." bin ich nicht ganz klar gekommen was du damit meinst.
Bin auch schon mal auf Ausführen gegangen und da kommt eine Meldung "Fehler beim Kompilieren"
->Private Sub CommandButton1_Click()
Dim s As String
Dim Found As Range
Dim FirstAddress As String
Dim i As Integer ' Zeile
i = 0
If txtSuche.Text = "" Then
MsgBox "Kein Eintrag vorhanden!", vbCritical, "Was soll ich den suchen?"
txtSuche.SetFocus
Else
End If
"-> das Wort ist makiert" Eingabe = txtSuche.Text
If Eingabe = "" Then Exit Sub
ListBox1.Clear
ListBox2.Clear
With ActiveSheet
Was muß ich da ändern oder was läuft falsch?
Gruß René
Danke erstmal jetzt klappt es. Aber ich hätte da noch 4 kleine sache und ich würde mich freuen, wenn Du mir dabei auch behilflich sein könntest.
1.) Wie kann ich jetzt dieses Makro auf meine Startseite in ein Button legen, da wenn ich makro zuweisen will dieses nicht mit angezeigt wird (diese Userform)
2.) Ich habe die Userform erweitert auf 6 Listenfelder aber mir werden nur die ersten drei ergebnisse angezeigt.
3.) Wenn ich auf Abbrechen gehe wird diese Userform nicht geschlossen, es geht nur über das X in der oberen rechten Ecke.
4.) Das wäre eigentlich das wichtigste mit, das er wenn ein Datum in Spalte J ist (Rückgabedatum, welches eingetragen wird wenn der Schlüssel zum Kunden zurückgeht) dieses schon nicht mehr in der Suche mit anzeigt (weil es geht mir darum, wenn unser Kundendienst mal fragt ob für ein Schlüssel für bestimmte Straße/HausNr. haben die liste nicht ganz so lang ist)
Ich würde mich freuen wenn du mir weiter helfen könntest, denn ich muß sagen ich habe dabei gelehrt den Code etwas zu verstehen.
Gruß und Danke René
mach morgen ein neues thema auf dieses ist ja schon so lang
gute nacht
ivan
ok und danke nochmal, ein Punkt hat sich schon erledigt. Das mit den Abbrechen geht (ein kleiner schreibfehler in den Eigenschaften).
Ich wünsche Dir dann auch eine Gute Nacht.
Tschüssi René
hallo rene1.weis nicht genau ob diese frage richtig verstehe??
aber hier ein ansatz wie über einen comandbutton1 in der tabelle1
die userform starten kanst.erstelle auf deiner arbeitsmappe einen comandbutton
diesen code in der enwicklungs umgebung in die tabelle1 eingeben
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Sheets("Tabelle1").Select
UserForm1.Show
Application.ScreenUpdating = True
End Sub3.ist ja schon erledigt.
2+4.ich denke du meinst textfelder und nicht listenfelder oder??du mußt den textfeldern den gleichen namen geben wie im code,
und die richtige spalte zum richtigen textfeld ändern.
das ist alles.auszug aus dem code ,
'Hier erfolgt die Ausgabe des gesuchten
'in einer TextBox per Auswahl in der ListBoxPrivate Sub ListBox1_Click()
If ListBox1.Value <> "" Then
On Error Resume Next
ListBox2.ListIndex = ListBox1.ListIndex
txtAngebotNr = Cells(ListBox2.Value, 2)'2=B das kanst du ändern
txtDatum = Cells(ListBox2.Value, 3)'du kanst auch alle ändern
txtKunde = Cells(ListBox2.Value, 5)'5=Spalte E usw.
txtOrt = Cells(ListBox2.Value, 10) & " " & Cells(ListBox2.Value, 11)
txtGesamtPreis = Cells(ListBox2.Value, 20) & " "
txtAuftragswert = Cells(ListBox2.Value, 21) & " "
End If
End Subhoffe es hilft
ivan