Thema Datum  Von Nutzer Rating
Antwort
15.09.2014 14:09:11 Tiemo Gregor
NotSolved
15.09.2014 20:03:58 Gast62018
****
NotSolved
15.09.2014 20:53:49 Gast53643
NotSolved
16.09.2014 06:49:23 Gast69949
NotSolved
16.09.2014 16:53:02 Tiemo Gregor
NotSolved
16.09.2014 17:39:28 Gast84931
*
NotSolved
16.09.2014 17:50:51 Tiemo Gregor
NotSolved
Blau Erstellung eines Arrays mit Loopfunktion
16.09.2014 19:10:57 Gast85151
*****
NotSolved
16.09.2014 20:36:18 Tiemo Gregor
NotSolved

Ansicht des Beitrags:
Von:
Gast85151
Datum:
16.09.2014 19:10:57
Views:
710
Rating: Antwort:
  Ja
Thema:
Erstellung eines Arrays mit Loopfunktion

Das Problem im speziellen ist, dass das Makro nicht automatisiert ist. [...], aber die Farbe erlischt nicht, wenn ich die Eintragungen wieder entferne. Ich möchte, dass es unabhängig von dem VBA Editor die Zellen bei Eingabe der Labels markiert.

Aha, na das ist ein äußerst wichtiger (!!) Punkt den du hier - das erste mal - ansprichst und der einiges ändert.

 

Ja dafür gibt es das Worksheet_Change-Ereignis.

Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
  
  Set Target = Intersect(Range(Cells(4, "I"), Cells(Rows.Count, "I").End(xlUp)), Target)
  If Target Is Nothing Then Exit Sub
  
  Dim rngCell As Excel.Range
  
  For Each rngCell In Target.Cells
    
    Select Case Trim$(rngCell.Text)
      'Gruppe 1
      Case "E1", "E2", "E3", "EE1", "EE2", "EE3", "EE4"
        rngCell.Interior.Color = RGB(0, 128, 0)
      'Gruppe 2
      Case "T1", "T2", "T3", "T4", "T5", "TT1", "TT2", "TT3"
        rngCell.Interior.Color = RGB(0, 204, 255)
      'Gruppe 3
      Case "Z1", "Z2", "Z3"
        rngCell.Interior.Color = RGB(153, 51, 0)
      'Gruppe 4
      Case "U1", "U2", "U3"
        rngCell.Interior.Color = RGB(153, 51, 102)
      'Gruppe 5
      Case "K", "TEC", "NEC"
        rngCell.Interior.Color = RGB(51, 51, 51)
      'Gruppe 6
      Case "STR", "ENT", "KUR", "SOF", "SER", "ORG", "RE"
        rngCell.Interior.Color = RGB(255, 0, 0)
      '.. und ansonsten
      Case Else
        rngCell.Interior.ColorIndex = xlColorIndexNone
    End Select
    
   Next
   
End Sub

Anstatt dem Interior.Color kannst du natürlich auch den von dir bereits angegebenen Interior.ColorIndex setzen und auf das RGB(...) somit verzichten.

 

Was die Sache mit der bedingten Formatierung anbelangt, solltest du dich für eines entscheiden, entweder VBA, oder für bedingte Formatierung. Beides zusammen ergibt meist zusätzliche Umstände.

 

Angehen kann man das mit der bedingte Formatierung wie folgt:

  • du markierst den Bereich der Werte für Gruppe 1 und gibst ihnen einen repräsentativen Namen (z.B. __GRP01)
  • anschließend erstellst du eine neue bedingte Formatierungsregel mit nachfolgender Formel für deinen Datenbereich
  • =VERGLEICH(INDIREKT(ADRESSE(ZEILE();SPALTE()));__GRP01;0)

Diese Schritte wiederholst du für jede Gruppe - den hervorgehobenen Teil in der Formel musst du natürlich je Regel anpassen.

Sollte mal ein neuer Eintrag zu einer Gruppe hinzukommen, brauchst du diesen nur dem benannten Bereich hinzuzufügen.

 

PS: Wenn du den Gruppen Namen gibst, kannts du diese natürlich auch in der VBA-Lösungsvariante darüber ansprechen...

Range("__GRP01")

...und so deinen Quellcode allgemeiner halten kannst.

Es gibt da sehr viele Lösungsmöglichkeiten die ich hier nicht alle aufzählen will.

 


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
15.09.2014 14:09:11 Tiemo Gregor
NotSolved
15.09.2014 20:03:58 Gast62018
****
NotSolved
15.09.2014 20:53:49 Gast53643
NotSolved
16.09.2014 06:49:23 Gast69949
NotSolved
16.09.2014 16:53:02 Tiemo Gregor
NotSolved
16.09.2014 17:39:28 Gast84931
*
NotSolved
16.09.2014 17:50:51 Tiemo Gregor
NotSolved
Blau Erstellung eines Arrays mit Loopfunktion
16.09.2014 19:10:57 Gast85151
*****
NotSolved
16.09.2014 20:36:18 Tiemo Gregor
NotSolved