Clever-Excel-Forum

Normale Version: Reiter einfärben wenn
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
hätte gerne geschrieben das alles einwandfrei funktioniert, leider klappt da aber was mit der Reihenfolge nicht.

also sobald ich etwas in B2 eintrage (Neu angelegte Excel-Test Datei) verschiebt er die Reihenfolge ohne das ich dahinter ein Muster erkennen kann.

hab beide Formeln ausprobiert, sowohl die wo ich hinter jeden Reiter legen muss als auch die letzte die nur hinter die Arbeitsmappe gehört.

das was ich noch ändern sollte, war denke ich die zweite Zeile einfach zu löschen... hoff ich zumindest ;) aber sowohl so als auch anders, funktionert es nicht so huntert prozentig ...

Vill hab ich mich mich auch blöd ausgedrückt und schick daher mal eine Excel datei mit.
Hoffe der Fehler ist lösbar wäre jetzt echt zu schade :(

Gruß lion

PS: hab auch noch zwei bilder angehängt ^^
Hi,

das war doch Deine Bitte

Zitat:hab den Code gerade ausprobiert aber er färbt leider den Reiter nicht Rot ein wenn ich etwas in Zeile B2 eingebe

Wie soll das denn nun laufen? Das Makro schiebt die roten Register ans Ende.

Unabhängig davon gab es noch ein paar Korrekturen mehr.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim i As Integer, iNext As Integer

If Target.Address = "$B$2" And Target.Value <> "" Then
    If Sh.Name <> "Index" And Sh.Name <> "Übersicht" Then
        Sh.Tab.Color = vbRed
     
        For i = 1 To Worksheets.Count - 1
            For iNext = i To Worksheets.Count
                If Worksheets(iNext).Tab.ColorIndex = xlNone Then
                    Worksheets(iNext).Move before:=Worksheets(i)
                End If
            Next iNext
        Next i
    End If
End If
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Gruß
Ich
das rot einfärben passt natürlich und funktioniert auch ... aber die reihenfolge wird total durcheinander gewürfelt ... also auch index und übersicht sind nicht mehr an position eins und zwei ...

die Reiter an position 1-4 sollen unangetastet bleiben und erst ab positon 5 sollen sich dann die Rot markierten (in welche reihenfolge ist egal) anreihen.
Ich hoffe das passt dann so:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim i As Integer, iNext As Integer

If Target.Address = "$B$2" And Target.Value <> "" Then
    If Sh.Name <> "Index" And Sh.Name <> "Übersicht" Then
        Sh.Tab.Color = vbRed
     
        For i = 5 To Worksheets.Count - 1
            For iNext = i To Worksheets.Count
                If Worksheets(iNext).Tab.ColorIndex = xlNone Then
                    Worksheets(iNext).Move before:=Worksheets(i)
                End If
            Next iNext
        Next i
       
    End If
End If
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

servus ... ich hab den code jetzt am wochenende auf einige arten und weisen probiert aber er passt immernoch nicht ganz.

wenn ich den code einfüge, färbt er den reiter rot -> OK
aber die sortierung stimmt leider nicht ... die ersten 5 Reiter bleiben zwar jetzt an ihrem platz dafür stellt er den Rot markierten aber ans Ende (also nach rechts)
und das wirklich schlechte an der Sache ist das er alle ca 35-50 Reiter neu sortiert und das hat bei jedem versuch richtig gedauert.

ich möchte dich aber auch nicht nocheinmal damit behelligen, da du jetzt schon viel Zeit investiert hast.
Nur könntest du mir den Code zum Rot einfärben geben? dann ist zumindest dieser arbeitsschrit weg.

der erste Code den du mir gegeben hast war zwar genau für das, aber nicht für office 2003.

Gruß und Danke schonmal

lion
Hi,

der Code für das ausschließliche Färben der Reiter:


Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Target.Address = "$B$2" And Target.Value <> "" Then
   If Sh.Name <> "Index" And Sh.Name <> "Übersicht" Then
       Sh.Tab.Color = vbRed                  
   End If
End If
End Sub


Warum der Code unter xl03 nicht läuft kann ich Dir leider nicht sagen. Das war vor meiner VBA-Zeit und ich habe leider auch keine
entsprechende Version um eine Alternative zu testen.
Was funktioniert denn nicht? Erhältst Du eine Fehlermeldung?

Gruß
Ich
Hallo,

Ich stecke nicht in diesem Thread, aber ich werde das gleich ändern.
Darum kann ich jetzt auch nicht schreiben, warum der Code nicht durchläuft.

Vorab aber mal dieser Codeschnipsel,der mit xl2002 aufgezeichnet wurde.

Zitat:   ActiveWorkbook.Sheets("Tabelle1").Tab.ColorIndex = 3

Vielleicht kann das ja entsprechend angepaßt werden.
Hallo,


doch, es ist eigentlich klar wie dicke Tinte, mit:

Zitat:Sh.Tab.Color = vbRed

kann xl2003 nichts anfangen und die Farben in den Excelversionen unter xl2007
sind auf 56 Farben beschränkt.
perfekt ... einfärben funktioniert ...

tausend Dank für die Mühe !


Gruß lion
Seiten: 1 2