Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1040to1044
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige