Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Kennzeichnung gestrichener Ergebnisse in einer "intelligenten" Wettkampftabelle
#51
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#52
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


Angehängte Dateien
.xlsm   ErgebnislisteRPP8a.xlsm (Größe: 35,01 KB / Downloads: 10)
Antworten Top
#53
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#54
Big Grin 
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
Antworten Top
#55
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Bödefeld
Antworten Top
#56
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
Antworten Top
#57
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?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#58
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.


Angehängte Dateien
.xlsm   ErgebnislisteRPP8b.xlsm (Größe: 33,82 KB / Downloads: 9)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#59
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
Antworten Top
#60
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste