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()
'Löschen der Inhalte aus Spalte B
Columns("A:Z").Clear
'Zelleneintrag A1 = Anzahl Elemente
Range("A1").Value = "Anzahl Elemente"
'Zelleneintrag B1 = Palette
Range("B1").Value = "Palette"
'Zelleneintrag C1 = Farbe
Range("C1").Value = "Farbe"
'Abfrage, wie viele Elemente insgesamt
AnzahlElemente = InputBox("Wie viele Elemente sind es insgesamt?")
Range("m1").Value = AnzahlElemente
Dim a1 As Integer
a1 = AnzahlElemente
'Schleife zum Eintragen der Anzahl Elemente wie vorher eingegeben
For a1 = 1 To a1
Cells(a1 + 1, 1).Value = a1
Next a1
'Abfrage, wie viele Elemente auf eine Palette passen
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
|