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

Summe unter Bedingung errechnen

Summe unter Bedingung errechnen
Uwe
Hallo,
In meiner späteren Excel-Anwendung gilt es, zahlreiche Summen zu bilden. Das erledige ich via VBA z.B. mit folgender Anweisung:
Sub Zz_Ueberstunden()
'Zeitzuschlag Überstunden
Range("AP43").Value = WorksheetFunction.Sum([AB3:AB35])
End Sub
Diese Anweisung genügt nun aber nicht den Anforderungen, die mir das dazu geltende Tarifrecht zwingend vorgibt.
Abgerechnet wird der "Zeitzuschlag Überstunden" pro Kalenderwoche. Hierzu sind je nach Kalendermonat (Eintragung in Zelle A1 des Blattes Zeitdaten) bereits die einzelnen Wochentage pro Kalenderwoche zusammengefasst. (sprich die Zellen miteinander verbunden)
Der Wert der letzten Kalenderwoche (Spalte AB, im Tabellenblatt "TVöD" orange markiert) ist bei der in Zelle AP43 auszugebenden Summe NIE mitzurechnen, zudem der Wert der vorletzten Kalenderwoche (Spalte AB, im Tabellenblatt "TVöD" hellorange markiert) nur dann mitzurechen, wenn der letzte Tag des Monats (vergl. Spalte B) ein Sontag ist.
Wie bilde ich diese Summe für die Ausgabe in Zelle AP43?
Brauchte dazu einmal mehr, eigentlich sogar wirklich dringend, Eure Hilfe. Handelt es sich hierbei doch um eines von insgesamt noch drei Problemen, an deren Lösung ich bisher schlicht verzweifle.
Besten Dank im Voraus.
Uwe
PS: Hier einmal mehr die entsprechende Datei: https://www.herber.de/bbs/user/65301.xls
AW: Summe unter Bedingung errechnen
24.10.2009 11:51:34
Daniel
Hi
probier mal das

Sub Zz_Ueberstunden()
Dim rng1 As Range
Dim i As Long
Dim Summe As Double
'--- prüfen, ob letzter Wo-Tag ein Sonntag
Set rng1 = Range("B5:B35").SpecialCells(xlCellTypeConstants)
x = IIf(rng1.SpecialCells(xlCellTypeLastCell).Value = "So", 1, 2)
'--- Summen pro Woche bilden, letzen eine oder zwei auslassen
Set rng1 = Range("d5:d35").SpecialCells(xlCellTypeConstants)
For i = 1 To rng1.Areas.Count - x
Summe = Summe + WorksheetFunction.Sum(Intersect(Range("AB:AB"), rng1.Areas(i).EntireRow))
Next
Range("AP43").Value = Summe
End Sub
allerdings darf Sonntags nur dann gearbeitet werden, wenn der Montag darauf frei ist.
btw wann und in welcher Form werden denn die letzte bzw letzten beiden Kalenderwochen in der Berechnung berücksichtigt? Es sollen doch keine Überstunden verloren gehen.
Gruß, Daniel
Anzeige
AW: Summe unter Bedingung errechnen
24.10.2009 12:05:55
Uwe
Hallo Daniel,
besten Dank für Deinen Lösungsansatz. Ich bin mir sicher, das dieser schon der richtige Weg ist. Zwei Probleme habe ich dabei gerade eben aber festgestellt.
1.) Der Wert in Zelle AB 3 MUSS zwingend IMMER mitgerechnet werden!!! Du hast Dich zuerst mal offensichtlich auf den Bereich der verbundenen Zellen in AB5:AB35 beschränkt...?
2.) Als Beispiel habe ich mal den Februar 2010 durchgespielt. Da ist z.B. der letzte Tag des Monats ein Sonntag. Trotzdem wird auch hier die vorletzte Woche nicht mit in die Summe in AP43 einbezogen.
Vermutlich geschieht das das ja in Spalte B die letzten Tage einfach leer sind, da der Monat in diesem Fall bereits am 28 endet.
Wäre super klasse, so Du mir hier weiter behilflich sein könntest.
Gruß
Uwe
PS: Die unberücksichtigten Überstunden werden später "zu Fuß", sprich per Hand in die Tabelle des nächsten Monats übertragen. Das ist so gewünscht.
Anzeige
AW: Summe unter Bedingung errechnen
24.10.2009 12:57:28
Daniel
HI
naja die Wochen sind ja die verbundenen Zellen.
das AB3 mit dazuaddiert werden soll, war jetzt nicht direkt erwähnt, aber wenn du den Rest vom Makro selber geschrieben hast, sollte es für dich kein Problem sein, diesen Wert zur Gesamtsumme auch noch hinzuzufügen.
Andere Monate konnte ich nicht testen, da beim Ändern des Datums ein Fehler aufgetreten ist.
es wäre gut, wenn du das bereinigtst und in der Testdatei, die du hier hochlädst, gleich die Zeilen/Spaltenköpfe sowie die Scrolleisten aktivierst, das macht das testen etwas einfacher.
Gruß, Daniel
AW: Summe unter Bedingung errechnen
24.10.2009 13:17:27
Uwe
Hei Daniel,
vielen Dank für Deine Mühe. Hier versuch ich`s stets ehrlich zu beschreiben, das ich mit VBA immer noch so meine liebe Mühe habe. Zudem, wahrlich ist nicht all das, was meine Datei an Code beinhaltet, von mir!!!
So gesehen hast Recht... so alles von mir stammen würde, na, dann gäb`s meine Frage sicher nicht.
Tja...
Uwe
PS: Wäre wirklich seeehr nett, so Du mir noch behilflich sein könntest. Zudem gibt`s eine weitere Bedingung, die ich nicht ausdrücklich ausgeschlossen habe. Wenn der letzte Tag des Monats ein Sonntag ist, dann ist die vorletzte KW IMMER mit in die Summe der Spalte AB einzubeziehen. Undabhängig davon, ob an diesem Tag gearbeitet wurde, oder nicht.
Anzeige
AW: Fehler gefunden
24.10.2009 13:10:35
Daniel
HI
ok, hab den Fehler auch ohne passenden Monat gefunden.
die Zeile mit IIF muss so aussehen:
x = IIf(rng1(rng1.Cells.Count).Value = "So", 1, 2)
dann gehts
AW: Fehler gefunden
24.10.2009 13:24:21
Uwe
Hey Daniel,
das liest sich doch schon mal ganz guuut. Lange Rede, kurzer Sinn. In meiner Antwort auf Deine letzten Bemerkungen von gerade eben hatte ich scchon darauf hingewiesen:
Unabhängig davon, ab am Monatsletzten, so "er" denn ein Sonntag ist, gearbeitet wird, oder nicht, muß die Summe in Spalte AB dann unbedingt den Wert der vorletzten Kalenderwoche mit berücksichtigen.
Insoweit dürfest Du Dich bei Deinem Code leider nicht auf die Angaben der Spalte D stützen.
Zudem ist ja der Wert in AB 3 IMMER mit zur Summe hinzuzurechen. Und ja, ich krieg`s einfach nicht hin, den Code dahingehend selber anzupassen.
ABER: So ich nun einmal mehr eine derartige Hilfestellung wie die von Dir bekomme, lerne ich`s immer besser. Eben DOCH via VBA Berechnungen selber vornehmen zu können. Im Grunde reicht mir da schon der ein oder andere aussagefähige Kommentar im Code.
Uwe
Anzeige
AW: Fehler gefunden
24.10.2009 16:49:30
Daniel
HI
"Zudem ist ja der Wert in AB 3 IMMER mit zur Summe hinzuzurechen. Und ja, ich krieg`s einfach nicht hin, den Code dahingehend selber anzupassen."
wenn du mit der Betreuung eines VBA-Projekts dieser Grösse beauftragt ist, dann solltest du eigentlich in der Lage sein, zu einer Variablen noch einen Zellwert hinzuzuaddieren, bevor die Variable in eine andere Zelle zurückgeschrieben wird, das sind sozusagen die Basics.
Ich beantworte hier zwar gerne fragen, aber ich bin nicht bereit, für deine Firma kostenlos deine Grundlagenausbildung zu übernehmen.
Gruß, Daniel
AW: Fehler gefunden
24.10.2009 17:17:07
Uwe
Hallo Daniel,
vielen dank für Deine Hilfe!
Sorry, aber...
Uwe
Anzeige
AW: ich meins ernst
24.10.2009 17:38:47
Daniel
wenn du nicht mal in der Lage bist, einen einfachen 5-Zeiler zu verstehen und eine Programmzeile wie
Summe = Summe + Range("AB3").value
selbst zu schreiben, dann bist du mit der Pflege und Wartung eines VBA-Projekts dieser Grösse einfach überfordert.
So ein Forum ist ganz gut einzelne spezielle Fragen, aber Grundlagenausbildung hierüber zu machen ist schwierig.
Hast du das Sheet einfach so übernommen oder hast du mit demjenigen, der den Code ursprünglich verfasst hat, noch Kontakt und kannst ihn fragen wie die Makros und VBA überhaupt funktioniert?
Gruß, Daniel
Klarstellung oder... ein Neuanfang
25.10.2009 10:08:58
Uwe
Hallo Daniel,
Deinen kritischen Worten ist eigentlich gar nicht viel hinzuzufügen. Vor allem liegst Du mit Deiner Vermutung richtig, das mir Grundlagenwissen fehlt.
Von Hause her bin ich aufgrund meines Jobs einfach Tariffachmann. Darüber hinaus stark an Excel und VBA interessiert.
Bereits vor Jahren ist`s mir, nach relativ kurzem "Einlesen", gut gelungen, eigene Anwendungen auf Basis von eben Excel in Verbindung mit VBA zu schreiben. Hierbei ging es vorrangig um Menüleisten, Datensicherungen, Dateistrukturen, Wissensdatenbanken o.ä. All das ging mir seinerzeit eben sehr gut "von der Hand". Nun denn...
Ebenso war ich nun zu Beginn der Meinung, das für mich z.B. Berechnungen via VBA ebenso bequem zu programmieren sind. Dem ist offensichtlich nicht so. Hier bemerkte ich, das mir elementares Grundwissen einfach fehlt. Das aber zu einem Zeitpunkt, da ich bereits bis über beide Ohren in meinem Projekt "feststeckte".
Eine Vielzahl der Makros, die Du nun aufgrund der hochgeladenen Datei kennst, habe ich bisher nur mit großer Hilfe einiger weniger, hier aus dem Forum, auf den Weg bringen können. Insoweit ist dieses Forum hier in der Tat für einzelne, spezielle Fragen super klasse.
Obwohl ich mir einige Fachbücher bereits zugelegt habe, (u.a. VBA für Dummis...) fehlt`s immer noch am Verständnis für die grundlegenden Begriffe. Bisher war`s für mich "learning by doing..." mit Hindernissen.
Zudem habe ich nie ein Geheimnis daraus machen wollen, das dem eben so ist. Über dieses Projekt, bei dem man mich aufgrund meiner fachlichen Kompetenz mächtig unter (Zeit)Druck setzt, hatte ich die Erwartungshaltung, die Hoffnung, das es mich auch in die Grundlagen der VBA führt...
Hast Du nun denn eine Idee, wie ich mich denn nun konkret in dieses Basiswissen einarbeiten kann? DAS wäre mir die wohl größte Hilfe. Gerne näheres auch via Mail...
Trotzdem einfach mal Besten Dank an dieser Stelle.
Tja...
Uwe
Anzeige
AW: Klarstellung oder... ein Neuanfang
25.10.2009 10:46:55
Daniel
HI
wenn dir die Grundlagen fehlen, kann ich eigentlich nur empfehlen, einen VBA-Kurs zu machen, da solltest du dann das wichtigste lernen.
So ein Kurs hat folgende Vorteile:
- in Büchern steht immer viel drin, für den lernenden Anfäger meist zuviel, weil er gar nicht überblicken kann, was für ihn jetzt wichtig ist oder nicht, dh. Bücher sind meist nur als Nachschlagewerk für den bereits Wissenden zu gebrauchen. Selbst bei den Scripten, die die Trainer in meinen Excelkursen verwendet haben, sind wir nicht kontinuierlich vorgegangen, sondern wild in den Kapiteln hin und hergesprungen.
- du hast deinen Trainer direkt vor Ort und kannst ihn persönlich Fragen (geht meist schneller als übers Forum)
- du kannst ihm deine Daten direkt zeigen, ohne sie hier weltweit veröffentlichen zu müssen, dh. ihr könnt mit Originaltabellen arbeiten.
Ich meine das ist wie beim Skifahren, natürlich kann man Bücher dazu lesen und sich selbst an den Hang stellen und versuchen runterzurutschen, aber am schnellsten wirst du es immer noch in einen Skikurs mit Skileherer lernen, auch wenns ein paar Euro kostet, es lohnt sich meistens.
Wenn man mal die Basics drauf hat und das Prinzip verstanden hat, dann fällt es einem auch viel leichter, sich über Eigenstudium und Learning by Doing weiterzuentwickeln (das ist dann auch der Zeitpunkt, wo meiner Ansicht nach dieses Forum ein sehr gute Hilfe ist), aber für das Erlernen der Basics ist meiner Ansicht nach der Kurs immer noch das beste.
"...Über dieses Projekt, bei dem man mich aufgrund meiner fachlichen Kompetenz mächtig unter (Zeit)Druck setzt, hatte ich die Erwartungshaltung, die Hoffnung, das es mich auch in die Grundlagen der VBA führt..."
such dir hierfür lieber ein Projekt, bei dem du nicht unter Zeitdruck stehts, sondern wo du in Ruhe basteln und ausprobieren kannst und wo es nichts ausmacht, wenn mal ne Zeitlang das Makro nicht das macht, was es soll. Projekte unter Zeitdruck sollte man mit Werkzeugen und Methoden bearbeiten, die man bereits beherrscht.
Gruß, Daniel
Anzeige
AW: Klarstellung oder... ein Neuanfang
25.10.2009 11:34:47
Uwe
Hey Daniel,
vielen Dank für Deine Antwort. Ich stimme Dir uneingeschränkt zu. Zu meinem Arbeitgeber darf ich Dir an dieser Stelle nichts weiter schreiben. Nur eben folgendes:
Dieser hat erkannt, das ich in fachlicher Hinsicht wohl ganz "gut drauf" bin. Und dann hieß es "machen Sie mal..." VBA Grundkurs vom Arbeitgeber? Davon kann ich nur träumen.
Nun denn... Hier und jetzt bleibt mir eigentlich nichts weiter, als mich hier durch`s Forum zu fragen und darauf zu hoffen, das ich mehr oder weniger beständig Hilfe und Lösungsansätze bekomme, die mich a.) in die richtige Richtung zu meinem Projekt bringen und b.) mir weitere wertvolle Hinweise zum Grundwissen in Sachen VBA bieten.
Ja, es wäre super klasse, so ich jemanden als Ansprechpartner hätte, der mich zunächst durch mein Projekt begleitet (es stehen nur noch einige wenige, vielleicht vier Probleme an) und mich so vielleicht doch auf den richtigen Weg bringt. So Dur mir helfen könntest...
... wäre das irre guut.
Jogy, Erich scheinen mir hier im Forum wahre Könner zu sein. Aber, deren Hilfe habe ich wohl bereits zu sehr in Anspruch genommen. Oder ihnen eben nicht richtig klar machen können, um was es mir wirklich geht. Lange Rede, kurzer Sinn... Aufgeben kennen ich eigentlich nicht. Daher einfach meine Frage...
Wärst Du bereit, mich Durch diese absehbare Anzahl an Problemen in meinem jetzten Projekt zu führen?
Das wäre super klasse. Wie gesagt, dieser erst einmal eine Ansprechpartner fehlt mir einfach...
Mann "eile" mir zur Hiiilfe!!!
Lieben Gruß
Uwe
PS: Müßte eigentlich nur dumm sein, so ich diese Hilfe hier im Forum nicht zu schätzen wüßte und nur fertige Lösungen "abstauben" wollte...
Anzeige
AW: Klarstellung
25.10.2009 12:29:21
Daniel
Hi
gegen eine entsprechende Aufwandsentschädigung ja.
leider habe ich keine eigene Firma, so daß ich dir keine offiziellen Rechnungen schreiben kann und müsste quasi schwarz arbeiten.
ich hoffe mal du siehst ein, daß deine derzeitigen Wünsche über die übliche "Nachbarschaftshilfe" wie sie hier im Forum stattfindet weit hinausgeht und du eigentlich professionelle Unterstütztung haben willst.
Professionell heißt aber eben auch, daß es kostet, weil ein Profi eben von seiner Arbeit leben muss.
Außerdem bin ich nicht bereit, grundsätzliche Entscheidugsfehle deiner Chefs ohne die entsprechende Gegenleisung wieder glattzubügeln.
Gruß, Daniel
Anzeige
AW: Klarstellung
25.10.2009 12:44:56
Uwe
Hallo Daniel,
grundsätzlich bin ich mit Deinem Vorschlag einverstanden. Letztlich dient dann der Betrag für Dich auch meiner persönlichen "Ausbildung".
Werde mir nunmehr erst mal Gedanken zu möglichen Details machen.
Ich melde mich!
Uwe
PS: Wäre auch ein Kontakt via Mail, Telefon und so möglich? Das wäre mir letztlich dann lieber, wenn`s ums Geld geht.
Wie VBA erlernen - meine Meinung dazu
25.10.2009 11:12:23
NoNet
Hallo Uwe,
so wie Du machen es wohl die meisten VBA-Anwender : Man "wächst" quasi durch die Aufgaben und Anforderungen in diese Materie und erlangt seine Kenntnisse dann durch "Learning by doing".
Diese Methode ist weit verbreitet und hat auch einige Vorteile (sofern man genügend Zeit hat, was in "laufenden Projekten" meist nicht der Fall ist und sofern man auch das nötige Durchstehungsvermögen hat). Allerdings hat es auch gravierende Nachteile : Man lernt die Möglichkeiten von VBA meist völlig unstrukturiert und zusammenhangslos, "versteht" daher meist nicht wie und wieso etwas funktioniert bzw. "stochert" im Nebel herum, wenn man etwas Unbekanntes zum ersten Mal programmieren soll.
Ein VBA-Kurs hingegen führt strukturiert an die Materie heran, vermittelt notwendiges Hintergrundwissen und kann so manches Unverständnis klären und bietet damit "Hilfe zur Selbsthilfe" für neue anstehende VBA-Aufgaben.
Daher sollte es auch für Vorgesetzte in Firmen kein Problem sein, seine Angestellte zu einem VBA-Kurs zu schicken (und die Kosten dafür zu übernehmen), wenn diese eine solche Tätigkeit ausüben sollen. In anderen Bereichen ist das ja auch eine Selbstverständlichkeit (Sicherheitstrainings, Staplerführerschein, etc.).
Nicht alles Wissen fällt immer "sofort und gratis" vom Himmel !
Weitere Statements zu diesem Thema kannst Du in diesem Beitrag und dem zugehörigen Thread nachlesen :
https://www.herber.de/forum/archiv/1076to1080/t1078089.htm#1078128
Gruß und viel Erfolg, NoNet
AW: Wie VBA erlernen - meine Meinung dazu
25.10.2009 11:42:17
Uwe
Hey Nonet,
vielen, vielen Dank für Deine Sicht der Dinge. Langsam beschlich mich schon das Gefühl ALLES falsch gemacht zu haben...
Tja, so ist das bei meinem Job. Die Worte "Na, dann machen Sie mal..." kann ich schon nicht mehr hören. Aber mir die Möglichkeit einer "Grundausbildung" (VBA) zu geben, sprich zu finanzieren? FEHLANZEIGE.
Ebenso mein Tarifwissen. Zähle unter Kollegen zur Zeit wohl als einer DER Kenner der Materie. Aber, nicht das ich diesbezüglich ausgebildet wurde... nein, das nicht. Arbeite seit Jahrzehnten schon in der Materie. Die Folge davon ist, das ich nunmehr Fortbildungen selber als Dozent leite.
Lange Rede, kurzer Sinn. Ich brauche nunmehr wen, der mich durch meine Fehler im anstehenden Projekt führt, mich zudem wirklich auf den richtigen Weg stößt. Dabei habe ich ein sehr, sehr dickes Fell und bin wahrlich über so manche Anfeindungen sicher nicht erboßt. Einzig läuft mir zur Zeit einfach die Zeit weg...
"Sie machen das schon..." bedeutete einfach seinerzeit (Mitte September) das ich bis Mitte November doch bitte fertig zu sein habe...
Tja, und jetzt...?
Mahlzeit
Uwe

197 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige