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

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?

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

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

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

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige