2.3k Aufrufe
Gefragt in Tabellenkalkulation von latrodectus Experte (1.1k Punkte)
Hi liebe Leser,

Excel war für mich immer nur eine kleine "Hilfe" für einfache Berechnungen, und kleine Formulare um nicht alles mit der Hand auszurechnen und manuell einzutragen. Mehr habe ich nie gemacht.
Nun erstelle ich eine Tabelle, bei der jedes Registerblatt ein Tag darstellt. Registerblatt 1 ist ein "Willkommensbildschirm",
Registerblatt 2-32 "Tag 1-31", dann noch eine weiteres Blatt für eine Endberechnung. Hier gibt es auch keine Fragen.

Da aber nicht jeden Tag ein Eintrag erfolgt, habe ich mir eingebildet, bei z.B. bei einem Eintrag in Register 11 (für Tag 11) sich die Registerfarbe auf Rot ändert. Also sobald die Zeit auf >1 Minute bei Zelle E30 ist.

Somit sieht man am Monatsende z.B. das die Register 11,23 und 25 und 31 rot eingefärbt - und damit dort Einträge vorhanden sind.

Soweit meine Idee.

Nun sitzte ich geschlagene 2 Tage am Internet und suche eine Möglichkeit einen Code einzufügen.

Diesen hier habe ich z.B. im Netz gefunden:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target = 3 And Target.Address = "$E$30" Then ActiveSheet.Tab.ColorIndex = 3
End Sub


Soweit so gut. ABER:
WO füge ich den ein? 100 Einträge im Netz - 100 verschiedene Beschreibungen.

Das was dem wohl am nächsten kommt, ist ALT-F11 zu drücken.
Ja und dann?
Mit Doppelklick auf das Tabellenblatt erscheint dann ein leerer Kasten. Habs da halt mal reinkopiert. Aber lässt sich nicht speichern, da er meint, es fehlt ein Makro ... ähm .. ja ... das hatte ich ja gerade eingefügt.

Ich weiss ja noch nicht mal, ob obiger Code auch Korrekt ist, aber ich kann ihn auch nicht mal testen, da ich nicht mal weiss, wo der hingehört!
Und kann man das - wenn ich mal davon ausgehe, das ich mit ALT-F11 richtig liege - das auch den Registern 2-32 zuordnen? Oder muss ich das dann für jedes Registerblatt einzeln einfügen?
Die Ausgabezelle E33, die abgefragt werden soll, ist bei allen gleich! (>1 Minute).

So, nun sind die Spezialisten gefragt, denn ich bin am Ende!

Liebe Grüsse:
Tammy

8 Antworten

0 Punkte
Beantwortet von latrodectus Experte (1.1k Punkte)
Ach ja .. ich verwende Excel 2007

und die Zelle ist E30, nicht E33, spielt aber keine grosse Rolle ;)

Liebe Grüsse:
Tammy
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

hier gibt es verschiedene Anleitungen: KLICK

Für dich passt diese hier: KLICK

Gruß

M.O.
0 Punkte
Beantwortet von latrodectus Experte (1.1k Punkte)
Lieben Dank!
DAS ist doch mal eine Adresse, mit der man etwas anfangen kann ;)
Bin also mit ALT-F11 richtig gelegen.

Jetzt muss ich nur noch nach einem neuen Code suchen, der meckert immer noch mit dem Satz:

Die folgenden Features können in Arbeitsmappen ohne Makro nicht gespeichert werden.
• VB Projekt
Zum Speichern einer Datei mit diesen Features klicken Sie auf 'Nein'. Wählen Sie dann einen Dateityp mit aktivierten Makros in der Liste 'Dateityp' aus. Klicken Sie auf 'Ja' um die Datei als Arbeitsmappe ohne Makros zu speichern.

Liebe Grüsse:
Tammy
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Tammy,

die oben genannte Meldung kommt, wenn eine Arbeitsmappe mit Makros als normale .xlsx-Datei (= Arbeitsmappe ohne Makros) speicherst
Du musst die Arbeitsmappe als "Excel-Arbeitsmappe mit Makros (*.xlsm)" speichern, dann klappt das mit deinem Code.

Gruß

M.O.
0 Punkte
Beantwortet von latrodectus Experte (1.1k Punkte)
Ohhhhhh... ok.... werde ich nachher gleich testen.
Danke!

Liebe Grüsse:
Tammy
0 Punkte
Beantwortet von latrodectus Experte (1.1k Punkte)
Ich komme der sache nun schon näher ;)
Nun speichert er es ohne Fehlermeldung. Danke!

Muss jetzt nur noch einen Code suchen, der auch funktioniert,
der gefundene macht nämlich gar nix.

Danke:
Tammy
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

den Code hatte ich mir gar nicht angeschaut. Versuch mal den folgenden Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("E33").Value > 1 Then ActiveSheet.Tab.ColorIndex = 3 Else ActiveSheet.Tab.ColorIndex = -4142
End Sub


Diesen Code musst du in das VBA-Projekt aller deiner Tagesarbeitsblätter hinein kopieren.
Dies funktioniert aber nur, wenn die Zelle E33 als Zahl formatiert ist.
Erfasst du deine Zellen im Zeitformat (z.B. 00:01) so musst du den Code wie folgt anpassen:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("E30").Value > 1 / 1440 Then ActiveSheet.Tab.ColorIndex = 3 Else ActiveSheet.Tab.ColorIndex = -4142
End Sub


Gruß

M.O.
0 Punkte
Beantwortet von latrodectus Experte (1.1k Punkte)
YUCHUUUUU,

GENIAL !!!!

Danke!!!

Hab bis jetzt das Internet durchgeackert und etliche Codes ausprobiert, und gebastelt ...
aber nur der Deinige ist der wahre! Funktioniert PERFEKT !!!!

Fühle Dich virtuell umarmt!

Liebe Grüsse:
Tammy
...