Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
364to368
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
364to368
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro ändern

Makro ändern
17.01.2004 20:21:59
Rolf St.
Hallo Excel Experten!
In Spalte M stehen bis zu 1000 unterschiedliche Werte untereinander
Das Makro sortiert die ganze Tabelle
und löscht immer die ersten drei gleichen Werte in Zelle M. Es wird die ganze Zeile gelöscht. Beispiel: A kommt 6 mal in Spalte M vor, dan werden die ersten drei A gelöscht (die ganze Zeile), wenn B 10 mal vorkommt werden wieder die ersten drei B (die Ganze Zeile) gelöscht.
Ich möchte nun das statt drei, die ersten 6 gleichen Werte (die ganze Zeile) gelöscht wird.
Könnt ihr mir folgendes Makro daraufhin ändern?
Ich bekomme das nicht hin! Irgendwo muß von ein Befehl von drei auf sechs geändert werden.

Sub dieersten3jeak19012002()
Dim x As Integer
Dim j As Integer '            Zähler für zu löschende Zeilen
Dim last_row As Integer '     letzte Zeile aus Tabelle 2
Dim temp_field As Variant '   temporäres Datenfeld
Application.ScreenUpdating = False
last_row = Application.WorksheetFunction.CountA(Sheets("Klasse").Range("C:C")) + 1
With Sheets("Erste3jeAK")
.Activate
.Cells.ClearContents
Sheets("Klasse").Range("A2:M" & last_row).Copy
.Range("A1").PasteSpecial Paste:=xlValues, Operation:=xlNone
Range("A:M").Sort Key1:=Range("M1"), Order1:=xlAscending, Key2:=Range("D1") _
, Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
temp_field = .Range("M1:M" & last_row - 1)
For x = last_row - 4 To 1 Step -1
If temp_field(x, 1) = temp_field(x + 3, 1) Then
temp_field(x + 3, 1) = ""
j = j + 1
End If
Next x
.Range("M1:M" & last_row - 1) = temp_field
Range("A:M").Sort Key1:=Range("M1"), Order1:=xlAscending, Key2:=Range("D1") _
, Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
Range(Rows(last_row - j), Rows(last_row)).Delete
.Range("A1").Select
End With
Application.ScreenUpdating = True
End Sub

Danke!
Tschüß
Rolf

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

Betreff
Datum
Anwender
Anzeige
AW: Makro ändern
17.01.2004 22:29:43
RAnton
Hallo Rolf
ohne jetzt tief in dein Probelm einzutauchen, denke ich, daß du diese Zeilen ändern solltest:
For x = last_row - 7 To 1 Step -1
If temp_field(x, 1) = temp_field(x + 6, 1) Then
temp_field(x + 6, 1) = ""
j = j + 1
End If
Next x
Gruß
RAnton
AW: Makro ändern
18.01.2004 00:04:18
Rolf St.
Hallo Ranton!
Vielen Dank für deine Hilfe!
Es kommt eine Fehlermeldung in dieser Zeile:
If temp_field(x, 1) = temp_field(x + 6, 1) Then
Vielleicht kannst du noch mal schauen?
Tschüß
rolf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige