Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1460to1464
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

Probleme mit VBA

Probleme mit VBA
28.11.2015 20:09:42
Thorsten
Hallo Zusammen,
ich bin neu hier und bin mit meinem Wissen am Ende ;)
Jedoch erhoffe ich mir hier richtig zu sein um die Experten im Forum zu befragen.
Ich habe auf meiner Arbeit ein Projekt zur Reaktivierung bekommen soweit so gut.
Zum Problem:
Hier hat mein Vorgänger eine VBA erstellt die ich nun mittlerweile auf Funktion getestet habe, funktioniert alles bis auf einen Punkt.
Es wurde eine VBA zur Lagerhaltung erstellt in denen Ein- und auch Ausgänge registriert werden, jedoch ist das Problem wenn man einen Artikel mehr als einmal ausbucht wird die Gesamtzahl falsch berechnet, das Problem konnte ich bereits einschränken so dass bei der erstellten Schleife das Problem liegt.
Hier der Auszug der VBA in der ich den Fehler vermute:

Sub Auslagern_Click()
'Auslagern_Click
'Ziel        : Eine Auslagerung starten
'Autor       : Michael Zipper, Januar 2015
'Anmerkungen : Wird über den Button Auslagern im Tabellenblatt
'              Buchungen aktiviert
'Parameter
'Rückgabewert :
'Änderungen
'19Jan15 :  Aktualisierung der Kommentare
Variablen.gsLagervorgang = "Auslagern"
UserFormVorgangsuebersicht.Show vbModeless
Call ListenFuellen.Lagern
End Sub
Sub Einlagern_Click()
'Einlagern_Click
'Ziel        : Eine Einlagerung starten
'Autor       : Michael Zipper, Januar 2015
'Anmerkungen : Wird über den Button Auslagern im Tabellenblatt
'              Buchungen aktiviert
'Parameter
'Rückgabewert :
'Änderungen
'19Jan15 :  Aktualisierung der Kommentare
Variablen.gsLagervorgang = "Einlagern"
UserFormVorgangsuebersicht.Show vbModeless
Call ListenFuellen.Lagern
End Sub
Sub NeueBuchung()
'NeueBuchung
'Ziel        : Die Buchungen in der Vorgangsübersicht in das
'              Tabellenblatt Buchungen schreiben
'Autor       : Michael Zipper, Januar 2015
'Anmerkungen :
'Parameter
'Rückgabewert :
'Änderungen
'19Jan15 :  Aktualisierung der Kommentare
Dim lNewLine As Long
Dim nCounter As Integer
Dim nListEnd As Integer
Dim sID As String
Dim lLineArticle As Long
Dim sArticle As String
Dim sArticlegroup As String
Dim nMenge As Integer
Dim nMengeGesamt As Integer
Dim cStueckkosten As Currency
Dim cGeldwert As Currency
Dim cGeldwertGesamt As Currency
Dim dDate As Date
Dim aResult() As Variant
Dim vTime As Variant
Dim sAuslagerungseinheit As String
lNewLine = fLastLine(Variablen.gwsBuchungen) + 1 'erste freie Zeile im Tabellenblatt Buchungen
nListEnd = UserFormVorgangsuebersicht.ListBoxVorgansuebersicht.ListCount - 1 'ListIndex des  _
letzten Eintrags in der Listbox
For nCounter = 0 To nListEnd 'Schleife über alle Listeneinträge
With UserFormVorgangsuebersicht.ListBoxVorgansuebersicht
sID = .List(nCounter, 0) 'belegen der Variablen
sArticle = .List(nCounter, 1)
nMenge = .List(nCounter, 2)
If Variablen.gsLagervorgang = "Auslagern" Then 'bei einer Auslagerung wird die Menge  _
negativ
nMenge = nMenge * (-1)
End If
sAuslagerungseinheit = .List(nCounter, 3)
dDate = Date
vTime = Time
End With
aResult = fBarcodeIDSearch(sID, Variablen.gwsDatenbank) 'Artikelgruppe und Stueckkosten  _
werden aus dem Tabellenblatt Datenbank ermittelt
lLineArticle = aResult(0)
With Variablen.gwsDatenbank
sArticlegroup = .Cells(lLineArticle, 3)
cStueckkosten = .Cells(lLineArticle, 6)
End With
cGeldwert = cStueckkosten * nMenge 'Berechnung des Geldwertes
aResult = fBarcodeIDSearch(sID, Variablen.gwsPositivMengen) 'bestimmen der derzeitigen  _
Gesamtmenge
lLineArticle = aResult(0)
nMengeGesamt = 0
If lLineArticle  -1 Then 'lLineArticle ist -1 wenn die ID nicht geunden wurde
With Variablen.gwsPositivMengen
nMengeGesamt = .Cells(lLineArticle, 2)
End With
End If
nMengeGesamt = nMengeGesamt + nMenge 'neue Gesamtmenge wird ermittelt
cGeldwertGesamt = nMengeGesamt * cStueckkosten
With Variablen.gwsBuchungen 'die Zellen werden mit den Variablenwerten beschrieben
.Cells(lNewLine, 1) = sID
.Cells(lNewLine, 2) = sArticle
.Cells(lNewLine, 3) = sArticlegroup
.Cells(lNewLine, 4) = nMenge
.Cells(lNewLine, 5) = nMengeGesamt
.Cells(lNewLine, 6) = sAuslagerungseinheit
.Cells(lNewLine, 7) = dDate
.Cells(lNewLine, 8) = vTime
.Cells(lNewLine, 9) = cStueckkosten
.Cells(lNewLine, 10) = cGeldwert
.Cells(lNewLine, 11) = cGeldwertGesamt
If Variablen.gsLagervorgang = "Auslagern" Then 'Bei Auslagerung wird die Schrift rot gefä  _
_
rbt
.Cells(lNewLine, 1).Font.Color = vbRed
.Cells(lNewLine, 2).Font.Color = vbRed
.Cells(lNewLine, 3).Font.Color = vbRed
.Cells(lNewLine, 4).Font.Color = vbRed
.Cells(lNewLine, 5).Font.Color = vbRed
.Cells(lNewLine, 6).Font.Color = vbRed
.Cells(lNewLine, 7).Font.Color = vbRed
.Cells(lNewLine, 8).Font.Color = vbRed
.Cells(lNewLine, 9).Font.Color = vbRed
.Cells(lNewLine, 10).Font.Color = vbRed
.Cells(lNewLine, 11).Font.Color = vbRed
End If
End With
lNewLine = lNewLine + 1
Next nCounter
End Sub

Für Antworten / Anregungen zur Lösung des Problems bin ich sehr dankbar.
Gruß
Thorsten

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

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit VBA
29.11.2015 08:09:46
Luschi
Hallo Thorsten,
ich würde als erstes mal prüfen welchen Wert nMenge an dieser Stelle ist. vielleicht ist der _ Wert schon negativ, do das er wieder positiv wird:

If Variablen.gsLagervorgang = "Auslagern" Then 'bei einer Auslagerung wird die Menge negativ
'hier den Wert von nMenge prüfen
Stop
nMenge = nMenge * (-1)
End If
Ansonsten würde ich die vorstehende If-Verzweigung so schreiben:

If Variablen.gsLagervorgang = "Auslagern" Then 'bei einer Auslagerung wird die Menge negativ
nMenge = Abs(nMenge) * (-1)
End If
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Probleme mit VBA
01.12.2015 10:15:16
Thorsten
Hallo Luschi,
vielen Dank für deine Hilfestellung, jedoch konnte ich das Problem bis jetzt immer noch nicht beheben.
Nachfolgende habe ich versucht mal einen Überblick zu erstellen um dies zu veranschaulichen.
https://www.herber.de/bbs/user/101930.doc
Gruß
Thorsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige