Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1628to1632
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
Inhaltsverzeichnis

Makro klappt nicht mehr - Für Fehlerfindige!

Makro klappt nicht mehr - Für Fehlerfindige!
11.06.2018 16:04:28
Stefan
Hallo zusammen,
Freitag ging dieses Makro noch einwandfrei. Plötzlich klappt es nicht mehr bzw. färbt Zellen nicht mehr wie gewünscht. Findet jemand den Fehler? :-/

Sub Wilson()
Dim i As Integer
Dim u As Integer
Dim ze As Double
Dim a As Double
Dim b As Double
Dim sqrt As Double
'LOK einfärben
For i = 6 To 73
b = Cells(i, 5)
a = Cells(i, 4)
If Left(a, 1) = "K" Then
If a  0 Then
sqrt = (b * (a - b) / a + 1 / 4) ^ (0.5)
ze = (b + 1 / 2) / (a + 1) + (1 / (a + 1)) * sqrt
If ze >= 0.9 Then
Cells(i, 6).Interior.ColorIndex = 4
ElseIf ze >= 0.8 And ze = 0.6 And ze  0 And ze  0 Then
sqrt = (b * (a - b) / a + 1 / 4) ^ (0.5)
ze = (b + 1 / 2) / (a + 1) + (1 / (a + 1)) * sqrt
If ze >= 0.9 Then
Cells(i, 9).Interior.ColorIndex = 4
ElseIf ze >= 0.8 And ze = 0.6 And ze  0 And ze  0 Then
sqrt = (b * (a - b) / a + 1 / 4) ^ (0.5)
ze = (b + 1 / 2) / (a + 1) + (1 / (a + 1)) * sqrt
If ze >= 0.9 Then
Cells(i, 12).Interior.ColorIndex = 4
ElseIf ze >= 0.8 And ze = 0.6 And ze  0 And ze 

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

Betreff
Datum
Anwender
Anzeige
AW: Makro klappt nicht mehr - Für Fehlerfindige!
11.06.2018 16:17:28
Daniel
Hi
hilfreich wäre eine Beispieldatei, in der man dein Makro testen kann und vielleicht noch eine genauere Beschreibung was "klappt nicht mehr" bedeutet:
- gibt es eine Fehlermeldung, wenn ja, welche und in welcher Zeile tritt sie auf?
- wenn es keinen Fehlerabbruch gibt, dann erläutere bitte den unterschied von dem, was der Code bisher gemacht hat und was er jetzt macht.
bzw, die Excelversion ist hier nicht ohne Relevanz.
Seit Excel 2007 hat MS das Farbschema geändert und erlaubt nun die Verwendung von allen RGB-Farben unter Verwendung des RGB-Wertes, so dass der "Umweg" über den Colorindex nicht mehr notwendig ist.
eine mögliche Fehlerursache wäre, wenn plötzlich andere Farben verwendet werden, dass sich deine Colorindexzuordnungstabelle geändert hat.
Die Gegenmaßnahme wäre hier, wenn du Excel 2007 und höher hast, durchgängig Interior.Color = RGB-Wert zu verwenden und nicht mehr Interior.colorIndex = (1-56)
irgenwo im code hast du das ja schon gemacht.
Gruß Daniel
Anzeige
AW: Makro klappt nicht mehr - Für Fehlerfindige!
11.06.2018 17:19:45
Stefan
Hallo Daniel,
danke für das schnelle Feedback.
Leider klappt das nicht so schnell mit der Beispieldatei, da hier einige SVERWEISe und Pivots dahinter stecken (haben aber sich nichts mit dem Makro zu tun).
Der Sinn dieses Makros ist aufgrund einer bestimmten Formel die einen Wert ausrechnet, die Zellen dementsprechend verschieden zu färben bzw. Schriftfarbe in weiß ändern falls Zelle rot wird.
Dieses Makro soll durchlaufen sobald sich ein Wert in dem Sheet ändert.
Es gibt eben leider keine Fehlermeldung.
Der Code läuft einfach durch ohne etwas zu ändern obwohl ein neuer Wert in der Zelle steht.
Auch wenn ich den Zellenwert manuell ändere sollte im Hintergrund das Makro den neuen Wert errechnen und die Farbe der Zelle entsprechend anpassen.
Das hier ist der Code für Werte in einer Spalte:
'LOK einfärben
For i = 6 To 73
b = Cells(i, 5)
a = Cells(i, 4)
If Left(a, 1) = "K" Then
If a  0 Then
sqrt = (b * (a - b) / a + 1 / 4) ^ (0.5)
ze = (b + 1 / 2) / (a + 1) + (1 / (a + 1)) * sqrt
If ze >= 0.9 Then
Cells(i, 6).Interior.ColorIndex = 4
ElseIf ze >= 0.8 And ze = 0.6 And ze  0 And ze 
Ich nutze Excel 2016 :)
Bei den Farben gab es auch keine Änderung. Freitag ging es noch einwandfrei und heute läuft der Code nicht mehr durch bzw. ändert nichts.
Danke nochmal!
Anzeige
Dieser Code hat noch nie funktioniert.
11.06.2018 17:41:22
Daniel
Hi
der Code den du uns zeigst, hat noch nie funktioniert, denn:
Der Code in der Schleife wird nur ausgeführt, wenn a ein Text ist, der mit "K" beginnt:
If Left(a, 1) = "K" Then
kurz danach versuchst du dann mit a (also einem Text der mit "K" beginnt) diese Berechung auszuführen:
sqrt = (b * (a - b) / a + 1 / 4) ^ (0.5)
dh du bekommst auf jeden Fall einen Fehler 13, Typenunverträglichkeit, weil sich ein Text, der einen Buchstaben enthält, nicht in eine Zahl wandeln lässt.
Also wie gesagt, was du uns da zeigst, KANN NICHT funktionieren und hat auch noch NIE funktioniert.
Wenn du uns schon nicht deine echten Codes zeigen willst, solltest du dir etwas mehr Mühe mit den Beispielcodes geben, damit diese auch so funktionieren wie dein echter Code.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige