Kann mir jemand beim Excelmakro helfen?

... komplette Frage anzeigen

4 Antworten

Ich sehe es wie suboptimierer - ich würde (s. Bild) in einer Spalte anzeigen lassen, ob es Vertragsverlängerungen gibt. Diese dann als Wert in Spalte A wieder einfügen.

Per Makro wäre es im Grund ein Dreizeiler

Sub verlaengerung()
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row 'ab Zeile 2 bis zur letzten benutzten Zeile in Spalte 1 = Spalte A
If Date > Range("D" & i).Value Then Range("a" & i).Value = WorksheetFunction.EDate(Range("A" & i), Range("C" & i))
Next
End Sub

Neben der Berechnung, ob es schon zu einer Vertragsverlängerung gekommen ist, ist bei deinem Fall nur ein weiterer Wert zu berechnen, der Kündigungstermin. Diesen könnte man unabhängig davon, ob die Vertragsverlängerung per Formel oder Makro ermittelt wird, mit edatum(A2;-B2) ermitteln oder hast Du das schon abgebildet?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Cappa90
11.11.2016, 12:57

Okay Makro macht also keinerlei Sinn.

So in etwa wie auf dem Bild dargestellt habe ich es mir vorgestellt ; Allerdings dass es keine Neue Spalte für das Vertragsende gibt, sondern, dass sich die eigentlich Spalte Vertragsende einfach aktualisiert.

0

Dafür brauchst du doch kein Makro, das lässt sich doch alles per Formel in der Tabelle erledigen.
Wenn du noch ein wenig Infos gibst könnte man mit konkreten Formeln helfen.

Ansonten musst du dir auch überlegen wie du das Ganze nachvollziehbar dokumentierst, Excel ist keine Datenbank.
So kann eine einfache Formel zwar automatisch ab dem 1.1.2017 das Vertragsende 30.06.2018 anzeigen, sofern bei Kündigung nicht "ja" steht.
Aber was passiert wenn du 2020 dann die Kündigung auf "ja" setzt, dann würde diese Formel plötzlich zurückspingen und Mitte 2017 als Enddatum errechnen.
Statt "ja" muss also auch klar hinterlegt sind gekündigt zum Datum....
Und man sollte sich überlegen ob man einfach das Enddatum aktulisiert oder ob ein Datenblatt nicht automatisch jedes Vertragsjahr neu und explizit auflistet (in der Form 3. automatische Verlängerung galt bis 30.06.2016, die 4. bis 30.06.2017 usw usw.) in der Schnellübersicht wird dann nur der Maximalwert des Endes aufgerufen und ist somit aktuell - aber man kann die genaue Laufzeit bei Bedarf noch schnell einsehen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Cappa90
11.11.2016, 12:54

Hallo,
Die Liste wird lediglich der Übersichtshalber benutzt. Gekündigte Verträge werden händisch daraus entfernt.
Deswegen ist letzteres schonmal nicht nötig.

Zu 1.
Es ist nicht wichtig obs dann zurückspringt.Dafür gäbe es dann andere Programme. Der Reiter Kündigung soll auch nicht Auslöser des "Wenns sein ", sondern der Reiter "Verlängerungsoptionen" in denen mit Ja oder nein geantwortet wird.

Was  für Daten werden denn noch benötigt? Ist es denn auch möglich die Formel für die Ganze Spalte zu kontruieren oder muss z.b.  in der ersten immer A1...B1 in der 5. dann A5 ect. pp reingeschrieben werden?

Aktuelles Vertragsende ist Spalte I

Kündigungsfrist in Monaten Spalte L

Datum Kündigung Spalze M

VerlängerungsOption Spalte N

Verlängerungszeitraum in Monaten Spalte O

0

Eigentlich brauchst Du kein Makro dafür.

Eine Formel setzt Dir alle Ergebnisse pro Zeile automatisch ein; abhängig von der Datum-Eingabe in (A).

So nun zu Deinem Problem:

Ich würde die jeweiligen Datum-Felder in etwa 2 Spalten teilen A= TT.MM und B= Jahreszahl oder A=TT, B=MM, C=JJ. Diese drei Spalten würde ich dann mit einer gemeinsamen Farbe hinterlegen, dass Du leicht ein Datum erkennst.

Dann brauchst Du am 1.1. jeden Jahres nur die Jahres-Spalte (hier im Muster C) in allen Zeilen +1 erhöhen und die Formeln pro Zeile ändern ja sofort alle anderen Jahreszahlen der Zeile mit.

Ich hätte das auch per Makro gelöst; mich stört allerdings das Schaltjahr. So kann ich also nicht 365 Tage auf ein normales Datum addieren. Wäre die einfachste Lösung. Mit Makro könnte man dann zeilenweise hochrechnen.

Versuchs mal. Ich bekomme Antworten von Dir mit E-Mail gesendet.

toi, toi, toi 

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Cappa90
11.11.2016, 13:15

Hallo undd anke für die Antwort,

Ich habe mich leider glaube ich leicht missverständlich ausgedrückt. Die 12 Monate Verlängerung waren lediglich ein Beispiel. von 60 Monaten bis 3 Monaten oder auch einem Monat ist so ziemlich alles dabei.

Sorry für die Mühe die du dir gemacht hast auf Grund meiner nicht eindeutigen Frage. War aber ne coole Idee.

Gruß

0

Wenn ich mir dein Sheet im geistigen Auge vorstelle, sehe ich keine Notwendigkeit, auf Makros zurück zu greifen. Die Dynamik enthält das Sheet durch die Funktion HEUTE(). 

Mittels EDATUM kannst du Monate aufaddieren, mit JAHR, MONAT und TAG ein Datum zerpflücken und mit DATUM zusammensetzen. Mit WENN kannst du Fallunterscheidungen realisieren, die z. B. auf das Jahr einen drauf rechnen, wenn das heutige Datum + Kündigungsfrist das Kündigungsdatum dieses Jahrs überschreiten würde.

Wo genau hapert es? Hast du einen Fehler? Was genau meinst du nur, mittels eines Makros lösen zu können?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Cappa90
11.11.2016, 12:23

Ich bin wirklich ein totaler Anfänger was das betrifft. Ich fürchte Makro war die falsche Begrifflichkeit, die ich dafür gewählt habe.

Ich brauche lediglich eine Funktion, die das oben dagestellte löst.Das was du geschrieben hast, hört sich schonmal vielversprechend an; Allerdings haperts bei mir bereits dadrin, wo und wie ich das von dir geschriebene umsetze.

0
Kommentar von Cappa90
14.11.2016, 09:06

Erstmal danke für die Antworten.
Auch wenn mein Nickname auf A endet, bin ich männlicher Natur ;)
Es ist ähnlich, wie Iamiam vermutet hat. Es geht um die Arbeit. Allerdings isses nicht so, dass mir diese Aufgabe gestellt wurde. Es ist lediglich eine sehr stumpfe Aufgabe, die zwischendurch der Übersichtshalber passieren muss und somit einfach Zeit frisst, welches ich umgehen möchte. Allerdings weisen sämtliche Kollegen/Kolleginnen ähnliches Geschick mit Excel auf, sodass ich da keine Hilfe erwarten kann.Somit konnte ich mir nicht einfach nen "einfacheres Beispiel" suchen, weil dies mir nicht helfen würde ;)

Aus der Formel, werde ich leider nicht so richtig schlau..

0

Was möchtest Du wissen?