Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1468to1472
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

Zeilen löschen über VBA

Zeilen löschen über VBA
15.01.2016 09:24:05
Norbert
Hallo Spezialisten
in einer Tabelle, in der bis zu 8'000 Datensätze stehen können
https://www.herber.de/bbs/user/102792.xlsx
sollte folgender Automatismus über ein VBA-Script ausgeführt werden.
1. wenn in der Spalte B kein Wert steht, dann ganze Zeile löschen.
2. Innerhalb der gleichen Materialnummer (Spalte A) soll in der Spalte C nur ein gleicher Wert, und zwar derjenige mit dem jüngsten Datum (Spalte Z) stehen bleiben, alle anderen Zeilen können gelöscht werden.
3. anschliesend sortieren: 1. nach Spalte A aufsteigernd, 2. nach Spalte C aufsteigend,
4. Nach jeder Gruppe in Spalte A eine Leerzeile einfügen
ist das so machbar? Danke für eure Hilfe

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen über VBA
15.01.2016 10:43:14
UweD
Hallo
hier ein Makro.
Das Sortieren kann als erstes erfolgen. Das erleichtert dann auch die Abarbeitung :-)

Option Explicit
Sub TT()
On Error GoTo Fehler
Dim TB, i%, LR&
Set TB = ActiveSheet
Application.ScreenUpdating = False
With TB
LR = .Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte A
'sortieren
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("A:A"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range("C:C"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range("Z:Z"), SortOn:=xlSortOnValues, _
Order:=xlDescending, DataOption:=xlSortNormal
.Sort.SetRange Range("A1:Z" & LR)
.Sort.Header = xlYes
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
For i = LR To 2 Step -1
If .Cells(i, 2) = "" Then
.Rows(i).Delete xlUp
i = i - 1
End If
Do Until WorksheetFunction.CountIfs(.Columns(1), .Cells(i, 1), .Columns(3), .Cells( _
i, 3)) = 1
.Rows(i).Delete xlUp
i = i - 1
Loop
If .Cells(i, 1)  .Cells(i - 1, 1) Then .Rows(i).Insert
Next
End With
'*** Fehlerbehandlung
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
Gru0ß UweD

Anzeige
AW: Zeilen löschen über VBA
15.01.2016 10:53:50
Norbert
Perfekt - funktioniert auf Anhieb
Besten Dank und ein schönes Wochenende
Norbert

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige