Thema Datum  Von Nutzer Rating
Antwort
24.01.2015 17:50:44 jojue
NotSolved
Blau Bestimmte Zellen mit Farbe füllen
25.01.2015 09:39:36 MarkusK
Solved
25.01.2015 16:34:19 jojue
Solved
25.01.2015 17:09:59 jojue
NotSolved
25.01.2015 19:28:45 Gast46184
NotSolved
25.01.2015 22:04:58 jojue
NotSolved

Ansicht des Beitrags:
Von:
MarkusK
Datum:
25.01.2015 09:39:36
Views:
796
Rating: Antwort:
 Nein
Thema:
Bestimmte Zellen mit Farbe füllen

Hallo,

 

ich würde dir zwar zuerst auch die bedingte Formatierung empfehlen, auch da kann man mehrere pro Zelle einfügen und diese

auch priorisieren...

Aber bei komplizierten Sachen, ist ein Code manchmal übersichtlicher.

Nur so als Hinweis, es können auch mehrere Zellen auf einmal geändert werde, und zwar wenn man was kopiert und einfügt, oder beim Löschen von mehreren Zellen.

 

Wenn das Worksheet_Change aufgerufen wird, bekommt du ja "Target" mit.

Target ist die Zelle, bzw. die Zellen welche geändert wurde(n). (Können also auch mehr sein)

Target gibt dir also die "Zelle" zurück.

Mit Target.Offset(Zeilen, Spalten) kannst du dann (relative) zu anderen Zellen springen .

Mit Rang(Zelle1 , Zelle2) kann man dann Bereiche angeben.

Wenn man dann Range() mit Target.Offset kombiniert kann man schon viel anfangen.

Private Sub Worksheet_Change(ByVal Target As Range)
  
Select Case Target
  
Case 10, 15
Range(Target.Offset(0, 1), Target.Offset(, 4)).Interior.ColorIndex = 3
Range(Target.Offset(0, 6), Target.Offset(, 12)).Interior.ColorIndex = 3
  
Case 1
Range(Target.Address, Target.Offset(, 7)).Interior.ColorIndex = 4
  
End Select
  
End Sub

 

Wenn man dann, wie schon beschriebe, beherzigt, dass man z.B. ganze Zellbereiche (A5 bis M18) kopieren und dann z.B. bei A20 einfügen kann,

und eine Schleife über alle Zellen bildet, und in diese Schleife noch abfragt, ob die einzelne Zelle in Spalte A sich befindet,

läuft das ganze schon ganz annehmbar.

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
  
For Each c In Target
        
    If Not Intersect(c, Range("A:A")) Is Nothing Then
    
        Select Case c
          
        Case 10, 15
        Range(c.Offset(0, 1), c.Offset(, 4)).Interior.ColorIndex = 3
        Range(c.Offset(0, 6), c.Offset(, 12)).Interior.ColorIndex = 3
          
        Case 1
        Range(c.Address, c.Offset(, 7)).Interior.ColorIndex = 4
          
        End Select
    End If
Next c
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
24.01.2015 17:50:44 jojue
NotSolved
Blau Bestimmte Zellen mit Farbe füllen
25.01.2015 09:39:36 MarkusK
Solved
25.01.2015 16:34:19 jojue
Solved
25.01.2015 17:09:59 jojue
NotSolved
25.01.2015 19:28:45 Gast46184
NotSolved
25.01.2015 22:04:58 jojue
NotSolved