Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1408to1412
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

formel mit variable über VBA

formel mit variable über VBA
17.02.2015 00:45:10
andreas

Hallo, ich würde gerne anhand einer formal für eine bestimmte anzahl an personen ausrechnen lassen, wie häufig diese in einem bestimmten zeitraum gearbeitet haben. dabei zählen einige tage nur halb. die entsprechende excel formel lautet:
=SUMME(K24:O24)+(SUMME(P24:Q24)/2)
die zeile 24 soll sich ändern.
folgendes habe ich bisher zu papier gebracht:
Dim MZ As Range, SZ As Range, SpUZ As Range, ZNAZ As Range
z = 0
While z < Anzahlmitarbeiter
Set MZ = Cells(24 + z, 11)
Set SZ = Cells(24 + z, 15)
Set SpUZ = Cells(24 + z, 16)
Set ZNAZ = Cells(24 + z, 17)
Cells(30, 24).Value = MZ.Address 'testet ob richtige zelle eingelesen, funktioniert
Cells(31, 24).Value = SZ.Address
Cells(32, 24).Value = SpUZ.Address
Cells(33, 24).Value = ZNAZ.Address
Cells(24 + z, 18).FormulaLocal = "=SUMME(" & MZ & ":" & SZ & ")+(SUMME(" & SpUZ & ":" & ZNAZ & ")/2)" 'hier liegt das problem
'Cells(24 + z, 18).Value = MZ.Address ' weiterer test, problemfrei.
'=SUMME(K24:O24)+(SUMME(P24:Q24)/2) ' originalformel
z = z + 1
Wend
er sagt immer ich mache einen "Anwendungs- oder objektdefinierter Fehler", fehlermeldung 1004. woran liegts (mal abgesehen davon, dass ich vl je 2 variablen zusammefassen könnte)? vielen dank im voraus
andreas

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Mit den Range-Objekten kann eine Fml nichts ...
17.02.2015 05:11:44
Luc:-?
…anfangen, Andreas,
du musst dann auch schon .Address verwenden.
Morrn, Luc :-?
Besser informiert mit …

AW: Mit den Range-Objekten kann eine Fml nichts ...
22.02.2015 22:37:15
andreas
was heißt das konkret? hab jetzt schon die andere lösung die funktioniert,aber nur zum lernen...
wenn ich anstelle
Cells(24 + z, 18).FormulaLocal = "=SUMME(" & MZ & ":" & SZ & ")+(SUMME(" & SpUZ & ":" & ZNAZ & ")/2)"
folgendes nehme:
Cells(24 + z, 18).FormulaLocal = "=SUMME(K" & MZ.Address & ":O" & SZ.Address & ")+(SUMME(P" & SpUZ.Address & ":Q" & ZNAZ.Address & ")/2)"
dann tut sich auch nichts...

Anzeige
Weil du es 'doppelt gemoppelt' hast ...
23.02.2015 04:37:46
Luc:-?
…(die .Address enthält schon den SpaltenBuchstaben, hast du doch selbst getestet!), Andreas;
schätze, du bräuchtest doch erst mal einen Basiskurs (Xl und VBA), eh' du dir die Pgmierung über Foren beizubringen versuchst… :-|
Luc :-?

einfacher: direkt mit zahlen
17.02.2015 06:51:35
MCO
Guten Morgen!
Cells(24 + z, 18).FormulaLocal = "=SUMME(K" & 24+z & ":O" & 24+z & ")+(SUMME(P" & 24+z & ":Q" & 24+z & ")/2)"
Damit kannst du die anderen Zuweisungen alle weglassen, die du formal gesehen alle wieder löschen müsstest. Selbst 24+z kannst du einfacher haben, wenn du z schon auf 24 statt auf 0 setzt.
Gruß, MCO

Anzeige
AW: einfacher: direkt mit zahlen
22.02.2015 22:39:23
andreas
vielen dank, hat super funktioniert

AW: einfacher: direkt mit zahlen
22.02.2015 22:59:04
Daniel
Hi
verwende die Z1S1-Addressierungsart, dann wirds noch einfacher:
Cells(24 + z, 18).FormulaR1C1Local = "=SUMME(ZS11:ZS15)+(SUMME(ZS16:ZS17)/2)"
Gruß Daniel

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige