Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
740to744
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
740to744
740to744
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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"))

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige