zerberos Geschrieben 16. August 2005 Geschrieben 16. August 2005 Hallo, bin momentan dabei ne Abrechnung zu programmieren (http//www.sebastian-leppert.de/abrechnungsbogen.xls). Nun hänge ich an einer bestimmten Stelle. Ich möchte jetzt in den beiden UserForms die ich gemacht habe Normal und Kaltgetränke, die Artikel aus Artikelliste n und Artikelliste k mit gewünschter Menge eingeben. Danach sollen die ausgesuchten Artikel mit Menge wie die Daten aus dem ersten UserForm mit in das generierte Formular eingetragen werden. Und momentan weiß ich nicht so Recht wie ich das machen soll. Ist leider auch erst mein erstes Projekt mit VBA. Wäre über Tipps und Erklärungen zu meinen Problem dankbar…. Zitieren
russkij Geschrieben 16. August 2005 Geschrieben 16. August 2005 ich hab da was zusammen geschrieben, füge den code zu UserForm2, füge eine Listbox Namens "lstKunde" und teste mal aus ob Dich das weiter bringt: Private Sub UserForm_Initialize() Dim Bezeichnung() As String Dim Wert1() As String Dim Wert2() As String Dim AnzZeilen As Integer AnzZeilen = Sheets("artkellistek").UsedRange.Rows.Count For i = 1 To AnzZeilen ReDim Preserve Bezeichnung(i) ReDim Preserve Wert1(i) ReDim Preserve Wert2(i) Bezeichnung(i) = Sheets("artkellistek").Cells(i, 1).Value Wert1(i) = Sheets("artkellistek").Cells(i, 2).Value Wert2(i) = Sheets("artkellistek").Cells(i, 3).Value lstKunde.AddItem Bezeichnung(i) & " / " & Wert1(i) lstKunde.AddItem Bezeichnung(i) & " / " & Wert2(i) Next End Sub [/PHP] Zitieren
zerberos Geschrieben 18. August 2005 Autor Geschrieben 18. August 2005 Hi, danke schon mal. Bringt mich schon mal etwas weiter. Nur jetzt ist noch das Problem mit der Darstellung Laut Aufgabenstellung soll das so dargestellt werden: Artikelname | ek-preis |vk preis | menge (hier muss was eingetragen werden können) und momentan wird das ja alles untereinander dargestellt sorry für meine vielen fragen. ist halt mein erstes projekt in vba Hab die aktuelle datei wieder hochgeladen… Danke euch! Zitieren
russkij Geschrieben 18. August 2005 Geschrieben 18. August 2005 Eigentlich könntest Du es mit paar änderungen selber schaffen, musst halt den code genauer anschauen und einwenig nachdenken. Wenn du nicht weisst was ein code macht, starte ein Programm mit F8 im Editorfernster, dann kannst Du genau beobachten was ein Programm macht, wenn du mit dem Cursor an eine Variable gehst, wird der Inhalt angezeigt. Du musst Dir schon Mühe geben, es ist ja Deine Aufgabe, und du würdest mehr profitieren wenn du die selbst erledigen kannst. folgende änderungen: Listbox raus Combobox Namens cmbKaltGetr rein Textbox Namens txtMenge rein den Code komplett ersetzen (davor genau vergleichen, dann weisst Du was ich gemacht habe) gruss Private Sub UserForm_Initialize() Dim Bezeichnung() As String Dim EK() As String Dim VP() As String Dim AnzZeilen As Integer AnzZeilen = Sheets("artkellistek").UsedRange.Rows.Count For i = 1 To AnzZeilen ReDim Preserve Bezeichnung(i) ReDim Preserve EK(i) ReDim Preserve VP(i) Bezeichnung(i) = Sheets("artkellistek").Cells(i, 1).Value EK(i) = Sheets("artkellistek").Cells(i, 2).Value VP(i) = Sheets("artkellistek").Cells(i, 3).Value cmbKaltGetr.AddItem Bezeichnung(i) & " / " & EK(i) & " / " & VP(i) Next cmbKaltGetr.ListIndex = 0 End Sub Private Sub CommandButton1_Click() Dim meineAuswahlGesamt As String meineAuswahlGesamt = cmbKaltGetr.Value & " Menge: " & txtMenge.Text MsgBox meineAuswahlGesamt End Sub[/PHP] Zitieren
zerberos Geschrieben 19. August 2005 Autor Geschrieben 19. August 2005 ok danke wenn ich das richtig versanden hab werden die ausgewählten sachen ja in einem array gespecihert kennt eine ne anleitung wo drinnen steht wie ich nen array in nen excel datenblatt eintrage? Bis jetzt hab ich ja nur einfache textboxen gehabt deren inhalt ich einfach mit With Range("B3") .Value = TextBox1 End With eingetragen hab. Geht das mit dem array genauso? Zitieren
russkij Geschrieben 19. August 2005 Geschrieben 19. August 2005 hi, meineAuswahlGesamt = cmbKaltGetr.Value & " Menge: " & txtMenge.Text ist in diesem fall kein array, ist nur eine textvariable in der bezeichnung und menge zusammen stehen. wenn du die getrennt brauchst: Bezeichnung=cmbKaltGetr.Value Menge=txtMenge.Text Sheets("vk-beleg").Range("A13").Value = Bezeichnung Sheets("vk-beleg").Range("B13").Value = Menge Zitieren
zerberos Geschrieben 21. August 2005 Autor Geschrieben 21. August 2005 ja brauche das ja leider getrennt. will ja in spalte a die bezeichnungen hab in spalte b die menge und in spalte c den preis. das muss ich ja getrennt haben, da ich später dne gesamtpreis ausrechnen will Zitieren
zerberos Geschrieben 7. September 2005 Autor Geschrieben 7. September 2005 Hallo also ich häng immer noch an meinen Problem ich hab jetzt eine Listbox mit 3 spalten die Artikel ausliest hier der Quellcode: Private Sub UserForm_Initialize() With ListBox1 .ColumnCount = 3 .RowSource = "artikellisten!A1:C23" .ColumnHeads = False .ColumnWidths = "10cm;3cm;3cm" .MultiSelect = fmMultiSelectExtended End With End Sub Aber das ist irgendwie noch nicht das wahre. Erstens weis ich jetzt nicht, wie ich das Problem mit der Eingabe für die Anzahl der bestellten Waren regeln soll (Kann man vielleicht eine 4 spalte in die Listbox einfügen und das dort die Menge eingetragen werden kann?). Und das 2 Problem ist, das als Datenquelle ja ein bestimmter Bereich angeben ist. Aber wenn ich neue Artikel hinzufüge muss ich ja jedes Mal den Quellcode anpassen, da sich der Bereich ja dann vergrößert Die aktuelle Datei gibt’s wieder unter http://www.sebastian-leppert.de/abrechnungsbogen.xls Oder sollte ich vielleicht ohne die Listbox arbeiten? Vielen Dank Sebastian Zitieren
russkij Geschrieben 8. September 2005 Geschrieben 8. September 2005 hi, Aber wenn ich neue Artikel hinzufüge muss ich ja jedes Mal den Quellcode anpassen, da sich der Bereich ja dann vergrößert du gibst hier einen genauen bereich an: .RowSource = "artikellisten!A1:C23" warum? wenn du dir den code ansiehst denn du schon von mir bekommen hast: AnzZeilen = Sheets("artikellistek").UsedRange.Rows.Count hier werden die zeilen gepeichert, egal wieviele es sind. Erstens weis ich jetzt nicht, wie ich das Problem mit der Eingabe für die Anzahl der bestellten Waren regeln soll (Kann man vielleicht eine 4 spalte in die Listbox einfügen und das dort die Menge eingetragen werden kann?). es gibt verschiedene möglichkeiten, du musst halt überlegen was für dich am besten ist. ich würde es per doppelklick machen: anwender klickt 2 mal auf eine zeile, geht z.B eine einfache InputBox auf, die nach werten fragt, oder du programmierts einen neuen dialog, anstatt der InputBox so inetwa: Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) myVal2 = ListBox1.Text myVal1 = InputBox("Blabla", "blabla") End Sub Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.