Office: Zeile abwechseld färben

Helfe beim Thema Zeile abwechseld färben in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hi Leute, brauche mal Hilfe. Komme nicht weiter. Folgende Situation: Ich möchte ein Makro in Excel schreiben, dass mir abwechselnd, von unten... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von SGW, 9. Juni 2007.

  1. SGW
    SGW User

    Zeile abwechseld färben


    Hi Leute, brauche mal Hilfe. Komme nicht weiter.


    Folgende Situation:

    Ich möchte ein Makro in Excel schreiben, dass mir abwechselnd, von unten anfangend, per Knopfdruck 6 untereinander liegende Zeilen einfärbt. Leider habe ich viele Sachen versucht aber kam nie wirklich zu einem Ergebnis.

    Bis jetzt bin ich zu diesem Code gekommen, färbt mir aber nur die underste Zelle, dann gehts nicht mehr weiter:

    -------------------------------------------

    Const constZeilenZahl1 As Integer = 8

    Private Sub btnKlick1_Click()

    Tabelle2.Activate

    If constZeilenZahl1 - Spalte1 > 2 Then
    If (constZeilenZahl1 - Spalte1) Mod 2 <> 0 Then schalten
    Tabelle2.Cells(constZeilenZahl1 - Spalte1, 3).Interior.ColorIndex = 8
    Else
    Tabelle2.Cells(constZeilenZahl1 - Spalte1, 3).Interior.ColorIndex = 4
    End If

    Spalte1 = Spalte1 + 1

    Else
    MsgBox "Die Spalte ist voll, Du musst woanders klicken"
    Exit Sub
    End If


    End Sub
    ----------------------------------------------

    Habe Office 2003 falls das was hilft.

    THX schonmal :mrgreen:
     
  2. schatzi Super-Moderator
    Hallo!

    Dieses Makro färbt dir die Zeile der aktiven Zelle plus die fünf darüber liegenden Zeilen abwechelnd grün und blau:

    Code:
    Sub Färben()
    Dim i As Integer
    On Error Resume Next
    For i = 0 To 5
    If i Mod 2 = 0 Then ActiveCell.Offset(-i, 0).EntireRow.Interior.ColorIndex = 8
    If i Mod 2 = 1 Then ActiveCell.Offset(-i, 0).EntireRow.Interior.ColorIndex = 4
    Next i
    End Sub
     
    schatzi, 10. Juni 2007
    #2
  3. SGW
    SGW User
    Vielen Dank, aber geht es auch nicht ohne eine Schleife?

    Per Knopfdruck, wie ich es ursprünglich vorgesehen habe?!
    Weitere bedingung wäre halt, dass der Start z.B auf Kooridinat B9 ist, und sich das färben langsam nach oben hin arbeitet bis zu Koordinate B4. Also 6 Zellen insgesamt. Und wenn diese sozusagen voll sind, er eine Msg Box ausgibt das sie voll sind.


    THX :-)
     
  4. schatzi Super-Moderator

    Zeile abwechseld färben

    Hallo!

    Dann teste dies:
    Code:
    Option Explicit
    Dim i As Integer
    
    Sub test()
    i = i + 1
    If 6 >= i Then
    If i Mod 2 = 0 Then Range("B10").Offset(-i, 0).Interior.ColorIndex = 8
    If i Mod 2 = 1 Then Range("B10").Offset(-i, 0).Interior.ColorIndex = 4
    End If
    If i > 6 Then MsgBox "Alles voll!"
    End Sub
    
    
    Eventuell brauchst du dann noch einen zweiten Code, der dir das "i" wieder auf Null setzt.
     
    schatzi, 10. Juni 2007
    #4
  5. SGW
    SGW User
    Ja klingt schon besser, und habe das gleich mal meinem Bedürfnissen etwas angepasst, es sieht jetzt so aus, aber es färbt sich nur die Zelle ganz unten, und dann geht es nicht mehr weiter Zeile abwechseld färben :(

    Code:
    Const start As Integer = 9
    
    Private Sub CommandButton1_Click()
    
    Dim zähler As Single
    
    
    If zähler Mod 2 = 0 Then Tabelle1.Cells(start - zähler, 2).Interior.ColorIndex = 14
    If zähler Mod 2 = 1 Then Tabelle1.Cells(start - zähler, 2).Interior.ColorIndex = 28
    
    If zähler >= 5 Then MsgBox "Das Ding ist voll"
    zähler = zähler + 1
    
    
    
    End Sub
    
     
  6. schatzi Super-Moderator
    Die Variable "zähler" musst du ausserhalb der Sub deklarieren. Ausserdem sollte als Typ Integer reichen.
     
    schatzi, 10. Juni 2007
    #6
  7. SGW
    SGW User
    WOW :-D , vielen Dank! Klappt ja jetzt soweit Zeile abwechseld färben :cool: .
    Habe es nun global deklariert.

    Aber ein Problem habe ich trotzdem noch:

    Wenn ich das Spielfeld komplett befüllt habe, kommt ja die MsgBox die nun eine Meldung gibt.
    Wenn ich aber trotzdem auf meinen Knopf drücke, dann führt sich das färben ausserhalb des Spielfeldes, weiter nach oben, fort. wenn es nun dann ganz oben angelangt ist, dann kommt berechtigterweise eine Fehlermeldung: Laufzeitfehler "1004":

    wie kann ich dem Problem entgegen wirken, also nur ein Färben des vorgesehenen Spielfeldes zulassen?
     
  8. schatzi Super-Moderator

    Zeile abwechseld färben

    Dafür hatte ich die zweite If-Bedingung eingefügt:
    Code:
    If 6 >= i Then
    ...
    End If
    Aber die wolltest du offensichtlich ja nicht haben...
     
    schatzi, 10. Juni 2007
    #8
  9. SGW
    SGW User
    würde ich sogar machen.
    dadran habe ich auch schon gedacht, aber was soll ich nach dem then schreiben?



    vielleicht ...then zähler =5 ?

    somit müsste ich ja theoretisch immer verhindern, dass zähler nie über 6 kommt, also kann ja nie eine zelle dadrüber eingefärbt werden.
     
  10. schatzi Super-Moderator
    Da schreibst du gar nichts hinter...

    Code:
    Const start As Integer = 9
    Dim zähler As Integer
    
    Private Sub CommandButton1_Click()
    
    If 5>= zähler Then
    If zähler Mod 2 = 0 Then Tabelle1.Cells(start - zähler, 2).Interior.ColorIndex = 14
    If zähler Mod 2 = 1 Then Tabelle1.Cells(start - zähler, 2).Interior.ColorIndex = 28
    End If
    If zähler >= 5 Then MsgBox "Das Ding ist voll"
    zähler = zähler + 1
    
    End Sub 
     
    schatzi, 10. Juni 2007
    #10
  11. SGW
    SGW User
    Genial, genu was ich will.

    Vielen Dank, nun ist es perfekt.


    Ich werde nochmal rumfummeln und das Werk beenden. :mrgreen:


    Wenn nochwas ist, melde ich mich,
     
  12. SGW
    SGW User
    So, da gibts wieder ein Prob ^^ Zeile abwechseld färben *:p* Bzw. was ich noch zusätzlich einbauen möchte.

    Und zwar habe ich nun ein Spielfeld damit erzeugt und es klappt soweit wunderbar. Nur jetzt hätte ich gerne noch eine Funktion, die mir wieder die gazen Zellen "Leer" macht.
    Auch wieder per Knopdruck. Ich dachte da an eine for Schleife, aber weiss nicht wie ich das umsetzen soll.

    THX

    Hier mein Code:

    Code:
    Option Explicit
    
    Const start1 As Integer = 16
    Const start2 As Integer = 16
    Const start3 As Integer = 16
    Const start4 As Integer = 16
    Const start5 As Integer = 16
    Const start6 As Integer = 16
    Dim zähler1 As Integer
    Dim zähler2 As Integer
    Dim zähler3 As Integer
    Dim zähler4 As Integer
    Dim zähler5 As Integer
    Dim zähler6 As Integer
    
    Private Sub btn1_Click()
    
    If 5 >= zähler1 Then
    If zähler1 Mod 2 = 0 Then Tabelle1.Cells(start1 - zähler1, 4).Interior.ColorIndex = 14
    If zähler1 Mod 2 = 1 Then Tabelle1.Cells(start1 - zähler1, 4).Interior.ColorIndex = 28
    End If
    If zähler1 >= 5 Then MsgBox "Das Ding ist voll"
    zähler1 = zähler1 + 1
    
    
    End Sub
    
    Private Sub btn2_Click()
    
    If 5 >= zähler2 Then
    If zähler2 Mod 2 = 0 Then Tabelle1.Cells(start2 - zähler2, 5).Interior.ColorIndex = 14
    If zähler2 Mod 2 = 1 Then Tabelle1.Cells(start2 - zähler2, 5).Interior.ColorIndex = 28
    End If
    If zähler2 >= 5 Then MsgBox "Das Ding ist voll"
    zähler2 = zähler2 + 1
    
    End Sub
    
    Private Sub btn3_Click()
    
    If 5 >= zähler3 Then
    If zähler3 Mod 2 = 0 Then Tabelle1.Cells(start3 - zähler3, 6).Interior.ColorIndex = 14
    If zähler3 Mod 2 = 1 Then Tabelle1.Cells(start3 - zähler3, 6).Interior.ColorIndex = 28
    End If
    If zähler3 >= 5 Then MsgBox "Das Ding ist voll"
    zähler3 = zähler3 + 1
    
    End Sub
    
    Private Sub btn4_Click()
    
    If 5 >= zähler4 Then
    If zähler4 Mod 2 = 0 Then Tabelle1.Cells(start4 - zähler4, 7).Interior.ColorIndex = 14
    If zähler4 Mod 2 = 1 Then Tabelle1.Cells(start4 - zähler4, 7).Interior.ColorIndex = 28
    End If
    If zähler4 >= 5 Then MsgBox "Das Ding ist voll"
    zähler4 = zähler4 + 1
    
    End Sub
    
    Private Sub btn5_Click()
    
    If 5 >= zähler5 Then
    If zähler5 Mod 2 = 0 Then Tabelle1.Cells(start5 - zähler5, 8).Interior.ColorIndex = 14
    If zähler5 Mod 2 = 1 Then Tabelle1.Cells(start5 - zähler5, 8).Interior.ColorIndex = 28
    End If
    If zähler5 >= 5 Then MsgBox "Das Ding ist voll"
    zähler5 = zähler5 + 1
    
    End Sub
    
    Private Sub btn6_Click()
    
    If 5 >= zähler6 Then
    If zähler6 Mod 2 = 0 Then Tabelle1.Cells(start6 - zähler6, 9).Interior.ColorIndex = 14
    If zähler6 Mod 2 = 1 Then Tabelle1.Cells(start6 - zähler6, 9).Interior.ColorIndex = 28
    End If
    If zähler6 >= 5 Then MsgBox "Das Ding ist voll"
    zähler6 = zähler6 + 1
    
    End Sub
    
     
  13. schatzi Super-Moderator

    Zeile abwechseld färben

    Das wären dann jeweils Einzeiler, z.B.

    Range("A1:E20").Interior.ColorIndex = xlColorIndexNone
     
    schatzi, 10. Juni 2007
    #13
Thema:

Zeile abwechseld färben

Die Seite wird geladen...
  1. Zeile abwechseld färben - Similar Threads - Zeile abwechseld färben

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Wenn ein Wert ein einer Spalte, dann komplette Zeile im anderen Blatt untereinander einfügen.

    in Microsoft Excel Hilfe
    Wenn ein Wert ein einer Spalte, dann komplette Zeile im anderen Blatt untereinander einfügen.: Hallo, kann mir jemand bitte bei folgenderm Helfen. Habe etwas ähnliches gefunden was ich brauche, nur noch eine kleine Änderung ist notwendig. Aufgabe: Es wird geprüft, ob in Spalte Q ein Wert...
  4. Buchsatz mit Word: untere Zeile der Seiten immer auf der gleichen Höhe

    in Microsoft Word Hilfe
    Buchsatz mit Word: untere Zeile der Seiten immer auf der gleichen Höhe: Ich versuche gerade, mein Buch mit MS Office Professional PLUS möglichst professionell zu setzen. Das Vermeiden von einsamen Einzelzeilen am Beginn oder am Ende von Seiten verhindert Word...
  5. leere Zelle in Zeile finden

    in Microsoft Excel Hilfe
    leere Zelle in Zeile finden: Hallo Liebe Excel Profis, ich bin noch recht unbedarft was VBA angeht. Man kopiert und liest und bastelt und versucht alles zu verstehen. Aber irgendwann kommt man nicht weiter. Ich habe eine...
  6. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  7. Zeilen anders anordnen (oberste nach unten, usw.)

    in Microsoft Excel Hilfe
    Zeilen anders anordnen (oberste nach unten, usw.): Hallo zusammen, ich habe die Frage, ob es irgendeine Funktion oder eine andere Möglichkeit gibt, in einer Tabelle mit beispielsweise 30 Zeilen, diese folgendermaßen neu anzuordnen: Ehemals...
  8. Spalte und Zeile durchsuchen

    in Microsoft Excel Hilfe
    Spalte und Zeile durchsuchen: Hallo an alle hier im Forum Ich habe folgendes Problem: In Range A2:A50 stehen aufsteigende Datumswerte diese kann ich in einer UF ComboBox1 wählen In der ersten Zeile stehen Mitarbeiter die ich...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden