Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
880to884
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
880to884
880to884
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Doppelte Löschen Erweitert

Doppelte Löschen Erweitert
03.07.2007 12:36:52
Thomas
Hallo,
ich habe beispielsweise in SpalteC ab beispielsweise Zelle C10 sich immer wiederholende Zahlen untereinander stehen. Es soll so gelöst werden, dass er in Spalte C Zeile für Zeile mit der Zeile, die 3 Zeilen weiter unten ist vergleicht. Ist die Zeile C12 z.b. gleich wie die mit C15, dann soll er mittels xlDown ab C12 und 2 Spalten weiter rechts alles löschen (activecell.offset(0, 2).
Erbitte um Lösungsvorschlag
Grüße und Danke schonmal !

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Löschen Erweitert
03.07.2007 12:48:08
Chaos
servus,
vergleichen, z.B., so
reihe = Range("C65536").End(xlUp).Offset(0,0).row
For zeile = 1 To reihe Step 1
If Cells(zeile, 3).Value = Cells(zeile +3, 3).Value Then
'Was soll gemacht werden
End if
Next zeile
das mit dem Löschen, hab ich nicht verstanden. was soll da genau gelöscht werden in Spalte E und wie weit?
Gruß
Chaos

AW: Doppelte Löschen Erweitert
03.07.2007 13:24:00
Thomas
wenn C12 und C15 gleich sind dann soll ab/einschließlich C13 so weit runter in Spalte C markiert werden wie weit diese auch beschrieben ist (mit xlDown doch möglich). Zugleich soll die Markierung aber um 2 Spalten nach rechts mitmarkiert werden und schlussendlich die komplette Markierung gelöscht werden. In diesem Fall wäre der Range wenn Spalte C bis sagen wir mal Zeile 20 beschrieben ist, Range("C13", "E20")

Anzeige
AW: Doppelte Löschen Erweitert
03.07.2007 14:25:36
Chaos
Servus,
das makro macht genau das, wobei ich nicht verstehe, warum du alles löschen willst, was folgt.

Sub reihe()
Dim reihe As Integer, zeile As Integer, s As Integer
reihe = Range("C65536").End(xlUp).Offset(0, 0).Row
For zeile = 1 To reihe Step 1
If Cells(zeile, 3).Value = Cells(zeile + 3, 3).Value Then
s = Cells(zeile + 1, 3).Row
Range("C" & s & ":E" & reihe).ClearContents
End If
Next zeile
End Sub


Gruß
Chaos

AW: Doppelte Löschen Erweitert
03.07.2007 22:05:00
Thomas
danke dir soweit mal, kann den Code erst morgen ausprobieren.
Hintergrund, wenn geprüft wurde ob sich 3 Zeilen weiter unten der gleiche Zeileneintrag wiederholt, ist sichergestellt, dass dieser auch bis ganz unten sich nicht weiter verändert und somit gelöscht werden kann.
Grüße
Thomas

Anzeige
AW: Doppelte Löschen Erweitert
04.07.2007 07:01:48
Thomas
Vielen Dank Chaos, hab den Code nun testen können. Funktioniert genau so wie ichs beschrieben hatte. Nur ist ein Fehler in meiner Beschreibung, da es sich hierbei nicht immer um die Reihen C und/bis E handelt, sondern in Abhängigkeit geschalten werden müsste.
Das mein Code, die erste Spalte wo bisher "C" war findet ja mein "Suchlauf" raus indem er die Spaltenbeschriftung sich anschaut und genau in der Spalte wo auch die Spaltenbeschriftung "Bierverzehrinm3" übereinstimmt soll nach den doppelten Einträgen durchsucht werden wie wir es besprochen hatten:
Dim Spalte As Integer, Zellen As Integer, m As Integer
Do
If ActiveCell.Value = "Bier-" & Chr(10) & "verzehr" & Chr(10) & "in Kubikmeter" Then
ActiveCell.FormulaR1C1 = "Bierverzehrinm3"
Range(Selection, Selection.End(xlDown)).Select
Selection.NumberFormat = "#,##0.0"
Spalte = Range("C65536").End(xlUp).Offset(0, 0).Row
For Zellen = 1 To Spalte Step 1
If Cells(Zellen, 3).Value = Cells(Zellen + 3, 3).Value Then
m = Cells(Zellen + 1, 3).Row
Range("C" & m & ":E" & Spalte).ClearContents
End If
Next Zellen
End If
ActiveCell.Offset(0, 1).Range("A1").Select
Loop Until IsEmpty(ActiveCell)

Anzeige
AW: Doppelte Löschen Erweitert
04.07.2007 07:53:00
Chaos
Servus Thomas,
also fassen wir mal kurz zusammen:
Du suchst nach Bier u.s.w., wandelst das in "Bierverzehrinm3" um und willst dann in diesem Range, der ja markiert ist, die zellen suchen, die doppelt sind und den Rest löschen und das ist nicht immer Spalte C bis E, sondern variabel ?
Hab ich das richtig verstanden?
Gruß
Chaos

AW: Doppelte Löschen Erweitert
04.07.2007 08:14:00
Thomas
ich hab selbst die Lösung, obs so elegant ist wie wenn du Chaos es gemacht hättest bezweifel ich zwar - aber es funktioniert. Kannst ja mal drüberschauen ob man eventuell was verbessern könnte.
Dim Spalte As Integer, Zellen As Integer, m As Integer
Do
If ActiveCell.Value = "Belag-" & Chr(10) & "verschleiss" & Chr(10) & "in [g]" Then
ActiveCell.FormulaR1C1 = "BelagverschleißinGramm"
Range(Selection, Selection.End(xlDown)).Select
Spalte = Selection.End(xlDown).Offset(0, 0).Row
Selection.NumberFormat = "#,##0.0"
For Zellen = 1 To Spalte Step 1
If Cells(Zellen, 3).Value = Cells(Zellen + 3, 3).Value Then
m = Cells(Zellen + 1, 3).Row
n = ActiveCell.Column
Range(Cells(m, n), Cells(m, n)).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.ClearContents
End If
Next Zellen
Grüße
Thomas

Anzeige
AW: Doppelte Löschen Erweitert
04.07.2007 08:25:00
Thomas
hier der ganze Code - allerdings beim ausgiebigem Testen sind mir noch Fehler aufgefallen:
Dim Spalte As Integer, Zellen As Integer, m As Integer, n As Integer
Do
If ActiveCell.Value = "Belag-" & Chr(10) & "verschleiss" & Chr(10) & "in [g]" Then
ActiveCell.FormulaR1C1 = "BelagverschleißinGramm"
Range(Selection, Selection.End(xlDown)).Select
Spalte = Selection.End(xlDown).Offset(0, 0).Row
Selection.NumberFormat = "#,##0.0"
For Zellen = 1 To Spalte Step 1
If Cells(Zellen, 3).Value = Cells(Zellen + 3, 3).Value Then
m = Cells(Zellen + 1, 3).Row
n = ActiveCell.Column
Range(Cells(m, n), Cells(m, n)).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.ClearContents
End If
Next Zellen
End If
ActiveCell.Offset(0, 1).Range("A1").Select
Loop Until IsEmpty(ActiveCell)
Range("A1").Select

Anzeige
AW: Doppelte Löschen Erweitert
04.07.2007 09:10:24
Thomas
jetzt hab ichs glaube ich :-)
Dim Spalte As Integer, Zellen As Integer, m As Integer, n As Integer
Do
If ActiveCell.Value = "Belag-" & Chr(10) & "verschleiss" & Chr(10) & "in [g]" Then
ActiveCell.FormulaR1C1 = "BelagverschleißinGramm"
Range(Selection, Selection.End(xlDown)).Select
Spalte = Selection.End(xlDown).Offset(0, 0).Row
Selection.NumberFormat = "#,##0.0"
For Zellen = 1 To Spalte Step 1
If Cells(Zellen, 3).Value = Cells(Zellen + 3, 3).Value Then
m = Cells(Zellen + 1, 3).Row
n = ActiveCell.Column
Range(Cells(m, n), Cells(m, n)).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.ClearContents
b = b + 1
End If
If b = 2 Then GoTo Weiter2
Next Zellen
End If
Weiter2:
ActiveCell.Offset(0, 1).Range("A1").Select
Loop Until IsEmpty(ActiveCell)
Range("A1").Select

Anzeige
AW: Doppelte Löschen Erweitert
04.07.2007 09:26:32
Chaos
Servus,
du suchst immer noch in Spalte C ,Cells(Zellen, 3), wenn das die aktive Spalte sein soll, dann musst du n = Activecell.Column vor der If-Anweisung schreiben und Cells(Zellen, n)
Und warum
Range(Cells(m, n), Cells(m, n)).Select, das ist dasselbe cells(m,n)! , hier reicht Cells(m,n).Select
sonst dürfte das eigentlich passen
Gruß
Chaos

AW: Doppelte Löschen Erweitert
04.07.2007 09:18:36
Chaos
Servus Thomas,
ich hab mich mal an deine Vorgabe gehalten und das makro komplett anders aufgebaut.

Sub neu()
Dim m As String
Dim z1 As Range, z As Range, z2 As Range
On Error GoTo fehler
m = ActiveCell.Address
Range(Selection, Selection.End(xlDown)).Select
For Each z1 In Selection
If z1.Value = "Bier- u.s.w." Then
z1.FormulaR1C1 = "Bierverzehrinm3"
End If
Next z1
For Each z2 In Selection
If z2.Value = "Bierverzehrinm3" Then
Range(Selection, Selection.End(xlDown)).Select
Selection.NumberFormat = "#,##0.0"
End If
Next z2
For Each z In Selection
If z.Value = z(4, 1).Value And z.Value = "Bierverzehrinm3" Then
Range(z(2, 1), z(2, 3)).Select
Range(Selection, Selection.End(xlDown)).ClearContents
End If
Next z
Range(m).Select
fehler:
Range(m).Select
Exit Sub
End Sub


das makro ändert deine Zellen (Name und Format), wenn vorhanden und löscht wenn der Wert sich in der dritten zeile darunter wiederholt alles ab der zeile darunter, einschließlich der nächsten 2 Spalten.
Wenn nichts da ist geht es wieder zur 1. Makierung (zelle) zurück.
Gruß
Chaos

Anzeige
AW: Doppelte Löschen Erweitert
04.07.2007 10:18:00
Thomas
super Sache Chaos ! Ich danke dir vielmals für die Unterstützung und Hilfe !!
Greetings
Thomas

AW: Doppelte Löschen Erweitert
04.07.2007 10:41:00
Chaos
Bitte!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige