Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
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

vba - ich finde den Fehler nicht

vba - ich finde den Fehler nicht
28.03.2023 17:23:06
Fred


Hallo Excel Profis,

ich habe 2 Makro, das 1. funzt und das 2. Makro gibt zumindest in der Summe falsch an.
bzw. sind die Summen in Makro 2 identisch denen von Makro 1,- und das kann nicht sein.

Sub Makro1()
Dim StartTitel As Integer
Dim EndTitel As Integer
Dim Summe As Double
Dim MinSumme(1 To 5) As Double
Dim TitelMitMinSumme(1 To 5) As Integer
Dim i As Integer
Dim j As Integer
Dim StartZelle As Range
StartTitel = 1
EndTitel = 37

For j = 1 To 5
    MinSumme(j) = 1E+100
Next j

Set StartZelle = Worksheets("1Hz").ListObjects("tab_1Hz").ListColumns(7).Range

For Titel = StartTitel To EndTitel
    Summe = WorksheetFunction.Sum(StartZelle.Resize(, 8))

    For i = 1 To 5
        If Summe  MinSumme(i) Then
            For k = 5 To i + 1 Step -1
                MinSumme(k) = MinSumme(k - 1)
                TitelMitMinSumme(k) = TitelMitMinSumme(k - 1)
            Next k
            MinSumme(i) = Summe
            TitelMitMinSumme(i) = Titel
            Exit For
        End If
    Next i

    Set StartZelle = StartZelle.Offset(0, 1)
Next Titel

For i = 1 To 5
    Worksheets("1Hz").Cells(i + 1, "DA").Value = TitelMitMinSumme(i)
    Worksheets("1Hz").Cells(i + 1, "DB").Value = MinSumme(i)
Next i
End Sub



Makro2
Makro2()
Dim StartTitel As Integer
Dim EndTitel As Integer
Dim Summe As Double
Dim MinSumme(1 To 5) As Double
Dim TitelMitMinSumme(1 To 5) As Integer
Dim i As Integer
Dim j As Integer
Dim StartZelle As Range
StartTitel = 46
EndTitel = 82

For j = 1 To 5
    MinSumme(j) = 1E+100
Next j

Set StartZelle = Worksheets("1Hz").ListObjects("tab_1Hz").ListColumns(7).Range

For Titel = StartTitel To EndTitel
    Summe = WorksheetFunction.Sum(StartZelle.Resize(, 8))

    For i = 1 To 5
        If Summe  MinSumme(i) Then
            For k = 5 To i + 1 Step -1
                MinSumme(k) = MinSumme(k - 1)
                TitelMitMinSumme(k) = TitelMitMinSumme(k - 1)
            Next k
            MinSumme(i) = Summe
            TitelMitMinSumme(i) = Titel
            Exit For
        End If
    Next i

    Set StartZelle = StartZelle.Offset(0, 1)
Next Titel

For i = 1 To 5
    Worksheets("1Hz").Cells(i + 1, "DM").Value = TitelMitMinSumme(i)
    Worksheets("1Hz").Cells(i + 1, "DN").Value = MinSumme(i)
Next i
End Sub


7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba - ich finde den Fehler nicht
28.03.2023 17:36:13
Fred
..
zu früh auf absenden gedrückt!

Das erste Makro sucht im Endergebnis nach den 5 kleinsten Werte
Es soll ausgeben, Die Spielminute + die wenigsten Treffer in dieser Minute, plus den darauffolgenden 7 Minuten / der 1.Hz
Macht es!
Makro2 soll ausgeben, Die Spielminute + die wenigsten Treffer in dieser Minute, plus den darauffolgenden 7 Minuten / der 2.Hz
Macht es nicht.

Ich hatte im 2. Makro nur:
StartTitel = 46
EndTitel = 82
geändert
.. das war anscheinend zu wenig :-)

Kann mir bitte jemand einen Tipp geben?!!

Gruss
Fred


Anzeige
AW: vba - ich finde den Fehler nicht
28.03.2023 17:52:31
ralf_b
Makro 2 bezieht sich auch auf 1. Halbzeit???? siehe Listobjects


AW: vba - ich finde den Fehler nicht
28.03.2023 19:04:27
onur
Und wo ist die DATEI dazu ???


AW: vba - ich finde den Fehler nicht
28.03.2023 23:11:03
Fred
Jo,
erstmal Entschuldigung das ich mich erst jetzt zurück melde. Ich mußte meine Mutter auch Heute nochmals zum Zahnarzt fahren,- um 21:00h waren wir erst wieder daheim ...
Ja, mit dem BeispielSheet ist es sicherlich offensichtlicher worum es genau geht
https://www.herber.de/bbs/user/158488.xlsb
Kann ein Experte bitte mal drauf schaun und mir eine Lösung anbieten?!

Gruss
Fred


Anzeige
AW: vba - ich finde den Fehler nicht
29.03.2023 02:04:19
Fred
Hallo Sigi,
danke für deine Mühe und den Ansatz!
Diese Berechnung(en) gehören zu vielen Berechnungen, Sheets und Modulen, die meine eigentliche Arbeitsmappe ausmacht. Ich möchte so viel wie (mir) möglich ist, in VBA Makro's unterbringen. Es geht um tausende von Zeilen (Spielen) und mit der Dauer (es kommen immer mehr dazu) werden die Anzahl der Formeln der Haupttreiber für schlechte Performance sein. (Keine Ahnung, wie viele Tausend unterschiedliche Auswertungen möglich sind,- auf Basis von 4-6 Werten /HeimTeam, GastTeam HeimTore, GastTore, 1Hz HeimTore, 1Hz GastTore)
Wie auch immer ... Das eine Makro (1.Hz) ermittelt anscheinend korrekt, das zweite eben nicht, - - und ich sehe den Fehler nicht.
Vieleicht kann ei anderer Interessierte mir da weiter helfen?!

Gruss
Fred


Anzeige
erledigt: vba - ich finde den Fehler nicht
29.03.2023 02:42:12
Fred
Mann Mann, was für ein Abend!
nun habe ich u.a. den Offset der StartZelle geändert um sicherzustellen, dass die Berechnungen bei Titel 46 beginnen.
Set StartZelle = Worksheets("1Hz").ListObjects("tab_1Hz").ListColumns(7).Range.Offset(0, StartTitel - 1)
Außerdem habe ich sicherheitshalber den Ausdruck "Set StartZelle =" in der Schleife aktualisiert, um zu gewährleisten, dass es sich tatsächlich um eine neue Zelle handelt ....
und nu funzt es !!

Gruss
Fred

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige