Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Warum funktioniert das nicht...?

Forumthread: Warum funktioniert das nicht...?

Warum funktioniert das nicht...?
18.03.2015 14:06:24
Jockel
hi zusammen,
kurze frage...
dieser codeschnipsel funktioniert super:

MsgBox WorksheetFunction.SumIfs(Sheets("E&A").Range(Cells(4, 16), Cells(1000, 16)), _
Sheets("E&A").Range("F:F"), "9960306131", Sheets("E&A").Range("G:G"), "1")
dieser bringt den laufzeitfehler '1004':
MsgBox WorksheetFunction.SumIfs(Sheets("E&A").Range("P:P"), _
Sheets("E&A").Range("F:F"), "9960306131", Sheets("E&A").Range("G:G"), "1")
kann mir jemand helfen wo der fehler liegt?

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Warum funktioniert das nicht...?
18.03.2015 14:09:34
Rudi
Hallo,
Fehlerwert in P:P?
Gruß
Rudi

AW: Warum funktioniert das nicht...?
18.03.2015 14:13:35
Jockel
SORRY!
Kopierfehler - die Beispiele einfach umkehren!!! :)

AW: Warum funktioniert das nicht...?
18.03.2015 14:21:44
Rudi
Hallo,
die Bereich müssen gleich groß sein.
Gruß
Rudi

Anzeige
AW: Warum funktioniert das nicht...?
18.03.2015 14:33:41
Jockel
Und wie sieht dann der code aus, wenn ich die Zahlen in "Cells(zeile, spalte)" als variable bestücken will?

AW: Warum funktioniert das nicht...?
18.03.2015 14:39:04
Klaus
Hi Jockel,
da die Bereiche gleich groß sein müssen, muss jede Spalte die gleichen Zeilenvariablen bekommen. Zwei Möglichkeiten, such dir aus was dir besser gefällt:
Sub test()
var1 = 4
var2 = 1000
MsgBox WorksheetFunction.SumIfs(Sheets("E&A").Range(Cells(var1, 16), Cells(var2, 16)), _
Sheets("E&A").Range("F:" & var1 & "F" & var2), "9960306131", Sheets("E&A").Range("G:" & var1 &  _
"G" & var2), "1")
MsgBox WorksheetFunction.SumIfs(Sheets("E&A").Range(Cells(var1, 16), Cells(var2, 16)), _
Sheets("E&A").Range(Cells(var1, 6), Cells(var2, 6)), "9960306131", Sheets("E&A").Range(Cells( _
var1, 7), Cells(var2, 7)), "1")
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: Warum funktioniert das nicht...?
18.03.2015 15:01:12
Jockel
Auch dir danke! auch wenn ich gern einen kürzeren code hätte... range("A:A") ist so kurz, warum man da nicht range("1:1!) o. ähnliches schreiben kann...?

AW: Warum funktioniert das nicht...?
18.03.2015 15:33:39
Klaus
Wenns dir zu lang = zu unleserlich wird, dann hol die RANGE-Angaben aus der Formel raus.
Sub test()
Dim var1 As Long, var2 As Long
Dim r1 As Range, r2 As Range, r3 As Range
var1 = 6
var2 = 1000
Set r1 = Range(Cells(var1, 16), Cells(var2, 16))
Set r2 = Range(Cells(var1, 6), Cells(var2, 6))
Set r3 = Range(Cells(var1, 7), Cells(var2, 7))
MsgBox WorksheetFunction.SumIfs(r1, r2, "9960306131", r3, "1")
End Sub
Das ist zwar, an der reinen Zeichenanzahl gemessen, länger ... aber dafür lesbarer.
Grüße,
Klaus M.vdT.

Anzeige
AW: Warum funktioniert das nicht...?
18.03.2015 14:43:03
Rudi
Hallo,
so?
With Sheets("E&A")
MsgBox WorksheetFunction.SumIfs(.Range(.Cells(4, 16), .Cells(Zeile, 16)), _
.Range(.Cells(4, 6), .Cells(Zeile, 6)), "9960306131", .Range(.Cells(4, 7), .Cells(Zeile, 7)) _
, "1")
End With
Gruß
Rudi

Anzeige
AW: Warum funktioniert das nicht...?
18.03.2015 14:57:49
Jockel
Super, funtzt! Danke dir! ...wenn auch mächtig lang :)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige