Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehler im VBA Code

Forumthread: Fehler im VBA Code

Fehler im VBA Code
06.03.2006 15:30:03
Josef
Hallo!
Was mach ich bitte im untenstehenden Code falsch, da ich immer eine Fehlermeldung erhalte.
mobtxt3 ist eine Textbox und in diese möchte ich die Summenzahl der Spalten B,G,L;Q;V;AA;AF reinbekommen.(von jeweils 2 bis 249)
Danke
Josef
mobetxt3 = Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("B2:B249")) + _
Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("G2:G249")) + _
Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("L2:L249")) + _
Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("Q2:Q249")) + _
Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("V2:V249")) + _
Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("AA2AA249")) + _
Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("AF2:AF249"))
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler im VBA Code
06.03.2006 15:44:04
Josef
Hallo!
Einen Fehler hätte ich gefunden.
("AA2AA249")) statt ("AA2:AA249"))
Der richtige Code würde so lauten:
mobetxt3 = Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("D2:D249")) + _
Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("I2:I249")) + _
Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("N2:N249")) + _
Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("S2:S249")) + _
Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("X2:X249")) + _
Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("AC2:AC249")) + _
Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("AH2:AH249"))
Trotzdem erhalte ich als Summe die Zahl 1200723, obwohl keine Einträge in den Zellen sind?
Warum bitte?
Josef
Anzeige
AW: Fehler im VBA Code
06.03.2006 15:53:44
Josef
Hallo Fehler jetzt entdeckt.
mobetxt3 = CDbl("0" & Application.WorksheetFunction.SumIf(ActiveWorkbook.ActiveSheet.Range("a2:a249"), Name1, ActiveWorkbook.ActiveSheet.Range("B2:B249"))) + _
............
Danke
Josef
AW: Fehler im VBA Code
06.03.2006 16:20:32
Luschi
Hallo Josef,
dieser Lösungsansatz kann's nicht sein. Denn was machst Du Da. SumIf liefert eine Zahl von Typ Double, dann verknüptst Du diese Zahl mit "0" durch den &-Operator. Dadurch wird die Zahl zum Text mit einer führenden Null; und mit CDbl wandelst Du den Textwert wieder in eine Zahl von Typ Double.
Im übrigen kannst Du den Code so viel lesbarer schreiben:
Dim ws As Worksheet, rg As Range
Set ws = ActiveWorkbook.ActiveSheet
Set rg = ws.Range("A2:A249")
mobetxt3 = Application.WorksheetFunction.SumIf(rg, Name1, ws.Range("D2:D249")) + _
Application.WorksheetFunction.SumIf(rg, Name1, ws.Range("I2:I249")) + _
Application.WorksheetFunction.SumIf(rg, Name1, ws.Range("N2:N249")) + _
Application.WorksheetFunction.SumIf(rg, Name1, ws.Range("S2:S249")) + _
Application.WorksheetFunction.SumIf(rg, Name1, ws.Range("X2:X249")) + _
Application.WorksheetFunction.SumIf(rg, Name1, ws.Range("AC2:AC249")) + _
Application.WorksheetFunction.SumIf(rg, Name1, ws.Range("AH2:AH249"))
Set rg = Nothing
Set ws = Nothing
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Fehler im VBA Code
06.03.2006 16:01:26
Luschi
Hallo Josef,
was für Werte-Typ (Text, Zahl, Datum usw.) steht den im Bereich "A2:A249" und was steht in Name1, denn das müßte ja die Bedingung sein,
fragt sich Luschi
aus klein-Paris
;

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