Mit VBA Anzahl errechnete Zeilen kopieren und einfügen

Ich möchte mit VBA folgendes machen:

Name              Datum    Anzahl Art.    GewSum   Gew
Mustermann   01.01.14      45              135        

Die Anzahl Artikel soll in so viele Zeilen gesplittet werden, wie sie aufgerundet durch 20 teilbar ist, das Gewicht soll entsprechend errechnet werden.

Ergebnis: hier also 2 zeilen einfügen:
Name              Datum    Anzahl Art.    GewSum   Gew
Mustermann   01.01.14      20              60        
Mustermann   01.01.14      20              60
Mustermann   01.01.14        5              15

Kann das Jemand?

Hallo Doddl (dies ist eine Anrede, die wird hier ganz gerne gelesen),

du bist hier neu, und deswegen mein Tipp: Es ist immer gut, wenn man sein Problem möglichst genau erklärt. Ich hab zwar so eine ungefähre Ahnung, um was es dir geht. Aber um das genau vercoden zu können, fehlen Angaben:
Ist das eine einmalige Sache, oder stehen dort viele verschieden Einträge untereinander, die alle bearbeitet werden sollen?
ich vermute, es geht um Excel.
Wie heißt das Tabelleblatt, in dem die Daten stehen?
In welcher Zeile beginnen die Daten?
In welcher Spalte stehen die Daten?
Was du möchtest, ist vermutlich relativ einfach mit einem VBA Makro zu erschlagen. Aber mindstens die o.a. Fragen müssen geklärt werden. Evtl. treten dann noch weitere auf.
Am besten wäre es, du würdest mal eine Beispielmappe hochladen, z.B. hier:
http://www.file-upload.net/
Dann wird vermutlich vieles einfacher.

Gruß, Andreas (auch so eine Formel sieht man hier gerne).

**Hallo Andreas,

vielen Dank für Deine Antwort - ich bin tatsächlich neu hier, war auch noch nie in einem Forum angemeldet. Mit diesem (Excel)-Problem schlage ich mich sehr oft an der Arbeit rum.
Ich werde morgen mal eine kleine Datei hochladen.
Der Name des Tabellenblattes ist egal, könnte Daten heißen.
Es sind ca 10 Spalten mit unterschiedlichen Angaben zur Lieferung verschiedener Kunden, von denen 8 dann nur kopiert werden müssten und halt die 2 Spalten, in denen die Werte berechnet werden müßten.

  1. die Anzahl Artikel, die darf pro Zelle (Zeile) höchstens 20 sein
  2. Das Gewicht - muss durch die Anzahl Artikel geteilt werden.
  3. Es wäre noch schön, wenn man je eine Spalte mit dem Gesamtgewicht und der Gesamtanzahl hätte. In den Zellen würde der Wert auch nur kopiert in die errechneten Zeilen. Dann könnte man auf einen Blick erkennen, welche Angaben
    zusammen gehören. Im Bsp. oben:

Name              Datum         Summe Art  Anz.Art.    SumGew   Gew
Mustermann   01.01.14      45                 20                 135        60        
Mustermann   01.01.14      45                 20                 135        60
Mustermann   01.01.14      45                   5                 135        15
Meier               03.02.14      30                 20                  60         40
Meier               03.02.14      30                 10                  60         20

Problem ist, die zu erechnente Zeilenanzahl ist natürlich pro Kunde immer unterschiedlich??
Die fertigen Daten werden dann in eine Exceltabelle (die sehr viele Formeln und Berechnungen enthält) kopiert. Momentan mache ich das per Hand.

Vielen Dank schon mal für evtl. Lösungsansätze.

Viele Grüße
Doddel**

Hallo Andreas, ich habe Dir jetzt eine Antwort geschrieben, die aber wohl nicht an Dich direkt geschickt wird - muss das auch noch lernen.
Viele Grüße Doddel

Hallo Doddel,

ich beziehe mich jetzt mal auf dein Beispiel aus dem Ursprungsposting (weil das Beispiel in deinem letzten Posting schon wieder anders aussah).
Dazu habe ich dir hier mal eine Mappe hochgeladen:
http://www.file-upload.net/download-9412952/ListeStr…
(und hier wieder die Warnung an alle, die in ihrem Browser keinen Werbeblocker benutzen: Die Download-Seite strotzt von Werbung und falschen Download-Buttons. Dafür ist sie halt kostenlos. Der richtige Button ist der blaue mit der kleinen weißen Wolke und dem blauen Pfeil darin).
Schau dir die Mappe mal an (notiere evtl. die Ausganswerte) und starte dann den Makro „aufdröseln“.
Hast du dir das Ergebnis wo vorgestellt?
Wie schon früher gesagt: Um den Makro auf deine echte Mappe anpassen zu können, brauche ich eine Beispielmappe von dir, wo ich den Makro reinschreiben kann.

Gruß, Andreas

Hallo Andreas, das Makro ist schon super. Habe es laufen lassen, das reicht mir eigentlich erst mal so! Ich habe nur noch 2 Fragen:
Warum setzt Du ze1 am Anfang auf 2??
Und wie kann ich das makro ändern, wenn ich statt der 20 zum Beispiel 33 Artikel in einer Zeile haben will?
Aber Du hast mir schon sehr geholfen!!!
Vielen Dank und viele Grüße!
Doddl

Hi Doddl,

ich hatte ze1 auf 2 gesetzt, weil ich in Zeile 1 die Spaltenüberschriften hatte, die ja nicht mit analysiert werden sollen. Die „Arbeit“ beginnt also in Zeile 2.
Hier noch eine Version, bei der du die Konstante „satzgröße“ auf einen beliebigen ganzzahligen Wert setzten kannst. Ich habe mal deine 33 eingetragen. Es geht abe auch beliebig anders.

Option Explicit

Sub aufdröseln()
 Dim ze1 As Long, ze2 As Long
 Dim einfügen As Long
 Dim gew As Single, anz As Long
 Const satzgröße As Long = 33

 ze1 = 2
 Do
 If Not IsEmpty(Cells(ze1, 1)) Then
 gew = Cells(ze1, 4) / Cells(ze1, 3)
 anz = Cells(ze1, 3)
 einfügen = WorksheetFunction.RoundUp(Cells(ze1, 3) / satzgröße, 0) - 1
 Rows(ze1 + 1 & ":" & ze1 + einfügen).Insert Shift:=xlDown
 For ze2 = ze1 To ze1 + einfügen
 Cells(ze2, 1) = Cells(ze1, 1)
 Cells(ze2, 2) = Cells(ze1, 2)
 Cells(ze2, 3) = WorksheetFunction.Min(satzgröße, anz)
 Cells(ze2, 4) = Cells(ze2, 3) \* gew
 anz = anz - satzgröße
 Next ze2
 End If
 ze1 = ze1 + einfügen + 1
 Loop Until ze1 \> Cells(Rows.Count, 1).End(xlUp).Row
End Sub

Gruß, Andreas

Hallo Andreas,
SUUUPer!!! Vielen Dank!! Ach - das würde ich auch gerne können!
Ich freue mich schon darauf, das Makro nächste Woche im Büro auszuprobieren!!
Ein schönes Wochenende!
Doddl

Hallo Andreas,

Hi, Doddl

Ach - das würde ich auch gerne können!

Dann stürze dich (wie ich dunnemals) ins Abenteuer VBA, spiele damit herum und staune, was damit alles möglich ist.
Und wenn du Fragen dazu und Probleme damit hast, dann wende ich einfach wieder hire als Forum. Hier wirst du gerne geholfen.

Ein schönes Wochenende!
Doddl

Dito, Andreas