Hallo liebe Gemeinde,
ich habe mir an Hand mehrere Youtube Videos eun bisschen programmieren beigebracht.
https://www.youtube.com/watch?v=UnZ-rFhn-gg
Das ist das Video um das es geht.
Ich habe meine Tabelle etwas verändert es funktioniert auch soweit gut. Ich habe sie wirklich selbst geschrieben und verstehen auch etwas alles besser als vorher.
Zu meiner Frage, Ich möchte sowie er am Ende des Videos fast ist ist das die Menge die ich Buche auch in der Produkttabelle mit dazu bzw. abgerechtnet wird. Ich möchte also beim Buchen sagen ich verkaufe diese Platte und dann soll im Produktblatt unter IST der Wert niedrieger bzw. höher werden wenn es gekauft wird.
Ich habe bei mir statt Bestand halt Bestand/ Soll in der Nächste Spalte dann E-Mail und in der Nächsten Spalte dann Bestand /Ist.
Mein Gedanke war halt ich Buche einen Artickel aus dem Sortiment und er soll bei Bestand/ Ist diesen Wert veriegern bzw. erhöhen.
Bei Bestand /Soll soll halt ein bestimmter fester Wert stehen damit man dann sehen kann von dem Schuh habe ich nur 300 und ich brauche aber mindestens 500.
Bitte helft mir!
Ich hoffe ihr könnt mir helfen!
LG bin erst 15 Jahre alt aber versuche mein Bestes!
Das steht bei Buchungen drin!!
Const ws_DB As String = "Buchungen"
Const ws_Eingabe As String = "Buchungen_Change"
Sub Buchungenanlegen_DBEingabe()
Call ws_Unprotect(ws_DB, ws_Eingabe)
'Tabelle einlesen
Dim tbl As ListObject
Set tbl = Worksheets(ws_DB).ListObjects(1)
With Worksheets(ws_Eingabe)
'Spalte K und Q Leeren
.Columns("K").ClearContents
.Columns("Q").ClearContents
'Buchungsnummer eintragen
.Range("K12").Value = tbl.DataBodyRange(tbl.DataBodyRange.Rows.Count, 1).Value + 1
'Tabelleblatt navigieren
Call Sheetswitch(ws_Eingabe)
'Datum eintragen
.Range("K18").Value = Date
'Zelle auswählen
.Range("K20").Select
End With
Call ws_Protect(ws_DB, ws_Eingabe)
End Sub
Sub BuchungenAnlegen_EingabeDB()
Call ws_Unprotect("Produkte", ws_Eingabe, ws_DB)
Dim tbl As ListObject
Dim header As Variant
Dim Spalte As Long
Spalte = 1
Dim Zeile As Long
Dim rng As Range
With Worksheets(ws_DB)
'Tabelle einlesen
Set tbl = .ListObjects(1)
'Zeile hinzufügen
tbl.ListRows.Add
'Zeile definieren
Zeile = tbl.DataBodyRange.Rows.Count
'Zeilenhöhe anpassen
.Rows(Zeile + tbl.HeaderRowRange.Row).RowHeight = .Rows(tbl.HeaderRowRange.Row + 1).RowHeight
End With
With Worksheets(ws_Eingabe)
'Schleife über alle Tabellenheader
For Each header In tbl.HeaderRowRange
tbl.DataBodyRange(Zeile, Spalte).Value = _
.Range(.Cells.Find(What:=header, LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1).Address).Value
If header = "Menge" Then
'Bestand zu Produkt-ID suchen
Set rng = ThisWorkbook.Worksheets("Produkte").Columns("D").Find(What:=.Range("K24").Value, LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 4)
If .Range("K20").Value = "Kauf" Then
rng.Value = rng.Value + .Range("Q20")
Else
rng.Value = rng.Value - .Range("Q20")
End If
End If
Spalte = Spalte + 1
Next header
End With
'Tabellenblatt Buchungen auswählen und in Zeile springen
Call Nav_Buchungen
tbl.DataBodyRange(Zeile, 1).Select
ActiveWindow.ScrollRow = Zeile + tbl.HeaderRowRange.Row
Call ws_Protect("Produkte", ws_Eingabe, ws_DB)
End Sub
Das steht bei Produkte drin.
Const ws_DB As String = "Produkte"
Const ws_Eingabe As String = "Produkte_Change"
Sub ProduktBearbeiten_DBEingabe()
Call ws_Unprotect(ws_DB, ws_Eingabe)
Dim header As Variant
Dim Spalte As Long
Spalte = 1
'Tabelle einlesen
Dim tbl As ListObject
Set tbl = Worksheets(ws_DB).ListObjects(1)
With Worksheets(ws_Eingabe)
'Spalte P Leeren
.Columns("P").ClearContents
'Schleife über alle Tabellenheader
For Each header In tbl.HeaderRowRange
'If header = "Bestand/ Soll" Then
'Else
.Range(.Cells.Find(What:=header, LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1).Address).Value = _
tbl.DataBodyRange(ActiveCell.Row - tbl.HeaderRowRange.Row, Spalte).Value
' End If
Spalte = Spalte + 1
Next header
'Tabelleblatt navigieren
.Shapes.Range(Array("img_Anlegen", "txt_Anlegen")).Visible = False
.Shapes.Range(Array("img_Bearbeiten", "txt_Bearbeiten")).Visible = True
Call Sheetswitch(ws_Eingabe)
'Zelle auswählen
.Range("P18").Select
End With
Call ws_Protect(ws_DB, ws_Eingabe)
End Sub
Sub ProduktAnlegen_DBEingabe()
Call ws_Unprotect(ws_DB, ws_Eingabe)
'Tabelle einlesen
Dim tbl As ListObject
Set tbl = Worksheets(ws_DB).ListObjects(1)
With Worksheets(ws_Eingabe)
'Spalte P Leeren
.Columns("P").ClearContents
'Produkt-ID eintragen
.Range("P12").Value = tbl.DataBodyRange(tbl.DataBodyRange.Rows.Count, 1).Value + 1
'Tabelleblatt navigieren
.Shapes.Range(Array("img_Anlegen", "txt_Anlegen")).Visible = True
.Shapes.Range(Array("img_Bearbeiten", "txt_Bearbeiten")).Visible = False
Call Sheetswitch(ws_Eingabe)
'Zelle auswählen
.Range("P18").Select
End With
Call ws_Protect(ws_DB, ws_Eingabe)
End Sub
Sub ProduktAnlegen_EingabeDB()
Call ws_Unprotect(ws_Eingabe, ws_DB)
Dim tbl As ListObject
Dim header As Variant
Dim Spalte As Long
Spalte = 1
Dim Zeile As Long
With Worksheets(ws_DB)
'Tabelle einlesen
Set tbl = .ListObjects(1)
'Produkt anlegen?
If Worksheets(ws_Eingabe).Shapes("img_anlegen").Visible = True Then
'Zeile hinzufügen
tbl.ListRows.Add
'Zeile definieren
Zeile = tbl.DataBodyRange.Rows.Count
'Zeilenhöhe anpassen
.Rows(Zeile + tbl.HeaderRowRange.Row).RowHeight = .Rows(tbl.HeaderRowRange.Row + 1).RowHeight
'Produkt bearbeiten?
Else
Zeile = Worksheets(ws_Eingabe).Range(Worksheets(ws_Eingabe).Cells.Find(What:="Produkt-ID", LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1).Address).Value
End If
End With
With Worksheets(ws_Eingabe)
'Schleife über alle Tabellenheader
For Each header In tbl.HeaderRowRange
'If header = "Bestand/ Soll" Then
tbl.DataBodyRange(Zeile, Spalte).Value = 0
'Else
tbl.DataBodyRange(Zeile, Spalte).Value = _
.Range(.Cells.Find(What:=header, LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1).Address).Value
'End If
Spalte = Spalte + 1
Next header
End With
'Tabellenblatt Produkte auswählen und in Zeile springen
Call Nav_Produkte
tbl.DataBodyRange(Zeile, 1).Select
ActiveWindow.ScrollRow = Zeile + tbl.HeaderRowRange.Row
Call ws_Protect(ws_Eingabe, ws_DB)
End Sub
|