geänderte zellen in excel markieren

  • #1
H

hans jupp

Bekanntes Mitglied
Themenersteller
Dabei seit
20.06.2003
Beiträge
473
Reaktionspunkte
0
hallo,

ich habe mehrere umfangreiche tabellen in excel xp. diese sollen von mehreren benutzern ausgefüllt werden.
damit ich anschließend schneller sehen kann, welche zellen geändert wurden, sollen alle geänderten zellen mit einer hintergrundfarbe belegt werden.

bisher habe ich ein wenig mit der bedingten formatierung herumexperimentiert, aber ich befürchte, daß diese eventuell von den benutzern deaktiviert wird und ich die geänderten zellen nur sehr umständlich finde.

hat jemand eine andere idee - vielleicht ein makro?


vielen dank schon mal für eure hilfe :)
 
  • #2
Unter Extras - Änderungen nachverfolgen gibt es eine Möglichkeit.
 
  • #3
Hi kath.hundefriseursalon,

hab ein ähnliches Problem so gelöst, daß ich das Ursprungsblatt mit dem ausgefüllten zellenweise verglichen und die geänderten Zellen auf dem ausgefüllten Blatt farbig markiert habe.

Das Ursprungsblatt hat einen festen Namen bekommen (siehe Const). Die angelieferten Blätter habe ich in die Mappe des Ursprungsblattes hineinkopiert und dann den Makro laufen lassen.

Gruß Matjes :)

Code:
Sub ZweiTabsVergl_UnterschiedFarbig()
 ->Der Makro vergleicht die Ausgangstabelle mit der
 ->aktuellen Tabelle zellenweise.
 ->In der aktuellen Tabelle werden die Zellen sich
 ->unterscheidenden Zellen farblich markiert
 ->Voraussetzung: beide Tabellen befinden sich
 ->in der aktuellen Mappe
  
 ->Name des Ursprungsblattes (ggf. anpassen)
  Const c_Name_Ursprungstabelle As String = UrsprungsTab
  
 ->Colorindex zum einfärben der unterschiedlichen Zellen
  c_colorindex_diff = 33->hellblau
  
  Dim ws_u As Worksheet, ws_a As Worksheet
  Dim l_row_u As Long, l_col_u As Long
  Dim l_row_a As Long, l_col_a As Long
  Dim l_row As Long, l_col As Long
  
  On Error Resume Next
  
 ->Ursprungsblatt
  Set ws_u = ActiveWorkbook.Worksheets(c_Name_Ursprungstabelle)
  If Err.Number <> 0 Then
    Err.Clear
    MsgBox (Ursprungsblatt nicht in der aktuellen Mappe enthalten)
    GoTo EndeBearbeitung
  End If
  
 ->Vergleichsblatt
  Set ws_a = ActiveSheet
  If ws_u.Name = ws_a.Name Then
   ->Ursprungsblatt aktiv
    MsgBox (Ursprungsblatt ist aktives Blatt & vbLf & _
            Kann nicht mit sich selbst verglichen werden!)
    GoTo EndeBearbeitung
  End If
  
  l_col_u = ws_u.Cells.SpecialCells(xlCellTypeLastCell).Column
  l_row_u = ws_u.Cells.SpecialCells(xlCellTypeLastCell).Row
  l_col_a = ws_a.Cells.SpecialCells(xlCellTypeLastCell).Column
  l_row_a = ws_a.Cells.SpecialCells(xlCellTypeLastCell).Row
  l_col = Application.WorksheetFunction.Max(l_col_u, l_col_a)
  l_row = Application.WorksheetFunction.Max(l_row_u, l_row_a)
  
  For c = 1 To l_col
    For r = 1 To l_row
      If ws_a.Cells(r, c).Value <> ws_u.Cells(r, c).Value Then
        ws_a.Cells(r, c).Interior.ColorIndex = c_colorindex_diff
      End If
    Next
  Next
EndeBearbeitung:
  Set ws_u = Nothing: Set ws_a = Nothing
End Sub
 
  • #4
hallo,

@KarstenR: vielen dank für den tipp, aber sowie ich das sehe, können auch hier die benutzer die rückverfolgung ausstellen und meine suche beginnt von vorn ...

@matjes: vielen dank für das makro. ich werde das nachher direkt mal ausprobieren!

gruß,
kath.hundefriseursalon
 
Thema:

geänderte zellen in excel markieren

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben