nun habe ich das Problem, wenn sich das Makro 5 mal wiederholen soll, Lagere ich 5 mal den selben Platz ein.
Weil du die Suche immer wieder von vorn beginnst - siehe Range.Find Doku.
Die Aktive Zelle bleibt nicht z.B R8 sonder springt in die Zelle inder ich den Wert aus R8 einfüge.
Mit ActiveCell bzw. Select / Activate arbeitet man in der Regel auch nicht.
Ein Benutzer muss Dinge auswählen um dem Computer mitzuteilen was er möchte; ein Computer / Makro braucht nichts 'visuell' auszuwählen.
Ändern wir das also mal:
Dim rngCell As Excel.Range
Set rngCell = Worksheets("Lager").Range("R8")
For i = 1 To Number
' rngCell.Copy
' Range("N13").PasteSpecial Paste:=xlPasteValues
Worksheets("Lager").Range("N13").Value = rngCell.Value
Set Lagerplatz = Worksheets("Lager").Range("A:A").Find(What:=Worksheets("Lager").Range("N13").Value, LookIn:=xlValues, LookAt:=xlWhole)
Lagerplatz.Offset(, 1).Value = Worksheets("Lager").Range("N7").Value
Lagerplatz.Offset(, 2).Value = Worksheets("Lager").Range("N8").Value
Lagerplatz.Offset(, 3).Value = Worksheets("Lager").Range("N9").Value
Lagerplatz.Offset(, 4).Value = Worksheets("Lager").Range("N4").Value
Lagerplatz.Offset(, 5).Value = Worksheets("Lager").Range("N11").Value
Lagerplatz.Offset(, 6).Value = Worksheets("Lager").Range("N5").Value
Range("N16").ClearContents '(?)
Worksheets("Platzkarte").Range("A1:G10").PrintPreview
'eine Zelle runter
Set rngCell = rngCell.Offset(1)
Next i
Wenn die Zelle immer R8 bleiben soll, dann nimm die Zeile 24 raus.
Bei deiner Suche könntest du auch einfach schreiben:
' rngCell.Copy
' Range("N13").PasteSpecial Paste:=xlPasteValues
' Worksheets("Lager").Range("N13").Value = rngCell.Value
Set Lagerplatz = Worksheets("Lager").Range("A:A").Find(What:=rngCell.Value, LookIn:=xlValues, LookAt:=xlWhole)
Warum du das nochmal in eine extra Zelle schreibst, verstehe ich nicht.
Grüße
PS: Die Anzahl der zu verarbeitenden Zeilen kann man ermitteln; das aus einer Zelle zu nehmen ist suboptimal.
|