Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1216to1220
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

Multipage Abfragemaske(Artikel anlegen und änder)

Multipage Abfragemaske(Artikel anlegen und änder)
Pascal
Hallo liebes Forum,
ich bastel an einer Datei mit der ich Artikel und deren Preise verwalte. bis jetzt lief auch alles ganz gut. Doch jetzt stoße ich an die grenzen meines wissens mit VBA. Ich hab eine multipage Abfragemaske. Auf der ersten Seite der Maske kann ich neue Artikel anlegen und auf der 2ten Seite kann ich Artikel mit hilfe einer Listbox suchen und will sie ändern. Ich habe mich beim Basteln an Vorlagen anderer User im Netz bedient. Vielleicht einfehler war aber sehr hilfreich.
Problem 1: Beim anlegen neuer Artikel, will ich das die Werte für den Preis als Format "Währung mit Euro-Zeichen" ausgegeben wird. Irgendwie finde ich die Lösung nicht.
Problem 2: Beim ändern der Artikel klappt das mit dem suchen der Artikel ganz gut. Nur mit dem änder und dem übernehmen der neuen Daten komm ich nicht weiter.

Ich hab die Datei im Anhang mit bei gepackt Ich hoffe ihr könnt mit helfen.
Danke schonmal....
Pascal

hier die Datei:
https://www.herber.de/bbs/user/75441.xlsm
AW: Multipage Abfragemaske(Artikel anlegen und änder)
24.06.2011 21:22:10
jowe
Hallo Pascal,
Prob1:
Private Sub cbDaten1_Click()
With Sheets("test")
'Variable deklarieren
Dim letzte_Zeile As Long
'Die letzte beschrieben Zeile in Spalte A ermitteln
letzte_Zeile = .Range("A65536").End(xlUp).Offset(1, 0).Row
'Eintrag aus TextBox3 (bezeichnung) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 1).Value = Bezeichnung
'Eintrag aus TextBox5 (Einzelpreis) in erste freie Zelle  übertragen
With .Cells(letzte_Zeile, 2)
.Value = Format(Preis, "#,#0.00 €")
.Font.Size = 8
.Font.Name = "Arial"
.Select
End With
End With
Unload Me
ThisWorkbook.Save
End Sub
Gruß
Jochen
Anzeige
AW: Multipage Abfragemaske(Artikel anlegen und änder)
24.06.2011 21:33:30
Pascal
Danke, es klappt super. Bleibt nur noch Problem 2.
Gruß
Pascal
AW: Multipage Abfragemaske(Artikel anlegen und änder)
25.06.2011 07:58:47
JoWE
Sorry - hab' da momentan keine Lösung!
Gruß
Jochen
Multipage Abfragemaske(Artikel anlegen und änder)
25.06.2011 19:08:19
Pascal
Hat hier keiner eine Lösung für mein Problem?
Gruß
Pascal
AW: Multipage Abfragemaske(Artikel anlegen und änder)
25.06.2011 19:56:57
jowe
Hallo Pascal,
zu Prob2; vllt. so:
Private Sub änder_Click()
Dim yn As Integer
yn = MsgBox("Sind Sie sicher?", vbYesNo, "Sicherheistabfrage")
If yn = 6 Then
Sheets("test").Cells(Lst_Postleitzahlen.ListIndex + 4, 1) _
= TextBox2
Sheets("test").Cells(Lst_Postleitzahlen.ListIndex + 4, 2) = _
Format(TextBox1, "#,##0.00 €")
TextBox2 = ""
TextBox1 = ""
Me.Repaint
MsgBox "Änderung durchgeführt!" & vbCr & "Siehe markierte Zeile!", _
vbOKCancel, "Erfolg"
Else
TextBox2 = ""
TextBox1 = ""
Me.Lst_Postleitzahlen.SetFocus
End If
End Sub

Gruß
Jochen
Anzeige
AW: Multipage Abfragemaske(Artikel anlegen und änder)
25.06.2011 20:31:01
Pascal
Mhh, das sieht nicht schlecht aus, ich häte aber eher gedacht. Das ich in der Listbox den Artikel anwähle und dann die aktuellen Zellinhalte mir in der Textbox 1 und 2 angezeigt werden. Dann möchte ich den Zellinhalt in der Textbox verändern und auf "ändern" drücken. Jetzt soll sich der Zellinhalt in der Tabelle ändern. Ich weiss das ist nicht schon ausgefallen.
Ich hab da was im netz gefunden was so ähnlich ist. Ich bekomme die Datei derzeit leider nicht upgeloadet.
Vielleicht hilft der weiter:

Private Sub Beenden_Click()
Unload Me
End Sub

Private Sub DSändern_Click()
Dim KZeile1 As Long 'Kundennr in Tab1
Dim KZeile2 As Long 'Kundennr in Tab2
Dim Ls As Long 'letzte spalte
Dim KSumme As Double
If Me.TextBox1  "" Then
With Worksheets("Tabelle1")
KZeile1 = CLng(ListBox1.List(ListBox1.ListIndex, 0)) + 2 '---/
'die +2 am ende steht für die Anzahl der Überschriften, ^
KZeile2 = CInt(ListBox1.List(ListBox1.ListIndex, 0) + 1)
'die +1 am ende steht für die Anzahl der Überschriften,
End With
With Worksheets("Tabelle2")
Ls = .Cells(KZeile2, Columns.Count).End(xlToLeft).Column
.Cells(KZeile2, Ls + 1) = CDbl(Me.TextBox1.Value) 'Rate eintragen
KSumme = Application.WorksheetFunction.Sum(.Range(.Cells(KZeile2, 2), .Cells(KZeile2, Ls + _
1)))
End With
ListBox1.List(ListBox1.ListIndex, 7) = KSumme 'Summe der Raten eintragen
Worksheets("Tabelle1").Cells(KZeile1, 8) = KSumme 'Summe der Raten eintragen
List3_Initialize (KZeile2) 'ListBox3 neu schreiben
List2_Initialize
Me.TextBox1 = ""
End If
End Sub

Private Sub ListBox1_Click()
'   Me.TextBox1 = ListBox1.List(ListBox1.ListIndex, 7)
List3_Initialize CInt(ListBox1.List(ListBox1.ListIndex, 0) + 1)
'Kundennummer übergeben+1 ;entspricht der Zeilennummer in Tabelle2; eine Zeile Überschrift
End Sub
Sub List3_Initialize(KundenNr As Integer)
Dim Ls As Long 'letzte benutzte Spalte
Dim i As Long
ListBox3.Clear
With Worksheets("Tabelle2")
Ls = .Cells(KundenNr, Columns.Count).End(xlToLeft).Column
If Ls = 1 Then
Me.ListBox3.AddItem "keine"
Else
For i = 2 To Ls
Me.ListBox3.AddItem .Cells(KundenNr, i)
Next
End If
End With
End Sub

Anzeige
AW: Multipage Abfragemaske(Artikel anlegen und änder)
27.06.2011 07:31:08
JoWE
Ach so, sag's doch gleich :-))
Du könntest die Werte so übernehmen:
Nach Markierung des zu ändernden Artikels in der Listbox werden die Werte in die Textboxen geschrieben:
Private Sub Lst_Postleitzahlen_Click()
TextBox2 = Lst_Postleitzahlen
TextBox2 = Lst_Postleitzahlen.Column(1)
End Sub

Übrigens: Die Bezeichnung der Steuerelemente solltest Du evtl. Deinem Thema anpassen.
Gruß
Jochen
AW: Multipage Abfragemaske(Artikel anlegen und änder)
25.06.2011 20:16:44
Fritz
Hier ein Lösungsvorschlag zu Problem 2
Private Sub änder_Click()
Dim LZ&         ' Variable für Letzte Zeile
Dim I&
LZ = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
For I = 4 To LZ
If Txt_Ort = Cells(I, 1) Then
If TextBox2.Text  "" Then
Cells(I, 1) = TextBox2.Text
End If
If TextBox1.Text  "" Then
Cells(I, 2) = Val(Replace(TextBox1.Text, ",", "."))
Cells(I, 2).NumberFormat = "#,##0.00 €"
End If
Exit For
End If
Next
End Sub

Anzeige
AW: Multipage Abfragemaske(Artikel anlegen und änder)
25.06.2011 20:40:52
Pascal
Das klappt super. Würde das jetzt noch gehen. Das mir immer die in der Listbox makierte Zeile in der Textbox angezeigt wird und ich dann die in der textbox stehenden Inhalte abändern kann.
Aber sconmal Danke für die mühe an euch.
Gruß
Pascal
Multipage Abfragemaske(Artikel anlegen und änder)
25.06.2011 21:49:02
Pascal
Tach,
jetzt möchte ich das ganze auch für die verwaltung meiner Kunden nutzen und hab den Code da auch mal rüber kopiert. was muss ich den ändern damit es da auch läuft hier die Datei:
https://www.herber.de/bbs/user/75452.xlsm
Gruß
Pascal
AW: Multipage Abfragemaske(Artikel anlegen und änder)
27.06.2011 11:00:54
JoWe
Hey Pascal,
wie vor:
Nach Markierung des zur Änderung anstehenden Datensatzes werden die Daten in die Textboxen geschrieben. Dort kannst Du die Änderungen vornehmen und über die Schaltfläche 'Ändern' (sofern Du hier den Code schon eingebaut und notwendige Anpassungen erledigt hattest) in die Datentabelle schreiben lassen.
Private Sub Lst_Postleitzahlen_Click()
TextBox14 = Lst_Postleitzahlen.Column(2)
TextBox15 = Lst_Postleitzahlen.Column(1)
TextBox16 = Lst_Postleitzahlen.Column(3)
TextBox17 = Lst_Postleitzahlen.Column(4)
End Sub

Ach ja, noch was: Eigentlich das gleiche Thema wie zuvor! Warum also eine neue Frage?
Aus der vorherigen Diskussion müsstest Du im Übrigen inzwischen wissen wie's geht.
Und nochmal, Du solltest die Bezeichnung der Steuerlemente schon dem Thema anpassen.
Was hat z.B. die Listbox der Kundendaten mit Postleitzahlen zu tun?
Gruß
Jochen
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige