bisher konnte ich wirklich jedes Problem mit genügend Recherche lösen. Jedoch hänge ich nun doch fest und weiß einfach nicht wo der Fehler liegt.
Ich habe eine Excel-Liste zur Lagerverwaltung. Da natürlich alles protokolliert werden sollte, gibt es eine Tabelle mit Warenein- und ausgang, und die Tabelle mit den ganzen Daten. Aktuell bin ich so weit, dass per Artikelnummer im Userform der Artikel ermittelt wird. Im Userform werden auch alle Daten zu dem Artikel angezeigt. Nun möchte ich z.B. einen Wareneingang festhalten. Ich suche den Artikel, dieser wird mir angezeigt. Über die Textform "Menge" gebe ich die gewünschte Menge ein, wähle ein Dropdown aus, welcher Lagerort betroffen ist und klicke auf den Button "Buchen". Nun sucht die VBA nach der Artikelnummer und soll die Menge zu einer bestimmten Spalte (in der gesuchten Zeile) addieren.
Die Spaltenauswahl habe ich mit If Bedingungen über das Dropdownmenü gemacht. Das funktioniert auch hervorragend. Jedoch wählt er immer die 2. Zeile aus. Nicht die Zeile, in der mein gesuchter Artikel steht.
Ich nutze ungefähr den selben Ablauf, um die Textfelder im Userform zu füllen, wenn ich mir einen Artikel raussuche.
Ich habe einfach das Gefühl, dass die Variable nicht richtig gespeichert wird oder ich verstehe die Variable bzw. den Code zum Suchen nicht. Egal was ich mache, es wird immer die 2. Zeile ausgewählt.
Zur VBA für die Befüllung des Warenprotokolls bin ich noch nicht gekommen. Da sehe ich auch kein Problem. Wollte nur den gesamten geplanten Ablauf schildern.
Anbei der Code vom Private Sub: Private Sub CommandBuchen_Click() Dim ssearchx As String Dim VarBestand As Integer Dim Zeile As Range Set Zeile = Columns("C:C").Find(What:=ssearchx, LookAt:=xlWhole, LookIn:=xlValues) If ComboLagerort = "" Then MsgBox "Lagerot auswählen!" Else If ComboLagerort = "Lager RA" Then VarBestand = Zeile.Offset(0, 4) Zeile.Offset(0, 4).Value = TextMenge.Text + VarBestand Else If ComboLagerort = "WT 6666" Then VarBestand = Zeile.Offset(0, 5) Zeile.Offset(0, 5).Value = TextMenge.Text + VarBestand Else If ComboLagerort = "WT 999" Then VarBestand = Zeile.Offset(0, 6) Zeile.Offset(0, 6).Value = TextMenge.Text + VarBestand End If End If End If End If End Sub
Ich hoffe ihr könnt mir hier helfen. Wenn das funktionieren sollte, bin ich einen großen Schritt weiter.