Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bereich für Serienbrief kopieren und löschen

Bereich für Serienbrief kopieren und löschen
19.01.2009 15:53:00
maruseru
Hallo werte Profis
Nachträglich allen ein gutes 2009.
Folgendes Problem sollte ich lösen:
Für den Serienbrief sollen alle Werte der Spalten D und E jeweils in der ersten Zeile in der der Wert von Spalte F mehrmals vorkommt verschoben werden. Danach sollen die Zeilen in denen der Wert in Spalte F doppelt vorkommt gelöscht werden.
In der Beispieldatei sind die Werte die verschoben werden sollen als Hilfe farbig markiert
https://www.herber.de/bbs/user/58583.xls
Danke und Gruss
Maruseru
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich für Serienbrief kopieren und löschen
19.01.2009 16:48:30
fcs
Hallo Masureu,
hier mein Vorschlag
Gruß
Franz

Sub ZeilenBereinigen()
Dim wks As Worksheet, lngZeile As Long, LastRow As Long
Dim varVorgesetzt, lngZeile2 As Long, spalte As Long
Set wks = ActiveSheet
Application.ScreenUpdating = False
With wks
LastRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
For lngZeile = 2 To LastRow
If Not IsEmpty(.Cells(lngZeile, 6)) Then
spalte = 9 '1.Einfüge-Spalte
'Diese und die nächste Zeile wieder löschen, wenn "nur" die Inhalte aus _
den Zeilen mit nachfolgendem gleichen Vorgesetzten kopiert werden sollen.
.Range(.Cells(lngZeile2, 4), .Cells(lngZeile2, 5)).Copy _
Destination:=.Cells(lngZeile, spalte)
spalte = spalte + 2
varVorgesetz = .Cells(lngZeile, 6).Value
For lngZeile2 = lngZeile + 1 To LastRow
If varVorgesetz = .Cells(lngZeile2, 6).Value Then
.Range(.Cells(lngZeile2, 4), .Cells(lngZeile2, 5)).Copy _
Destination:=.Cells(lngZeile, spalte)
.Rows(lngZeile2).Clear
'Spalte für nächsten Kopiervorgang
spalte = spalte + 2
End If
Next
End If
Next
'Leere zeilen Löschen
.Range(.Cells(2, 6), .Cells(LastRow, 6)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete _
shift:=xlShiftUp
End With
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Bereich für Serienbrief kopieren und löschen
19.01.2009 17:07:19
maruseru
Hallo Franz
Erstmal Dank für deine rasche Antwort.
Leider erhalte ich Laufzeitfehler 1004
Gelb markiert sind die Zeilen
.Range(.Cells(lngZeile2, 4), .Cells(lngZeile2, 5)).Copy _
Destination:=.Cells(lngZeile, spalte)
Gleich nach dem ersten Kommentar
Gruss
Maruseru
Anzeige
AW: Bereich für Serienbrief kopieren und löschen
19.01.2009 17:21:42
fcs
Hallo Maseru,
änder diese Zeile in:

'Diese und die nächste Zeile wieder löschen, wenn "nur" die Inhalte aus _
den Zeilen mit nachfolgendem gleichen Vorgesetzten kopiert werden sollen.
.Range(.Cells(lngZeile, 4), .Cells(lngZeile, 5)).Copy _
Destination:=.Cells(lngZeile, spalte)
spalte = spalte + 2


Die Variable lngZeile2 ist hier falsch.
Gruß
Franz

Anzeige
AW: Bereich für Serienbrief kopieren und löschen
21.01.2009 09:42:46
maruseru
Hallo Franz
Habe gestern deine Korrektur eingespielt. Hat alles einwandfrei funktioniert.
Vielen Dank
Maruseru

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige