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

WorksheetFunction.Sum

WorksheetFunction.Sum
04.12.2020 12:24:57
Jochen
Hallo Ihr Lieben meine Nerven sind am Ende. Daher jetzt hier die Frage. Hab schon ca. 1h online gesucht.
Ich will WorksheetFunction.Sum in einem Makro aus einer Tabelle in anderen Tabellen ausführen diese sind variabel daher gehen bzw. will ich über den Index gehen.
Habe das ganze so Probiert

Sub vergl()
Dim letzZeil, wksi As Long, sumakt, sum1, sum2 As Variant
Dim Vergl1, Vergl2, Vergl1Proz, Vergl2Proz As Integer
Dim grün As Boolean
Dim wks1, wks2, wksa As Worksheet
wksi = ActiveSheet.Index
Set wksa = ActiveSheet
Set wks1 = Sheets(wksi - 12)
Set wks2 = Sheets((wksi - 24))
letzZeil = ActiveSheet.Cells(27, 5).End(xlUp).Row
sumakt = WorksheetFunction.Sum(wksa.Range(Cells(1, 5), Cells(letzZeil, 5)))
'Sheets(wksi - 12).Activate
sum1 = WorksheetFunction.Sum(wks1.Range(Cells(1, 5), Cells(letzZeil, 5)))
'Sheets(wksi - 24).Activate
sum2 = WorksheetFunction.Sum(wks2.Range(Cells(1, 5), Cells(letzZeil, 5)))
If sumakt > sum1 Then
Vergl1 = sumakt - sum1
Vergl1Proz = sumakt * 100 / sum1 - 100
grün = True
Else
Vergl1 = sum1 - sumakt
Vergl1Proz = sumakt * 100 / sum1 - 100
grün = False
End If
If sumakt > sum2 Then
Vergl2 = sumakt - sum2
Vergl2Proz = sumakt * 100 / sum2 - 100
grün = True
Else
Vergl1 = sum2 - sumakt
Vergl2Proz = sumakt * 100 / sum2 - 100
grün = False
End If
Sheets(wksi).Activate
If grün Then
ActiveSheet.Range(Cells(16, 1), Cells(17, 1)).Interior.ColorIndex = 4
Else
ActiveSheet.Range(Cells(16, 1), Cells(17, 1)).Interior.ColorIndex = 3
End If
Cells(16, 1).Value = "Zum Vorjahr tagesaktueller Vergleichswert: " & Round(Vergl1, 0) & " €"
Cells(17, 1).Value = "Zum Vorjahr tagesaktueller Prozentabweichung: " & Round(Vergl1Proz, 0) & " _
_
_
End Sub

Ich bekomme da aber bei der sum1 und sum2 immer den Fehler 1004 Anwendungs und Objektorientierter Fehler,
Ich habe es mit Klartext probiert "Sheets(130).Range" ; mit "Sheets(" Name".Range)"
Immer der gleiche Fehler.
Es geht nur wenn ich über sheets(Index).activate gehe und dann dort die
sum1 = WorksheetFunction.Sum(Range(Cells(1, 5), Cells(letzZeil, 5)))
aufrufe.
Das geht dann aber wieder nicht mehr wenn ich die Sub in " Private Sub Worksheet_Activate()"
verschiebe wo sie eigentlich hin soll.
Vielleicht kann von Euch jemand helfen.
Schon mal vielen Dank
Gruss Jochen

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

Betreff
Datum
Anwender
Anzeige
AW: WorksheetFunction.Sum
04.12.2020 12:48:13
peterk
Hallo

sum1 = WorksheetFunction.Sum(wks1.Range(wks1.Cells(1, 5), wks1.Cells(letzZeil, 5)))

AW: WorksheetFunction.Sum
04.12.2020 12:49:28
UweD
Hallo
der Blattbezug muss auch vor die Cells...
sumakt = WorksheetFunction.Sum(wksa.Range(wksa.Cells(1, 5), wksa.Cells(letzZeil, 5)))
LG UweD
AW: WorksheetFunction.Sum
04.12.2020 13:14:52
Jochen
Ihr Seit meine Retter vielen Dank.
Manchmal fehlt einem einfach die naheliegendste Idee.
:-))
Gruss Jochen
Anzeige

187 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige