Hallo Zusammen,
ich bin absoluter Neuling was VBA angeht. Habe aber vor, mich mit dem Thema zu beschäftigen. Ich würde gerne versuchen ein Template erstellen.
Da ich allerdings nicht weiterkomme, möchte ich euch bitten mir Lösungsvorschläge zu zeigen und euch das Problem dafür möglichst genau erläutern.
Das Makro soll zunächst nachfragen, wie viele Elemente im Auftrag enthalten sind und die eingetragene Menge in Spalte A angefangen in A2 untereinander Aufzählen.
Als nächstes soll nachgefragt werden, wie viele Elemente auf eine Palette passen.
Nun soll in Spalte B2 untereinander jeweils die Pallettennummer eingetragen werden, entsprechend der Anzahl an Elemente die darauf passen.
Als Beispiel:
gegeben:
6 Elemente 3 Paletten
A B
Elemente Palette
1 1
2 1
3 2
4 2
5 3
6 3
Dazu soll die Schleife beendet werden, sobald in zeile A eine leere Zelle auftritt.
Hier mein misslungener Versuch des Codes.
Vielen Dank für eure Hilfe im Voraus.
Gruß
Nik
Option
Explicit
Dim
AnzahlElemente
As
String
Dim
Anzahlpaletten
As
String
Sub
Packliste()
Columns(
"A:Z"
).Clear
Range(
"A1"
).Value =
"Anzahl Elemente"
Range(
"B1"
).Value =
"Palette"
Range(
"C1"
).Value =
"Farbe"
AnzahlElemente = InputBox(
"Wie viele Elemente sind es insgesamt?"
)
Range(
"m1"
).Value = AnzahlElemente
Dim
a1
As
Integer
a1 = AnzahlElemente
For
a1 = 1
To
a1
Cells(a1 + 1, 1).Value = a1
Next
a1
Anzahlpaletten = InputBox(
"Wie viele Elemente passen auf eine Palette?"
)
Range(
"n1"
).Value = Anzahlpaletten
Dim
a2
As
Integer
Dim
a3
As
Integer
Dim
a4
As
Integer
Dim
a5
As
Integer
Dim
a6
As
Integer
Dim
b1
As
Integer
Dim
b2
As
Integer
Dim
c1
As
Integer
a2 = Anzahlpaletten
a3 = Anzahlpaletten + a2
a4 = Anzahlpaletten + a3
a5 = Anzahlpaletten
a6 = Anzahlpaletten
b1 = 1
b2 = 1
Range(
"B2"
).
Select
Do
Until
IsEmpty(ActiveCell.Offset(, -1))
For
a2 = b2
To
a2
Cells(a2, 2).Value = b1
ActiveCell.Offset(1, 0).
Select
Next
a2
b1 = b1 + 1
a2 = a2 + a5
b2 = b2 + a6
Loop
End
Sub