Clever-Excel-Forum

Normale Version: Kennzeichnung gestrichener Ergebnisse in einer "intelligenten" Wettkampftabelle
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8
Hallöchen,

beim Übertragen des Makros ist eventuell ein Fehler passiert. Der Code steht nun außerhalb des Sub:

Code:
Sub crossFormat2(rngBereich As Range)

End Sub
Dim rngZeilen As Range
...

Du musst einfach das End Sub oben weg nehmen und ans Ende setzen.

Allerdings brauchst Du die beiden Varianten gar nicht. Dass es sich um unterschiedliche Tabellen handelt, bekommt das Makro ja durch den übergebenen Parameter mit.
Hallo André,

Danke!
Ich habe die Tabelle jetzt einfach kopiert, um ein zweites Blatt aufzumachen (über Rechtsklick auf den Tab und dann "Verschieben oder Kopieren").
Somit müsste ja eigentlich alles in Ordnung gehen.
Aber leider kommt es sofort nach dem Kopieren zum Laufzeitfehler 1004 "Die Methode "Range" für das Objekt "Worksheet" ist fehlgeschlagen.
Im VB befinden sich dann zwei Worksheets für Tabelle1+2 mit dem identischen Code und ein Modul.
Dann habe ich das Worksheet der neuen Tabelle geändert:
  • Private Sub Worksheet_Calculate()
     Call crossFormat2(Range("Tabelle2")
    End Sub

    Private Sub Worksheet_Change(ByVal Target As Range)
    With Range("Tabelle2")

und dafür ein neues Modul geöffnet, den Code vom Modul1 hineinkopiert und geändert:
  • Sub crossFormat2(rngBereich As Range)
    .
    .
    .
         With Range("Tabelle2")

Aber es kommt immer wieder zum oben genannten Fehler im Worksheet2 bei "With Range("Tabelle2").
Ich komme echt nicht weiter.

Und dann gibt es ja immer noch das Problem in der Spalte "L" mit der inkonsistenten berechneten Spaltenformel.

Grüße
Bernd
Hallo Bernd,

Deine zweite Tabelle ist nicht Tabelle2, sondern Tabelle14. Du siehst das u.a. im Namensmanager. Du müsstest also 3x aus der 2 die 14 machen oder im Namensmanager die Tabelle bearbeiten bzw. dort den Namen in Tabelle2 ändern.
Mit den grünen Ecken hab ich im Moment keine Lösung parat.
Danke, André, das hätte ich nie gefunden, denn komischer Weise heißt sie im VBA Tabelle2 und nicht Tabelle14 ???

Es wäre nett, wenn Du Dich noch einmal melden würdest, so Dir etwas zu dem "Inkontinenz-Fehler" in Spalte L einfällt.  :17:

Bis dahin viele Grüße und vielen Dank
Bernd
Hallo Bernd,

zu den grünen Ecken hab ich jetzt auch noch was raus gefunden:

Klicke doppelt auf die rechte untere Ecke der ersten Formelzelle. Dadurch füllt sich die Spalte automatisch nochmal mit der Formel und alle Ecken ab der nächsten Zelle sind weg. Die Ecke an der ersten Zelle bekommst Du weg, indem Du mal eine Zelle aus dem Datenbereich der Formel löschst - kann auch eine leere sein.
Unglaublich - wie bist Du darauf gekommen?

Ursprünglich stand zwischen den Semikolons eine 0, später habe ich sie aber weggelassen.
ich habe mich schon gefragt, warum in jeder neuen Zeile wieder die 0 enthalten ist.
Jetzt sieht alles OK aus.

Schönes Wochenende!

Bernd
Hallo Bernd,

ich schaue mir das morgen früh an.
Der Punkt ist, dass jeweils nur der erste kleinste Wert durchkreuzt wird. Ich habe mir jetzt den Thread nicht nochmal durchgelesen, wie genau die Aufgabenstellung diesbezüglich war. Ich denke aber, dass die Logik so war, dass bei einem gestrichenen Wert ja nur noch 4 zählen und durchgestrichen werden sollte ab 5 ? ... Allerdings berücksichtigt das auch nicht, dass ja auch mehr als 5 Werte stehen können.
Bei 6 oder 7 Werten sieht es auch nicht korrekt aus. Ein zweiter Wert wird erst dann durchkreuzt, wenn dieser kleiner ist und nicht gleich.
Angenommen, Du hast 7x den gleichen Wert, sollen dann alle durchgestrichen werden? Ist ein Wert größer als die anderen 6, bleibt nur dieser eine ungekreuzt?
Hallöchen,

hier werden nun alle kleinsten Werte durchkreuzt.
Wegen der Strichdicke noch eine Frage - benutzt Du auch die 2007er Version beim Wettkampf? Bei mir unter 2016 sind die Striche dünn, ich müsste erst mal schauen, ob es da zu 2007 bei der Formatierung einen Unterschied gibt.
Hallo André

zuhause arbeite ich mit der 2013er Version, im Verein mit der 2007er.
Bei beiden Versionen werden die Kreuze extrafett gedruckt.

Grüße
Bernd
Hallöchen,

Im Makro ist das dieser Bereich:
Code:
           With Cells(.Row, 4 + Sp)
              .Borders(xlDiagonalUp).LineStyle = xlContinuous
              .Borders(xlDiagonalDown).LineStyle = xlContinuous
              .Borders(xlDiagonalDown).Color = -16776961
              .Borders(xlDiagonalDown).Weight = xlThin
           End With
und speziell die letzte Zeile.

zwei Ansätze:

1.
eventuell kannst Du mal mit dem Makrorekorder den Code zum formatieren aufzeichnen.

2.
eventuell geht es auch, wenn Du stattdessen diesen Code verwendest:

Code:
          With Cells(.Row, 4 + Sp)
              .Borders(xlDiagonalUp).LineStyle = xlContinuous
              .Borders(xlDiagonalUp).Color = -16776961
              .Borders(xlDiagonalUp).Weight = xlThin
           End With

Übrigens hatte ich in der letzten Version auch den Code so angepasst, dass ein Makro zum Setzen der Kreuze reicht.
Seiten: 1 2 3 4 5 6 7 8