Excel 2003 Mitarbeiterfarben

Dieses Thema Excel 2003 Mitarbeiterfarben im Forum "Microsoft Office Suite" wurde erstellt von joergi78, 25. Apr. 2007.

Thema: Excel 2003 Mitarbeiterfarben Hallöchen an alle, kann ich es in Excel2003 realisieren, dass immer die 1. Zelle einer Zeile je nach...

  1. Hallöchen an alle,
    kann ich es in Excel2003 realisieren, dass immer die 1. Zelle einer Zeile je nach Benutzereingaben eine bestimmte Farbe bekommt???
    z.B.:
    Benutzer Franz trägt in die Zelle A2 was ein, nun wird in Zelle A1 der Text blau.
    Benutzer Ilse trägt in die Zelle B2 was ein, nun wird in Zelle A2 der Text rot.
    Benutzer Fritz trägt in die Zelle C2 was ein, nun wird in Zelle C2 der Text grün.
    Bei Franz immer blau, bei Ilse immer rot und bei Fritz immer grün.
    Die Benutzer greifen alle über das selbe Netzwerk auf die Datei zu.
    wäre super wenn das geht.
    mfg
    Joergi78
     
  2. Hallo Joergi78,

    also folgendes Maro überwacht das Tabellenblatt auf Änderung.
    Bei Änderung wird in der ersten Zelle der Zeile der Farbhintergrund entsprechend dem Benutzer gesetzt.

    Zuordnung Benutzer<->FarbIndex siehe makro <<< A N P A S S E N >>>.

    Das Makro muß in der Code-Seite des Tabellen-Blattes liegen. Man erreicht die Code-Seite, indem man die Lasche des tabellenblattes anklickt -> rechte Maustaste -> Code anzeigen.
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    
     -><<<< A N P A S S E N >>>>>
      Const cBenutzer1 = Franz, cFarbIndex1 = 5 ->blau
      Const cBenutzer2 = Ilse, cFarbIndex2 = 3   'rot
      Const cBenutzer3 = Fritz, cFarbIndex3 = 10->gruen
      Const cFarbIndexUnbekannt = 7               ->rosa
     -><<<< A N P A S S E N   E N D E >>>>
      
      Dim Zelle As Range
      Dim lFarbeIndex As Long, sBenutzer As String
      
     ->Benutzer bestimmen
      sBenutzer = Application.UserName
     ->Farbe für Benutzer festlegen
      Select Case sBenutzer
        Case cBenutzer1: lFarbeIndex = cFarbIndex1
        Case cBenutzer2: lFarbeIndex = cFarbIndex2
        Case cBenutzer3: lFarbeIndex = cFarbIndex3
        Case Else:       lFarbeIndex = cFarbIndexUnbekannt
      End Select
      
     ->Zellehintergrund in der ersten Spalte setzen
      For Each Zelle In Target
        Target.Parent.Cells(Zelle.Row, 1).Interior.ColorIndex = lFarbeIndex
      Next
      
     ->aufraeumen
      Set Zelle = Nothing
    End Sub
    Gruß Matjes :)
     
  3. Super, das klappt soweit ganz gut,
    ich habe den kompletten Benutzernamen genommen, aber er nimmt immer die Farne rosa von Unbekannt.
    Const cFarbIndexUnbekannt = 7 ->rosa
    warum???
     
  4. Hallo Joergi78,

    zum Testen des Usernamens benutze folgendes Makro.
    Code:
    Sub Test_Username()
      MsgBox  & Application.UserName & 
    End Sub
    Laß Franz, Ilse und Fritz dieses Makro ausführen. Das, was es jeweils anzeigt, muß in der jeweiligen Konstanten cBenutzer... stehen. Sonst kommt eben immer Rosa / unbekannt.

    Gruß Matjes :)
     
  5. jawoll, jetzt klappt es, kann ich das so anpassen, dass die Farbe nur vergeben wird, wenn in der Spalte D der Zeile was eingetragen wird?
     
  6. dann soll die die dementsprechende Zelle in Spalte A aber so bleiben
     
  7. Probier's mal damit:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    -><<<< A N P A S S E N >>>>>
     Const cBenutzer1 = Franz, cFarbIndex1 = 5->blau
     Const cBenutzer2 = Ilse, cFarbIndex2 = 3 ->rot
     Const cBenutzer3 = Fritz, cFarbIndex3 = 10->gruen
     Const cFarbIndexUnbekannt = 7       ->rosa
    -><<<< A N P A S S E N  E N D E >>>>
     
     Dim Zelle As Range
     Dim lFarbeIndex As Long, sBenutzer As String
    
    ->Berabeitung nur wenn in Spalte d
     Set Target = Application.Intersect(Target, Target.Parent.Columns(4))
     If Target Is Nothing Then Exit Sub
     
    ->Benutzer bestimmen
     sBenutzer = Application.UserName
    ->Farbe für Benutzer festlegen
     Select Case sBenutzer
      Case cBenutzer1: lFarbeIndex = cFarbIndex1
      Case cBenutzer2: lFarbeIndex = cFarbIndex2
      Case cBenutzer3: lFarbeIndex = cFarbIndex3
      Case Else:    lFarbeIndex = cFarbIndexUnbekannt
     End Select
     
    ->Zellehintergrund in der ersten Spalte setzen
     For Each Zelle In Target
      Target.Parent.Cells(Zelle.Row, 1).Interior.ColorIndex = lFarbeIndex
     Next
     
    ->aufraeumen
     Set Zelle = Nothing
    End Sub
    Gruß Matjes :)
     
  8. Jawoll Supi,

    aber worfür ist bitte folgende Part???
    Dim Zelle As Range
    Dim lFarbeIndex As Long, sBenutzer As String

    und der letzte???
    'aufraeumen
    Set Zelle = Nothing
     
  9. Die Dim .... Zeilen sind zur definition der verwendeten Variablen. Es geht zwar auch ohne, aber unter bestimmten Umständen können dann Fehler auftreten, die sehr schwer zu finden sind. Deshalb die Empfehlung immer die Option Explicit  einzuschalten, die eine n dazu zwingt die Variablen zu definieren.

    zu Set Zelle = Nothing

    Zelle ist eine Object-Variable, die im Code explizit freigegeben werden muß, damit die Garbadgecollection (Speicheraufräumer) sie wegräumt. Andernfalls entstehen kleine Speicherlöcher (Speicher bleibt belegt).

    Gruß Majes :)
     
  10. ahhh
    alles klar
    Danke
     
Die Seite wird geladen...

Excel 2003 Mitarbeiterfarben - Ähnliche Themen

Forum Datum
Excel 2003 - Kleines Problem mit einer Formel Microsoft Office Suite 25. Juni 2014
Office 2003 und 2010 Paralellinstallatin, mehrer xls-Dateien Excel 2003 zuweisen Windows XP Forum 13. Juli 2012
2 Spalten in Excel 2003 fixieren Microsoft Office Suite 28. Mai 2012
MS Excel 2003 ganze Zeilen löschen Microsoft Office Suite 1. Okt. 2011
Verlinkung nach Umstieg Excel 2003 auf 2007 Microsoft Office Suite 23. Mai 2011