Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Macro zurücksetzen und neu starten

Macro zurücksetzen und neu starten
18.06.2008 22:33:00
arkM
Hallo an alle Forumsteilnehmer!
Ich bin nicht gerade ein Excel Experte und schon gar nicht im Umgang mit Macros. Da ich aber für die Arbeit gerade wieder mal alles gebe aber nicht mehr weiter weiß, hoffe ich das jemand eine Lösung für mein Problemchen hat. Ich versuche es mal zu beschreiben.
Ich habe ein Macro in meine Tabelle eingebaut. Dieses Macro hat die Funktion bei eingabe eingabe von werten in eine Zelle eine abwechselnde Färbung der Zeilen vorzunehmen. Das funktioniert auch ganz gut.
Ich habe leider aber doch ein Problem damit, da ich schon mal Eingaben löschen muß und dann auch die einfärbung verschwinden soll. Leider wird eine einmal eingefärbte Zelle nach löschen des wertes nicht wieder rückgängig gemacht. Mein zweites Problem ist das ich nicht immer unterschiedliche werte in die Zellen eintrage. Bei 2 aufeinanderfolgenden gleichen werten wechselt die Farbe nicht also habe ich zB. zwei Zeilen in einer Farbe, bis ein anderer Wert eingegeben wird. Das dritte und letzte Problem ist das ich auch schon mal ein Zeile auslasse und keinen Wert eintrage. Auch hier bleibt die Färbung bis ein neuer Wert eingetragen wird. Eigentlich hätte ich gern das wenn ich in A1 einen Wert eingebe und den nächsten in A5, das sich die Färbung bis zur Zeile A5 abwechselt.
Ich hoffe ich habe mich verständlich ausgedrückt, ist gar nicht so leicht das Problem zu beschreiben. Ich hänge noch das Macro an damit Ihr seht was ich bis jetzt verwende. Schon mal herzlichen dank für eure Bemühnungen !!!
Sub Makro1()
z = Range("A65536").End(xlUp).Row
f = 2
a = Range("A1").Value
Range(Cells(1, 1), Cells(1, 9)).Interior.ColorIndex = f
For zeile = 2 To z
If Cells(zeile, 1) a Then
If f = 15 Then
f = 2
Else: f = 15
End If
a = Cells(zeile, 1)
End If
Range(Cells(zeile, 1), Cells(zeile, 9)).Interior.ColorIndex = f
Next
End Sub



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Makro1
End Sub


3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Macro zurücksetzen und neu starten
19.06.2008 00:20:00
fcs
Hallo arkM,
ich hab mal versucht etwas zu stricken, was etwa passen sollte.
So eine alternierende Zellfarbe in den Zeilen kann man aber auch sehr schön mit einer bedingten Formatierung erreichen. Die funktioniert dann ohne Makro
Spalten 1 bis 9 (A bis I) markieren und dann unter Format--bedingte Formatierung folgende Formeln eingeben:

Bedingung 1: =WENN(UND(REST(ZEILE();2)=1;NICHT(ISTLEER($A1)));WAHR;FALSCH)
Formatierung: Muster Farbe weiss
Bedingung 2:=WENN(UND(REST(ZEILE();2)=0;NICHT(ISTLEER($A1)));WAHR;FALSCH)
Formatierung: Muster Farbe grau 15%


Ist die Zeile in Spalte A leer erfolgt keine Färbung.
Gruß
Franz


Private lastLetzte As Long
Sub Makro1(objZelle As Range)
Dim z As Long, Zeile As Long, f As Long
z = Range("A65536").End(xlUp).Row
If lastLetzte = 0 Then 'Nach dem Öffnen der Datei
lastLetzte = z
End If
'Ist die geänderte Zelle unterhalb der letzten Zeile werden die Zeilen _
dazwischen abwechselnd gefärbt
For Zeile = lastLetzte + 1 To objZelle.Row
If Zeile Mod 2 = 1 Then f = 2 Else f = 15
Range(Cells(Zeile, 1), Cells(Zeile, 9)).Interior.ColorIndex = f
Next
'Status der aktuell in Spalte A geänderten Zelle
If IsEmpty(objZelle) Then 'Inhalt gelöscht
f = xlColorIndexNone
Else
If objZelle.Row Mod 2 = 1 Then f = 2 Else f = 15
End If
Range(Cells(objZelle.Row, 1), Cells(objZelle.Row, 9)).Interior.ColorIndex = f
lastLetzte = Range("A65536").End(xlUp).Row
End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 Then
'Bei Änderung in Spalte A Makro starten
Call Makro1(Target)
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'Erforderlich, damit nach dem Öffnen der Datei die letzte Zeile erfasst wird
If lastLetzte = 0 Then
lastLetzte = Range("A65536").End(xlUp).Row
End If
End Sub


Anzeige
AW: Macro zurücksetzen und neu starten
21.06.2008 07:34:55
arkM
Hallo und danke schon mal für eure Lösungswege. Ich bin leider noch nicht zum testen gekommen aber ich hoffe am Wochenende kann ich mal testen obs klappt. Es muss natürlich nicht zwingend ein Macro sein wenn es auch eine bedingte Formatierung tut. Wie gesagt ist für mich leider noch nicht alles so übersichtlich mit der Excelprogrammierung. Leider habe ich bis jetzt auch noch kein wirklich gutes Buch zur unterstützung gefunden. Habe mir von Microsoft dieses dicke Office Buch gekauft aber das kann ich mal gar nicht empfehlen! Nur teuer und wenig hilfreich. Na ja da hilft wohl nur ausprobieren und doofe Fragen stellen. Natürlich würde ich auch ganz gern verstehen was ich da mache und nicht nur kopieren und einsetzten aber das ist ohne unterstützung sehr mühselig. Dazu kommt das ich im Moment wenig Zeit habe um mich da reinzudenken!
Also nochmal danke und ich melde mich auf jeden Fall nochmal obs funktioniert!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige