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

Lager

Lager
02.04.2023 06:56:51
Eric

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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Weil Du so jung bist
04.04.2023 08:01:23
lupo1
... und es schön ist, dass Du Dich jetzt schon für Programmierung interessierst:

Bitte wechsle nicht die Foren.Wir bekommen das mit und sind dann sauer ("Crossposting"). Das gilt übrigens auch sonst im Internet!

Wenn Du diesen Wechsel jedoch verlinkst und so mit offenen Karten spielst, ist es ok.

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige