ich habe folgendes Problem, ich arbeite in meinen Semesterferien in einem Betrieb für Bodenverlegung nun soll für meinen Arbeitgeber ein Verschnittoptimierungsprogramm schreiben, das Problem ist folgendes, da es sich um Bahnen Ware handelt, muss es nen bisschen komplizierter gerechnet werde. Okay kommen wir mal zu meinem Problem. Ich habe ein Textfeld wo die Länge der einzelnen Bahnen eingegeben wird diese wiederum sollen dann beim bestätigen des Button in die List box eingetragen werden jeweils in derselben Zeile in eine andere Spalte also quasi von links nach rechts. Dies funktioniert soweit auch ganz gut, es ist halt nur das Problem, das ich weiß das durch mein jetziges verfahren die ganze Sache auf 10 Spalten begrenzt ist, da es aber mal vorkommen kann, das mehr als nur 10 Bahnen benötigt werden. Wo dann sofort ein Fehler auftaucht, da ja halt nur 10 spalten zur Verfügung stehen. Dieses Problem müsste ich soweit ich weiß mit einem Array gelöst werden. Da ich habe nicht wirklich Ahnung von VBA Programmierung habe komm ich einfach nicht weiter. Ach ja was mich auch noch interessieren würde ist ob es möglich ist, das am Ende der Eingabe in die letzte spalte die Gesamtsumme der einzelnen Bahnen auftaucht? Das wär nämlich später für die Auswahl der richtigen Ware wichtig.
Freue mich über jede Hilfe die ich kriegen kann.
Hier mal mein Code wie er bisher aussieht, nicht wundern hab von VBA nicht wirklich ahnung.
Private Sub CommandButton1_Click()
Dim i As Integer
Dim y As Variant
Dim l As Integer
Dim j As Integer
Dim x As Variant
l = CInt(TextBox1.Text)
i = CInt(Abahnen.Text)
'---- Eigenschaft der Listbox ColumnCount anpassen
With ListBox1
' Bestimmt die länge der einzelnen Spalten und begrenzt die sichtbarkeit in der Tabelle auf _
diese größe Darum erste Zahl größer, damit man Raum Bezeichnung eingeben kann.
.ColumnWidths = "3,5cm;1cm;1cm;1cm;1cm;1cm;1cm;1cm;1cm;1cm;1cm;1cm;1cm;1cm;1cm;1cm;1cm;1cm;"
.ColumnCount = 12 ' Breite fuer hier 3 Spalten entsprechend anpassen
'Zuweisung von Werten
If l = 1 Then
.AddItem RBez 'erste Spalte in Listbox
End If
If l = 1 Then
.List(.ListCount - 1, l) = LBahnen 'zweite Spalte in Listbox
End If
If l = 2 Then
.List(.ListCount - 1, l) = LBahnen 'dritte Spalte in Listbox
End If
If l = 3 Then
.List(.ListCount - 1, l) = LBahnen 'vierte Spalte in Listbox
End If
If l = 4 Then
.List(.ListCount - 1, l) = LBahnen 'fünfte Spalte in Listbox
End If
If l = 5 Then
.List(.ListCount - 1, l) = LBahnen 'sechste Spalte in Listbox
End If
If l = 6 Then
.List(.ListCount - 1, l) = LBahnen 'siebte Spalte in Listbox
End If
If l = 7 Then
.List(.ListCount - 1, l) = LBahnen 'achte Spalte in Listbox
End If
If l = 8 Then
.List(.ListCount - 1, l) = LBahnen 'neunte Spalte in Listbox
End If
' -----Listbox nimmt nur 10 Spalten werte---------
If l = 9 Then
.List(.ListCount - 1, l) = LBahnen 'zehnte Spalte in Listbox
End If
If l = 10 Then
.List(.ListCount - 1, l) = LBahnen 'elfte Spalte in Listbox
End If
If l = 11 Then
.List(.ListCount - 1, l) = LBahnen 'zwölfte Spalte in Listbox
End If
End With
If i > l Then
CommandButton1.Enabled = True
Else
CommandButton1.Enabled = False
End If
TextBox1.Text = l + 1
End Sub
LG Pascal