Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1388to1392
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

doppelte werte komplett löschen

doppelte werte komplett löschen
27.10.2014 14:18:27
simonek
Hallo meine lieben,
ich bräuchte zwei codes.
in Spalte A sind doppelte werte und ich möchte gerne per VBA , das er alle doppelte Werte KOMPLETT löscht.
Der zweite code wäre:
Alle Zeilen löschen, wenn in Spalte D die Zahl 2 , 3 oder die 5 steht.
wäre sowas möglich?
Danke erstmal
Liebe Grüße Simone

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

Betreff
Datum
Anwender
Anzeige
AW: doppelte werte komplett löschen
27.10.2014 14:59:52
yummi
Hallo Simone,
zu 1:
ActiveSheet.Range("$C$1:$D$4").RemoveDuplicates Columns:=1, Header:=xlYes
zu 2:

sub loescheZeile
dim letztezeile as long
dim i as long
letztezeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
for i = 1 to leztezeile
if ActiveSheet.Cells(i,4).value = 2  or ActiveSheet.Cells(i,4).value = 3 or ActiveSheet.Cells(i, _
4).value = 5 then
ActiveSheet.rows(i).delete
next i
end sub
müsste so passen
Gruß
yummi

AW: doppelte werte komplett löschen
27.10.2014 16:16:44
simonek
Hallo yummi,
zu 1 eine frage: muss der code so aussehen?
zu 1:
Sub doppeltelöschen
ActiveSheet.Range("$C$1:$D$4").RemoveDuplicates Columns:=1, Header:=xlYes
End Sub
Danke für deine Hilfe

Anzeige
AW: doppelte werte komplett löschen
27.10.2014 16:51:47
yummi
Hallo Simone,
wenn deine Tabelle von C1 bis D4 geht ja.
wenn du es variabel haben willst (für die Anzahl Zeilen):
z.B.: Tabelle von C1 bis D letzte Zeile

ActiveSheet.Range("C1:D" & ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row). _
RemoveDuplicates Columns:=1, Header:=xlYes
In Der Klammer hinter Range gibst Du die 1. Spalte und Zeile und die letzte Spalte fix an.
Hinter Columns gibst du die Spalte deines gewählten Bereichs an in dem die Duplikate entfernt werden sollen (1 bedeutet in diesem Fall spalte C)
Header:=XlYes bedeutet du hast eine Überschriftszeile
Wenn nicht einfach xlNo
Gruß
yummi

Anzeige
AW: doppelte werte komplett löschen
27.10.2014 19:14:57
simonek
Hi yummi,
Super danke für deine ausführlich hilfe.
Danke danke
Liebe grüße simonenb

code funktioniert leider nicht
28.10.2014 05:20:52
simonek
Hallo yummi,
Leider funktioniert der erste code mit doppelte werte in Spalte A komplett löschen nicht.
Die Zeile wird gelb :-(
LG simone

AW: code2 leider auch nicht
28.10.2014 05:33:12
simonek
Hallo,
Beim zweiten code ( Spalte D die Zeilen löschen wenn die Zahl 2 oder 3 oder 5 )
Geht leider auch nicht.
Fehler bei " Next i" da kommt dann : Fehler beim kompilieren Next ohne For
Was nun?
LG simone

da fehlt sicher ein End If ...owT
28.10.2014 07:03:06
Matthias

und beachte die Schreibweise der Variable ...
28.10.2014 07:46:24
Matthias
Hallo
Solltest Du den Code von yummi 1:1 kopiert haben, musst Du noch mal anpassen.
letztezeile = ActiveSheet.UsedRange.SpecialCells( _
xlCellTypeLastCell).Row
for i = 1 to leztezeile
Das kann zwar passieren, aber wenn Du ohne Option Explicit arbeiten solltest
merkst Du u.U. nicht das die Variable beim 2.Einsatz falsch geschrieben wurde.


2.
Ich würde beim Löschen von Zeilen immer rückwärts arbeiten.
With Tabelle1 'CodeName des Registers
letztezeile = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
For i = letztezeile To 1 Step -1
If .Cells(i, 4).Value = 2 Or .Cells(i, 4).Value = 3 Or .Cells(i, 4).Value = 5 Then
.Rows(i).Delete
End If
Next i
End With
Gruß Matthias

Anzeige
AW: code2 leider auch nicht
28.10.2014 09:25:13
yummi
Hallo Simone,
sry hatte den Code nur hier im Forum getippt, hab dein vba level nicht beachtet.
hier jetzt syntaktisch und funktional korrekt

Option Explicit
Sub loescheZeile()
Dim letztezeile As Long
Dim i As Long
letztezeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
For i = letztezeile To 1 Step -1
If ActiveSheet.Cells(i, 4).Value = 2 Or ActiveSheet.Cells(i, 4).Value = 3 Or  _
ActiveSheet.Cells(i, 4).Value = 5 Then
ActiveSheet.Rows(i).Delete
End If
Next i
End Sub
füg den gesamten Code in ein leeres Modul deiner Datei ein.
Gruß
yummi

Anzeige
so wäre es auch gegangen ...
28.10.2014 09:44:24
Matthias
Hallo
Hättest auch einfach schreiben können
Danke, Matthias fürs Korrigieren.
Denn gelesen hast Du es 100%ig
Gruß Matthias

Danke Mattias
28.10.2014 10:16:18
yummi
ja hatte ich und stimme dir 100% zu.
lösche eigentlich auch immer rückwärts, weiß nicht warum gestern nicht :-)
aber so ist es für Simone auch nachvollziehbar. Ich woltle ja ihr helfen und nicht dich kritisieren.
Finde es ja gut wenn hier von vielen Seiten geholfen wird.
Gruß
yummi

code 1 macht probleme
28.10.2014 14:52:21
simonek
Hallo Danke an alle:-)
Der zweite code funktioniert supi:-).leider macht der code 1( alle doppelte Spalte A komplett löschen) noch Probleme.hoffe ihr könnt das auch noch lösen :-)
LG simone

Anzeige
was heißt das --> code 1 macht probleme
29.10.2014 10:56:13
Matthias
Hallo
Zitat:

leider macht der code 1( alle doppelte Spalte A komplett löschen) noch Probleme.hoffe ihr könnt das auch noch lösen
Was heißt das (macht Probleme) ?
Gruß Matthias

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige