Fußball Kreuztabelle

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Fußball Kreuztabelle
von: heiko
Geschrieben am: 20.03.2005 13:15:02
hallo erst mal,
ich habe eine Fußballtabelle erstellt. In einem Blatt stehen die Ergebnisse und in einem anderen Blatt habe ich eine Kreuztabelle erstellt. Wenn ich nun über ein Makro die Kreuztabelle füllen möchte dauert der Vorgang unwahrscheinlich lange, weil ständig zwischen den beiden Blättern gewechselt werden muss.
Wie kann ich den Vorgang beschleunigen ? (evtl. Temp –Datei)
Vielen Dank für im voraus
gruss heiko

Bild

Betrifft: AW: Fußball Kreuztabelle
von: Boris
Geschrieben am: 20.03.2005 13:28:10
Hi Heiko,
...dauert der Vorgang unwahrscheinlich lange, weil ständig zwischen den beiden Blättern gewechselt werden muss.
Entferne einfach alle SELECT und ACTIVATE aus deinem Code. Zudem verzichte auf Schleifenkonstruktionen zu Gunsten von Find-Methode und Konsorten.
Aber das Einfachste wäre sicherlich, wenn du mal dein Beispiel hochlädst oder zumindest mal deinen bisherigen Code posten würdest.
Grüße Boris
Bild

Betrifft: AW: Fußball Kreuztabelle
von: heiko
Geschrieben am: 20.03.2005 13:44:58
Hallo Boris,
hier die datei
https://www.herber.de/bbs/user/19897.xls
gruss
heiko
Bild

Betrifft: AW: Fußball Kreuztabelle
von: Boris
Geschrieben am: 20.03.2005 14:18:49
Hi Heiko,
...hab ich dir ja bereits gesagt: Entferne alle Select und Activate aus deinen Codes zu Gunsten einer klaren Objektreferenzierung.
Zudem sind solche Konstrukte abenteuerlich und schnarchlangsam:
Do Until ActiveCell = ""
ActiveCell.Offset(0, 1).Activate
Das erinnert mich ganz stark an Beispiele von B.H. (nutzt du diese Literatur?).
Zudem blick ich auch leider Deine Datei nicht - daher: Noch offen.
Grüße Boris
Bild

Betrifft: AW: Fußball Kreuztabelle
von: heiko
Geschrieben am: 20.03.2005 15:31:08
hallo Boris,
im Blatt spieltage2 stehen die Ergebnisse der Spieltage.
ein Spieltag besteht aus 2 Zeilen. in der ersten Zeile stehen die Gewinner und in der zweiten Zeile die Verlierer des Spieltages.
Nun möchte ich prüfen, wer mit wem wie viele spiele gewonnen hat (bzw. verloren hat).
Als erste holt sich das Makro einen Name aus Kreuztabelle B4:B34 und ein Name aus C3:AD3 (z.B. Daniel und Adam) und vergleicht wie oft diese Kombination bei den Siegermannschaften vorkommt.
Diese Schleife läuft so lange bis allen Kombinationen durchlaufen sind.
Ich hoffe du kommst mit dieser Erklärung zurecht.
Als Literatur benutze ich das Internet.
Leider kann ich es nicht besser.
Deshalb wende ich mich an dieses Forum.
Gruß
heiko
Bild

Betrifft: AW: Fußball Kreuztabelle
von: Herbert H.
Geschrieben am: 20.03.2005 18:57:12
Hallo heiko,
so gehts immerhin in 3,35 sec...


Sub kreuz_Siege_mit()
Dim shK As Worksheet, shS As Worksheet
 Set shK = Worksheets("Kreuztabelle")
 Set shS = Worksheets("Spieltage2")
 
Dim suche1, suche2 As String, a%
Dim zz, yy, zy, p, q, zl, s As Integer
Dim i, t As Double
t = Timer
With Application
   .ScreenUpdating = False
   .Calculation = xlCalculationManual
End With
zl = shS.Cells(Rows.Count, 8).End(xlUp).Row
For q = 3 To 31
        suche2 = shK.Cells(3, q)
    For p = 31 To Step -1
            suche1 = shK.Cells(p, 2)
            zz = 0
            yy = 0
            zy = 0
            
    If suche1 = "" Then Exit Sub
        For i = 3 To zl Step 2
             zz = 0
             yy = 0
           For s = 8 To 13
             If shS.Cells(i, s) = suche1 Then zz = 1
             If shS.Cells(i, s) = suche2 Then yy = 1
        
            If suche1 = suche2 Then GoTo Weiter
            
           Next
              
      If zz = 1 And yy = 1 Then
         zy = zy + 1
         zz = 0
         yy = 0
      End If
    Next
  
    If zy > 0 Then
       shK.Cells(p, q) = zy
    Else
     GoTo Weiter
    End If
    
Weiter:
Next
Next
With Application
   .ScreenUpdating = True
   .Calculation = xlCalculationAutomatic
End With
a = MsgBox(Format(Timer - t, "#0.00") & " Sekunden")
End Sub

     Gruß Herbert
Bild

Betrifft: AW: Fußball Kreuztabelle
von: heiko
Geschrieben am: 20.03.2005 19:08:10
Hallo Herbert,
vielen dank für die Mühe.
Ich werde es gleich testen.
Gruß
heiko
Bild

Betrifft: AW: Fußball Kreuztabelle
von: heiko
Geschrieben am: 20.03.2005 19:40:12
Hallo Herbert,
vielen dank.
Es funktioniert prima.
6,44 s.
mit meiner version hat es 191,48 s gedauert.
merci
heiko
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Rechnen mit Zeit in Userform"