25.08.2021, 11:08
Hallo zusammen, ich mal wieder...
ich habe wieder eine Frage, welche wohl für eich ziemlich einfach ist, mir aber mein VBA-Unwissen deutlich macht...
In einer UserForm habe ich ein Textfeld, welches entweder dessen Inhalt in Zeile 1 (ab Spalte K) einträgt (falls noch nicht vorhanden) oder generell danach sucht, wenn vorhanden.
Ist der Inhalt des Textfeldes in Zeile 1 ab Spalte K vorhanden, soll in der entsprechenden Spalte, wo die Find-Funktion "anhält" in der ersten freien Zeile der Eintrag der OptionButtons oder eines weiteren Textfeldes erfolgen.
Im Code habe ich es bereits hinbekommen, das in Spalte K alles korrekt eingetragen wird, geht's jedoch in Spalte L, wird der WErt des OptionButtons mit Lücken eingetragen (s. Beispieldatei).
Anbei der Code:
Mir ist klar, dass mein Fehler in der Definition von "lastZeileProduktpalette" liegt, da er ab Spalte 11 zählt, aber ich muss zugeben, mir ist nicht klar, was ich eingeben muss, damit er die Einträge ohne Lücken einträgt.
Danke für eure Hilfe
HAMRacer44
ich habe wieder eine Frage, welche wohl für eich ziemlich einfach ist, mir aber mein VBA-Unwissen deutlich macht...
In einer UserForm habe ich ein Textfeld, welches entweder dessen Inhalt in Zeile 1 (ab Spalte K) einträgt (falls noch nicht vorhanden) oder generell danach sucht, wenn vorhanden.
Ist der Inhalt des Textfeldes in Zeile 1 ab Spalte K vorhanden, soll in der entsprechenden Spalte, wo die Find-Funktion "anhält" in der ersten freien Zeile der Eintrag der OptionButtons oder eines weiteren Textfeldes erfolgen.
Im Code habe ich es bereits hinbekommen, das in Spalte K alles korrekt eingetragen wird, geht's jedoch in Spalte L, wird der WErt des OptionButtons mit Lücken eingetragen (s. Beispieldatei).
Anbei der Code:
Code:
'Definitionen
lastSpalteProduktpalette = Tabelle2.Cells(1, Columns.Count).End(xlToLeft).Column + 1 'Sucht nächst-freie Spalte ausgehend Zeile 1 (Tabelle2)
lastZeileProduktpalette = Tabelle2.Cells(Rows.Count, 11).End(xlUp).Row + 1 'Sucht nächst-freie Zeile für Produktpalette
'Sucht in der ersten Zeile (ab K1 in Tabelle2) nach dem Namen des Lieferwerks und trägt die Produktart dort ein
If Tabelle2.Range("K1:ZZ1").Find(frmLieferwerkHinzufügen.txtNameNeuesLieferwerk.Value, , xlValues, xlWhole, xlByColumns) Is Nothing Then 'Prüft, ob Lieferwerk bzw. deren Produktpalette bereits vorhanden
Tabelle2.Cells(1, lastSpalteProduktpalette) = frmLieferwerkHinzufügen.txtNameNeuesLieferwerk.Value
For Each opt In frmLieferwerkHinzufügen.Controls
If TypeOf opt Is MSForms.OptionButton Then
If opt.Value = True Then Tabelle2.Cells(2, lastSpalteProduktpalette).Value = opt.Caption
ElseIf txtProduktpaletteAndere.TextLength > 3 Then Tabelle2.Cells(2, lastSpalteProduktpalette).Value = txtProduktpaletteAndere
End If
Next
ElseIf Not Tabelle2.Range("K1:ZZ1").Find(frmLieferwerkHinzufügen.txtNameNeuesLieferwerk.Value, , xlValues, xlWhole, xlByColumns) Is Nothing Then
For Each opt In frmLieferwerkHinzufügen.Controls
If TypeOf opt Is MSForms.OptionButton Then
If opt.Value = True Then Tabelle2.Cells(lastZeileProduktpalette, Tabelle2.Range("K1:ZZ1").Find(frmLieferwerkHinzufügen.txtNameNeuesLieferwerk.Value, , xlValues, xlWhole, xlByColumns).Column).Value = opt.Caption
ElseIf txtProduktpaletteAndere.TextLength > 3 Then Tabelle2.Cells(lastZeileProduktpalette, Tabelle2.Range("K1:ZZ1").Find(frmLieferwerkHinzufügen.txtNameNeuesLieferwerk.Value, , xlValues, xlWhole, xlByColumns).Column).Value = txtProduktpaletteAndere
End If
Next
End If
Danke für eure Hilfe
HAMRacer44