Thema Datum  Von Nutzer Rating
Antwort
23.03.2014 21:30:04 iMa
NotSolved
Blau Zellen miteinander vergleichen und bei gleichem Wert löschen
24.03.2014 00:09:21 frau
NotSolved

Ansicht des Beitrags:
Von:
frau
Datum:
24.03.2014 00:09:21
Views:
646
Rating: Antwort:
  Ja
Thema:
Zellen miteinander vergleichen und bei gleichem Wert löschen

Hi iMa,

zum "Nachdenken" ;)

Option Explicit
Dim lRow As Long, lCol As Long  'letzte Zeile, Spalte
Dim sRng As Range, c As Range   'durchsuchter Bereich, Zelle
Dim k As Range, q As Range    'Suche
Public mColor As Long              'Farbe

Sub Test()
'zu Testzwecken werden die Duplikate nur eingefärbt

lRow = Cells.Find("*", [a1], , , xlByRows, xlPrevious).Row
lCol = Cells.Find("*", [a1], , , xlByRows, xlPrevious).Row
Set sRng = Range(Cells(2, 1), Cells(lRow, lCol))

Application.ScreenUpdating = False

  mColor = 0
  NamedColumn "Spalte ist vorgegeben - jede Zelle in der Spalte nach unten"

  '**********************************************
  ' oder eine andere Methode ??
  ' wie jede Zeile mit darunter liegender Zeile ?
  ' jede Zelle mit darunter liegenden Zellen ????

  If mColor <> 0 Then
    If DoIt("sofort löschen") Then TestErgebnisLöschen
  End If
  
Application.ScreenUpdating = True

End Sub

Sub TestErgebnisLöschen()
Dim x As Long, y As Long
'eingefärbte Zeilen löschen
  
  If mColor = 0 Then Exit Sub
  
  For x = lRow To 2 Step -1
    For y = 1 To lCol
      If Cells(x, y).Interior.Color = mColor Then
        Rows(x).Delete
        Exit For
      End If
    Next y
  Next x
  mColor = 0
  
End Sub

Private Sub NamedColumn(Hint)
  Dim mCol As Long  'Auswahl Spalte
  Dim x As Long
  
  If Not DoIt(Hint) Then Exit Sub
  
  mColor = RGB(255, 0, 0)
  
  On Error GoTo errorhandler
  mCol = CLng(InputBox("Spalte als Zahl : ", , "1"))
  On Error GoTo 0
  If mCol > lCol Then Exit Sub
  
  CleanUp 'Bereinigung
  
  Set sRng = Range(Cells(2, mCol), Cells(lRow, mCol))
  
  For Each c In sRng
    If c.Value <> "" Then
      For x = c.Row + 1 To lRow
        If Cells(x, mCol).Value = c.Value Then
          Cells(x, mCol).Interior.Color = mColor
        End If
      Next x
    End If
  Next c
  
Exit Sub
errorhandler:
On Error GoTo 0
End Sub

Private Function DoIt(Hint) As Boolean
  If MsgBox(Hint, vbOKCancel, "Methode starten") = 1 Then DoIt = True
End Function

Private Sub CleanUp()
 With Cells.Interior
    .Pattern = xlNone
    .TintAndShade = 0
    .PatternTintAndShade = 0
  End With
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
23.03.2014 21:30:04 iMa
NotSolved
Blau Zellen miteinander vergleichen und bei gleichem Wert löschen
24.03.2014 00:09:21 frau
NotSolved