hallo zusammen,
ich habe ein Problem und hoffe, dass Sie mir dabei helfen können.
Ich habe 100 Artikeln (Kleidungen) nummeriert mit Ids. 001, 002, 003……. Bis 100. (die Tabelle befindet sich im Datenblatt 1).
Im Datenblatt 2 befindet sich die Tabelle von den Kunden, die ich zur Verfügung habe. Jeder Kunde hat eine ID-Nr.
Ich gebe jedem Kunden von 10 bis 15 Artikel (Kleidungen).
Durch SVERWEIS fülle ich meine breite Tabelle aus --> (ID.-Nr. , Name, Vorname, Geb.-Datum, Familienstand (Dropdown), Datum, Artikel1, Artikel2,…..Artikel15).
Nachdem Ausfüllen speichere ich die Daten durch den Button “Speichern“ im Datenblatt 3.
ich habe die Excel-Datei angehängt (Siehe Anhang), damit Sie wissen worum es geht.
Frage:
1- Nach dem Speichern möchte ich dass der alte Lagerbestand automatisch aktualisiert wird. (in der Spalte vom „Lagerbestand (neu)“) durch eine Funktion oder einen Button(VBA).
Für eine baldige Antwort wäre ich Ihnen sehr Dankbar.
Hallo
anbei die Beispieldatei überarbeitet zurück. Die alten Makros habe ich gelassen und ein neues Modul eingefügt.
Beim Speichern wird jezt automatisch der Lagerbestand in Spalte "neuer Bestand" um -1 abgezogen, und danach die Eingabe gelöscht. Es kann auch noch gelöscht werden ohne zu buchen. Der neue Button ist dafür gedacht am Tagesende oder naechsten Tag den neuen Bestand in die Spalte "alter Lagerbestand" zu übernehmen.
Bitte in Ruhe selbst testen und bitte prüfen ob alles richtig funktioniert. Würde mich freuen wenn es klappt
mfg Gast 123
Ich danke Ihnen sehr für Ihre Hilfe und Mühe.
Das Programm funktioniert wie ich mir vorgestellt habe
Aber ich hätte bitte eine Frage: ich glaube dass der neue Button nicht richtig funktioniert wenn ich darauf klicke.
Der Button zeigt, dass eine Variable nicht definiert wurde. Siehe das Bild im Anhang.
Ich habe versucht die Variable zu definieren wie folgendes:
Sub Lagerbestand_Neu_übernehmen()
Dim Zahl As Integer, AC As Range
With Sheets("Tabelle1")
Zahl = Application.WorksheetFunction.Sum(.Range(LagerBereich).Offset(0, 2))
If Zahl = 0 Then MsgBox "Spalte D Lagerbestand = 0": Exit Sub
'neuen Lagerbestand nach alt kopieren
For Each AC In .Range(LagerBereich)
If AC.Cells(1, 3) = Empty Then
ElseIf AC.Cells(1, 3) = Empty Then
AC.Cells(1, 2) = AC.Cells(1, 3)
End If
Next AC
End With
End Sub
---> Aber trotzdem wird nichts ändern wenn ich auf den Button klicke.
Hallo
Sorry, stimmt,, ich hatte etwas geandert, dabei vergessen AC zu definieren, und danach leider nicht mehr kontrolliert.
Mit AC As Range sollte es normalerweise klappen. Wenn nicht setze bitte AC AS Object ein. Damit hat es in Excel 2003 immer funktioniert.
mfg Gast 123
(14.03.2017, 12:59)Gast 123 schrieb: [ -> ]Hallo
Sorry, stimmt,, ich hatte etwas geandert, dabei vergessen AC zu definieren, und danach leider nicht mehr kontrolliert.
Mit AC As Range sollte es normalerweise klappen. Wenn nicht setze bitte AC AS Object ein. Damit hat es in Excel 2003 immer funktioniert.
mfg Gast 123
Hallo Herr Gast 123,
ich danke Ihnen für die schnelle Antwort und für die lehrreichen Ideen.
Ich habe versucht die
AC As Range in
AC AS Object zu ändern aber nach dem Kompilieren hat es nicht geklappt. Der neue Bestand wurde leider nicht in die Spalte "alter Lagerbestand" übernommen.
Gibt es irgendwelche Alternativen??
Hallo
Bitte den korrigierten Code übernehmenj, damit müsste es klappen. (die Auswerte Logik stimmte nicht)
mfg Gast 123
Code:
Sub Lagerbestand_Neu_übernehmen()
Dim Zahl As Integer, AC As Range
With Sheets("Tabelle1")
Zahl = Application.WorksheetFunction.Sum(.Range(LagerBereich).Offset(0, 2))
If Zahl = 0 Then MsgBox "Spalte D Lagerbestand = 0": Exit Sub
'neuen Lagerbestand nach alt kopieren
For Each AC In .Range(LagerBereich)
If AC.Cells(1, 3) <> Empty Then
AC.Cells(1, 2) = AC.Cells(1, 3)
End If
Next AC
End With
End Sub
Hallo Herr Gast 123,
vielen lieben Dank.
Der Code hat problemlos funktioniert. Danke schön
Eine gute Nacht wünsche ich Ihnen.