Thema Datum  Von Nutzer Rating
Antwort
Rot Lagerverwaltung
01.04.2023 16:27:11 Tom
NotSolved
01.04.2023 16:48:25 Gast20698
NotSolved
01.04.2023 20:41:32 Gast54325
NotSolved
02.04.2023 12:02:11 Gast6913
*
NotSolved
03.04.2023 00:13:06 ... well
NotSolved
03.04.2023 00:27:45 Gast13623
NotSolved

Ansicht des Beitrags:
Von:
Tom
Datum:
01.04.2023 16:27:11
Views:
748
Rating: Antwort:
  Ja
Thema:
Lagerverwaltung

Hallo liebe Gemeinde,

ich habe mir dieses Video hier angesehen und auch so geschrieben. https://www.youtube.com/watch?v=UnZ-rFhn-gg

Das Problem, um was es bei mir geht, sieht man zum Schluss ab der 1:54:00 !

Zur Info: ich habe vieles durch das Video gelernt bin aber noch kein Meister, eher Anfänger *g*.

Ich habe es, nachdem alles funktioniert hat, etwas verfeinert bzw. wollte ich es anders haben.

Ich habe eine Produktblatt so wie er, bloß bei mir gibt es ein Bestand / Soll und ein Bestand /IST.

Das bedeudet, ich möchte gern, wenn ich einen neuen Artickel einfüge, festlegen, wie viele Produkte immer auf Lager sein sollen.

Das habe ich auch so hinbekommen.

Die Schwierigkeit, die ich jetzt habe, ist das Problem mit dem Buchen von Verkauf und Einkauf.

Den Bestand/ IST zeigt er mir an, er registriert aber nicht, dass, wenn ich etwas kaufe, dies auch bei dem Produkttabellenblatt dort den Bestand/ IST mit verändert werden muss.

Ich habe die Prozedur mal hier rein geschrieben; ich hoffe ihr könnt mir helfen.

Mit freundlichen Grüßen

Tom

 


Private Sub Label1_Click()

End Sub

Private Sub Label4_Click()

End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

Call ws_Unprotect("Buchungen_Change")


With ActiveSheet
    .Range(.Cells.Find(What:="Produkt-ID", LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1).Address).Value = _
    ListBox1.List(ListBox1.ListIndex, 0)
    
    .Range(.Cells.Find(What:="Produktname", LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1).Address).Value = _
    ListBox1.List(ListBox1.ListIndex, 1)
    
  .Range(.Cells.Find(What:="Bestand/ IST", LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1).Address).Value = _
    ListBox1.List(ListBox1.ListIndex, 2)
    
    
End With


Call ws_Protect("Buchungen_Change")

'UserForm schließen

Unload Me

 


End Sub

Private Sub UserForm_Initialize()

Call ws_Unprotect("Buchungen_Change")


'Tabelle einlesen
Dim tbl As ListObject
Set tbl = ThisWorkbook.Worksheets("Produkte").ListObjects(1)

Dim Zeile As Long

For Zeile = 1 To tbl.DataBodyRange.Rows.Count

    ListBox1.AddItem tbl.DataBodyRange(Zeile, 1).Value
    ListBox1.List(ListBox1.ListCount - 1, 1) = tbl.DataBodyRange(Zeile, 2).Value
    ListBox1.List(ListBox1.ListCount - 1, 2) = tbl.DataBodyRange(Zeile, 4).Value
    

Next Zeile

Call ws_Protect("Buchungen_Change")

'Erstes Element auswählen
ListBox1.Selected(0) = True

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

With ActiveSheet
    .Range(.Cells.Find(What:="Preis", LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1).Address).Select
    
   
End With

 


End Sub

 

 

 

 

 

 

 

Das ist dann nochmal alles was im Buchungen drin steht!

 

 

 

 

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

 

 

 

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Lagerverwaltung
01.04.2023 16:27:11 Tom
NotSolved
01.04.2023 16:48:25 Gast20698
NotSolved
01.04.2023 20:41:32 Gast54325
NotSolved
02.04.2023 12:02:11 Gast6913
*
NotSolved
03.04.2023 00:13:06 ... well
NotSolved
03.04.2023 00:27:45 Gast13623
NotSolved