Zeile kopieren, wenn ein Kriterium erfüllt ist

03/11/2008 - 21:29 von Berta_Wolperdinger | Report spam
Hallo, ich habe Excel 2003.
In meinen Ausgangsdaten sind KundenNr und Produkte gelistet. Mein Ziel ist
es, jede KundenNr. mindestens zweimal (!) erscheinen zu lassen - klingt
komisch, ist aber so. (;-). Sprich: wenn ich eine KundenNr. nur in einer
Zeile habe, möchte ich die ganze Zeile kopieren, so dass ich dann am Ende
zwei identische Zeilen untereinanderstehen habe.
Ich hab mir schon überlegt, dass ich mit einer "Wenn-Dann"-Funktion
herausfinden kann, ob die KundenNr. einmalig oder mehrmalig vorkommt. Aber
wie stelle ich es dann an, dass ich die Zeile (möglichst unmittelbar drunter)
kopiere und einfüge? Danke für einen Tipp! PS: Bin kein VBA-Krack, müsste das
Problem also mit xls-Boardmitteln lösen?!? geht das? Die Berta
 

Lesen sie die antworten

#1 Wolfgang Habernoll
04/11/2008 - 16:19 | Warnen spam
Hallo

"Berta_Wolperdinger" schrieb im
Newsbeitrag news:
Hallo, ich habe Excel 2003.
In meinen Ausgangsdaten sind KundenNr und Produkte gelistet. Mein Ziel ist
es, jede KundenNr. mindestens zweimal (!) erscheinen zu lassen - klingt
komisch, ist aber so. (;-).


ja
Sprich: wenn ich eine KundenNr. nur in einer
Zeile habe, möchte ich die ganze Zeile kopieren, so dass ich dann am Ende
zwei identische Zeilen untereinanderstehen habe.
Ich hab mir schon überlegt, dass ich mit einer "Wenn-Dann"-Funktion
herausfinden kann, ob die KundenNr. einmalig oder mehrmalig vorkommt. Aber
wie stelle ich es dann an, dass ich die Zeile (möglichst unmittelbar drunter)
kopiere und einfüge? Danke für einen Tipp! PS: Bin kein VBA-Krack, müsste das
Problem also mit xls-Boardmitteln lösen?!? geht das? Die Berta




du brauchst kein kein VBA-Krack zu sein, klicke mit der rechten Maustaste auf das
Register deines Tabellenblattes und wàhle Code anzeigen.
Hier hinein kopierst du folgenden Code

-Vor Ausführung Sicherungkopie deiner Tabelle nicht vergessen

'
Sub KundenVerdoppeln()
Dim lngI As Long
Dim ws As Worksheet

Const KnrSpalte = "A" '' ersetze hier. A durch die richtige Spalte

Set ws = ActiveSheet
For lngI = ws.Range(KnrSpalte & Rows.Count).End(xlUp).Row To 2 Step -1
If ws.Cells(lngI, KnrSpalte) <> ws.Cells(lngI - 1, KnrSpalte) Then
ws.Rows(lngI + 1).Insert Shift:=xlDown
ws.Rows(lngI & ":" & lngI + 1).FillDown
End If
Next lngI
End Sub
'
Aber ganz wichtig! Die Kundennummern (KNr) müssen sortiert sein.
-Lege dazu eine Hilfsspalte an die du durchnumerierst.
-sortieren nun deine Tabelle nach KNr
-ersetze nun noch ggf. im Code die Spalte "A" mit der richtigen Spalte der KNr in
deiner Tabelle
-starte den Code
-nun kannst du mit der Hilfsspalte wieder neu Sortieren um die ursprüngliche
Reihenfolge herzustellen

mfG
Wolfgang Habernoll

[ Win XP Home SP-2 , XL2002 ]

Ähnliche fragen