Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1160to1164
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 Zellen pro Spalte

doppelte Zellen pro Spalte
Stefan
Hallo,
ich habe wieder mal ein Problem. Allerdings habe ich hier im Forum nachgesehen und ein fast identisches gefunden. Dabei handelt es sich um folgendes: Claudia vom 15.06.2010 19:05:41. Der Quellcode leistet folgendes: Es werden, wenn in einer Zeile ein Zelleintrag mehrfach vorhanden ist diese Mehrfacheinträge pro Zeile gelöscht, wobei der zuerst gefundene immer stehen bleibt. Hier nochmal der Quellcode dazu:
Sub sbDel()
Dim liRow As Integer, liCol As Integer, liCol1 As Integer
For liRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For liCol = 2 To Cells(liRow, Columns.Count).End(xlToLeft).Column
For liCol1 = liCol + 1 To Cells(liRow, Columns.Count).End(xlToLeft).Column
If Cells(liRow, liCol1).Value = Cells(liRow, liCol).Value Then
Cells(liRow, liCol1).Delete Shift:=xlToLeft
liCol1 = liCol1 - 1
End If
Next
Next
Next
End Sub
Meine Problem:
Meine Arbeit würde sehr erleichtert, wenn ich diesen Quellcode so umgeschrieben hätte, daß nicht doppelte Einträge pro Zeile gelöscht würden sondern doppelte Einträge pro Spalte gelöscht werden (wobei wie im obigen Code, der zuerst gefundene Eintrag immer stehen bleiben soll).
Viele Grüße
Stefan

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: doppelte Zellen pro Spalte
17.06.2010 00:52:39
Oberschlumpf
Hi Stefan
Da du ja den Thread von Claudia aufmerksam verfolgt hast, hast du sicher auch gelesen, dass ich sie nach einer Bsp-Datei fragte.
Wo is denn deine Bsp-Datei?
beachte, dass nich jeder Excel 2007 installiert hat.
Ciao
Thorsten
Vorschlag
17.06.2010 07:47:54
Erich
Hi Stefan,
probier mal

Sub sbDelSp()
Dim cc As Long, lngL As Long, zz As Long, xx As Long, rngD As Range
For cc = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
lngL = Cells(Rows.Count, cc).End(xlUp).Row
For zz = 1 To lngL
For xx = zz + 1 To lngL
If Cells(xx, cc).Value = Cells(zz, cc).Value Then
If rngD Is Nothing Then
Set rngD = Cells(xx, cc)
Else
Set rngD = Union(rngD, Cells(xx, cc))
End If
End If
Next
Next
Next
If Not rngD Is Nothing Then rngD.Delete Shift:=xlShiftUp
End Sub
Anders als die Vorlage beginnt die Routine in Spalte 1 und Zeile 1.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Vorschlag
17.06.2010 09:11:58
Stefan
Hallo Erich,
ich habe deinen Code ausprobiert. Er klappt hervorragend. Vielen Dank. Das hilft mir sehr weiter.
Viele Grüße
Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige