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

Code erweitern mit Spalten-Zellenauswahl

Code erweitern mit Spalten-Zellenauswahl
31.10.2007 08:10:00
erwin.geer
Guten Morgen,
aus dem Forum habe ich folgenden Code, mit dem ich schnell doppelte Einträge in einer Spalte finden kann.

Sub Doppelte()
Dim arrAZ
Dim lngLauf As Long
Dim lngAnzahl As Long
Application.ScreenUpdating = False
lngAnzahl = Sheets("Tabelle1").Cells(65536, 1).End(xlUp).Row
arrAZ = Sheets("Tabelle1").Range("A1:A" & lngAnzahl)
For lngLauf = 2 To lngAnzahl
'wenn gleich dem Vorgänger, dann rot
If arrAZ(lngLauf, 1) = arrAZ(lngLauf - 1, 1) Then
Sheets("Tabelle1").Cells(lngLauf, 1).Interior.ColorIndex = 3
Else
'wenn gleich dem Nachfolger, aber ungleich dem Vorgänger, dann blau
If arrAZ(lngLauf, 1) = arrAZ(lngLauf + 1, 1) Then
Sheets("Tabelle1").Cells(lngLauf, 1).Interior.ColorIndex = 37
End If
End If
Next
Application.ScreenUpdating = True
End Sub


Leider ist immer fest voreingestellt "Tabelle1" und Spalte "A". Ich möchte aber flexibel auch mal die Dublettenprüfung ab Zelle "C5" starten können.
In einem anderen Makro von mir ist das so gelöst:


Sub blabla()
Dim Zelle1
Dim Wo, ber, Ja
eing = InputBox("Die Zelle eingeben, ab der geprüft werden soll," _
& (Chr(13)) & "z.B. A1 oder F6.", "Zellenauswahl")
If eing = "" Then Exit Sub
Range(eing).Select
eing = ""
Application.ScreenUpdating = False
Zelle1 = ActiveCell
Wo = ActiveCell.Address
ActiveCell.Offset(1).Select
ber = ActiveCell.CurrentRegion.Rows.Count
For x = 1 To ber
i = 1
For i = i To ber...............
End Sub


Wiederum leider kann kann ich das wegen fehlender VBA Kenntnisse nicht selbst in mein neues Marko einbauen :(
Wer kann bitte helfen?
Grüße Erwin

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

Betreff
Datum
Anwender
Anzeige
Hilfe - kann das keiner - glaub ich nicht
01.11.2007 00:19:24
erwin.geer
Guten Abend,
ich kann nicht glauben, dass mir keiner helfen kann.
Die Codes sind ja schon alle da, nur umbauen müsste es noch jemand - oder selbst entwickeln, mir eigentlich egal.
Der Code ist einfach zu starr. ich bräuchte eine Möglichkeit, den Beginn der Dublettenprüfung frei einzugeben.
Vielleicht kann's ja mal jemand probieren.
Grüße Erwin

AW: Hilfe - kann das keiner - glaub ich nicht
01.11.2007 02:13:21
Daniel
Hi
ich hab den Code mal so umgebaut, daß er immer die Spalte der gerade aktiven Zelle prüft, und zwar die aktive Zelle und alle Werte darunter:

Sub Doppelte()
Dim arrAZ
Dim rngAZ As Range
Dim lngLauf As Long
Dim lngAnzahl As Long
Application.ScreenUpdating = False
Set rngAZ = Range(ActiveCell, Cells(65536, ActiveCell.Column).End(xlUp))
lngAnzahl = rngAZ.Cells.Count
arrAZ = rngAZ
For lngLauf = 2 To lngAnzahl - 1
'wenn gleich dem Vorgänger, dann rot
If arrAZ(lngLauf, 1) = arrAZ(lngLauf - 1, 1) Then
rngAZ.Cells(lngLauf, 1).Interior.ColorIndex = 3
Else
'wenn gleich dem Nachfolger, aber ungleich dem Vorgänger, dann blau
If arrAZ(lngLauf, 1) = arrAZ(lngLauf + 1, 1) Then
rngAZ.Cells(lngLauf, 1).Interior.ColorIndex = 37
End If
End If
Next
Application.ScreenUpdating = True
End Sub


schneller und eleganter gehts aber auf jeden Fall mit der bedingten Formatierung.
Die hätte zudem noch den Vorteil, daß sie bei Änderungen sofort reagiert und die Anzeige anpasst, ohne daß du das Makro nochmal starten musst:


Sub Makro2()
With Range(ActiveCell, Cells(65536, ActiveCell.Column).End(xlUp))
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=ZS=Z(-1)S"
.FormatConditions(1).Interior.ColorIndex = 38
.FormatConditions.Add Type:=xlExpression, Formula1:="=ZS=Z(1)S"
.FormatConditions(2).Interior.ColorIndex = 37
End With
End Sub


Gruß, Daniel

Anzeige
AW: Hilfe - kann das keiner - glaub ich nicht
02.11.2007 06:47:00
erwin.geer
Guten Morgen Daniel,
war über die Tage weg und habe jetzt deine beiden Lösungen angesehen.
Zuerst herzlichen Dank für die Mühe, gleich 2 Ergebnisse zu erarbeiten.
Das Beste ist, dass beide Codes passen !!
Ich werde mich für die 1. Lösung entscheiden, weil ich mit einem anderen Makro
dann weiterarbeiten kann.
Nochmals Danke - Erwin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige