Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1508to1512
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
Zelle um eine Zahl addieren
08.08.2016 23:08:25
Denver
Hallo zusammen,
ist es möglich in Excel ein Makro zu schreiben, bei denen bestimmte Zellen eine Zahl hinzuaddiert wird, wobei die Zellen, wo die Zahl hinzuaddiert werden soll, jeweils der letzte Tag im Monat ist und man Tage wie z.B. Feiertage ausnehmen kann?
Ich habe diesen Code:
Sub KonstanteAddieren()
Dim Zelle As Range
Dim Eingabewert As Long
Eingabewert = InputBox("Bitte geben Sie den gewünschten Wert ein")
For Each Zelle In Selection
If Not (Zelle.HasFormula) Then
Zelle.Formula = "=" & Zelle.Value & "+" & Val(Eingabewert)
End If
Next Zelle
End Sub

Aber da muss ich eine Zelle auswählen. Ich möchte das automatisch machen, also Makro starten und der letzt Monatstag wird um eine Zahl addiert. Ganz schön kompliziert. Ich hoffe ihr versteht mich.
Gruß
Denver

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle um eine Zahl addieren
09.08.2016 08:39:08
baschti007
Wenn du nur den Letzten Tag des Jetziegen Monats haben willst dann so
Sub KonstanteAddieren()
Heute = Date
LastDatM = Day(DateSerial(Year(Heute), Month(Heute) + 1, 0))
DatumNew = CDate(LastDatM & "." & Format(Heute, "MM.YYYY"))
MsgBox DatumNew + 1
End Sub
Aber wenn du was mit Feiertagen haben willst du dann soll er den Wert neben den Zellen Addieren dann so
https://www.herber.de/bbs/user/107486.xlsm
Gruß Basti
AW: Zelle um eine Zahl addieren
09.08.2016 09:47:32
Denver
Super, vielen Dank dafür! Kann ich auch selbst Tage am Monatsende festlegen, bei denen nicht addiert werden soll? Also die z.B. keine Feiertage sind, sondern ganz normale Tage.
Anzeige
AW: Zelle um eine Zahl addieren
09.08.2016 09:50:26
Denver
und kann man das Makro so ändern, dass er den Wert nur am Ende des aktuellen Monats addiert und im nächsten Monat das Gleiche? Also dass man chronologisch macht?
AW: Zelle um eine Zahl addieren
09.08.2016 09:59:18
baschti007
Mach eine Beispiel Datei und schreib das rein wie es soll . ;)
Gruß Basti
AW: Zelle um eine Zahl addieren
09.08.2016 13:27:00
Denver
Also so sollte es sein:
Am Anfang: Zuerst sollen die Werte am Monatsende gelöscht werden und danach soll die Prozedur ausgeführt werden.
Die Addition soll am Monatsende erfolgen. Aber wenn der Monatsende ein Samstag oder Sonntag oder Feiertag ist, soll die Addition davor erfolgen. Außerdem müsste man Tag definieren können, vor denen die Addition erfolgen soll.
Ich weiß, das klingt kompliziert...
Anzeige
AW: Zelle um eine Zahl addieren
09.08.2016 14:16:57
baschti007
Was ist denn so schwer eine Beispiel Datei zu erstellen du möchtest doch Hilfe haben ;)
Und damit ist dann beiden geholfen weil ich nicht mal weiß was er addieren soll den ganzen Monat die ganzen Monats enden.
Also bitte eine Beispieldatei ;)
AW: Zelle um eine Zahl addieren
09.08.2016 14:42:50
Denver
Entschuldige, das muss ich dann heute Abend machen, weil ich gerade kein Zugang zu Excel habe. Danke und bis nachher
AW: Zelle um eine Zahl addieren
09.08.2016 16:44:01
Bastian
So Das Datum welches Du Bei Heute = "xxxx" angibts davon ermittelt er den Letzten Tag des Monats ist dieser Tag ein Feiertag ,Sa,So dann zieht er einen Tag ab und durchläuft nocheinmal die schleife bis er den Tag gefunden hat.
Gruß Basti
ps. du brauchst die Feiertage funktion aus meiner Letzten datei..
Sub KonstanteAddieren()
Dim DatumNew As Date
Heute = "01.05.2020" 'Date
LastDatM = Day(DateSerial(Year(Heute), Month(Heute) + 1, 0))
DatumNew = CDate(LastDatM & "." & Format(Heute, "MM.YYYY"))
Do
xx = Format(DatumNew, "DDD")
x = FeiertagDE(DatumNew, "NW")
If Not (Format(DatumNew, "DDD") = "Sa" Or Format(DatumNew, "DDD") = "So" Or Not FeiertagDE( _
DatumNew, "NW") = "") Then
MsgBox DatumNew: Exit Do
End If
DatumNew = DatumNew - 1
Loop
End Sub

Anzeige
AW: Zelle um eine Zahl addieren
10.08.2016 07:38:19
Bastian
Wieso lädst du es nicht hier hoch ?
HIer DIE Datei
Ich habe auch nicht mehr als Basiskenntnisse in Vba also nicht sehr schön der Code ich kann halt nur gut googlen =D
https://www.herber.de/bbs/user/107517.xlsm
Gruß Basti
AW: Zelle um eine Zahl addieren
10.08.2016 09:31:34
Denver
Habe den File-Upload gar nicht gesehen...danke dir, das hilft mir. Das hast du mit Google gemacht, Respekt!
Anzeige
AW: Zelle um eine Zahl addieren
10.08.2016 09:54:50
Denver
Das letzte was ich jetzt versuche ist, irgendeinen Tag z.B. 31.08 als Feiertag zu definieren, sodass auch dann keine Zahl addiert wird. Also dass ich selbst Tage am Monatsende definieren kann, wo keine Zahl addiert wird.
AW: Zelle um eine Zahl addieren
10.08.2016 11:03:07
Bastian
Denver du solltest dir bei soetwas immer am Anfang eine Struktur ausdenken da man sonst immer und immer wieder etwas verbessert und somit doppelt arbeitet , So was ist ziemlich nervig ;) Ja Googel aber sicher hole ich mir da nur die Codes aber am ende das zusammen bauen tu ich dann schon selber da es ja fast nie genau die gleichen codes gib ;)
Fahre meinen Code einfach mal von Hand F8 durch und gucke wann überprüft wird ob es ein Sa,So oder Feiertag ist und da musst du dann noch dein Datum eingeben ;)
Einfach mal selber versuchen weil so lernt man es , nicht das hier keiner helfen will aber es muss ja immer ein bissel Eigeninitiative kommen ;)
Kannst dich ja Später noch mal Melden wenn es wirklich nicht klappen sollte
Gruß Basti
Anzeige
AW: Zelle um eine Zahl addieren
10.08.2016 14:00:47
Denver
Top, danke dir!
AW: Zelle um eine Zahl addieren
10.08.2016 15:44:45
Bastian
Hallo Denver Ich hab eben noch mal geguckt einfach eine dictionary mit deinen SonderTage füllen lassen diese müssen aber am ende des Monats liegen Hab nun 2 Sonder Daten eingetragen
Gruß Basti
Sub finden()
Dim DatumNew As Date
Dim rngLetzterTag As Range
Dim Betrag As Double
Dim Heute As Date
Dim FT As String
Dim Dic As Object
Set Dic = CreateObject("scripting.dictionary")
With Dic
For Each it In Array("31.08.2016", "30.08.2016", "xx") ''--- Hier die Sonder Tage eintragen  _
;)
y = .Item(it)
Next
End With
Heute = Worksheets("Tabelle1").Range("A1") ' Erstes Datum der Tabelle1
Betrag = Worksheets("Tabelle1").Range("D1")
Do
LastDatM = Day(DateSerial(Year(Heute), Month(Heute) + 1, 0))
DatumNew = CDate(LastDatM & "." & Format(Heute, "MM.YYYY"))
Set rngLetzterTag = ThisWorkbook.Worksheets("Tabelle1").Columns("A:A").Find(What:=CDate( _
DatumNew), LookIn:=xlFormulas, LookAt:=xlWhole)
If rngLetzterTag Is Nothing Then Exit Do
DatumNew = rngLetzterTag.Value
Do
FT = FeiertagDE(DatumNew, "NW")
SonderTage (CStr(DatumNew))
If Not (Format(DatumNew, "DDD") = "Sa" Or Format(DatumNew, "DDD") = "So" Or Not FT = "" Or  _
Dic.exists(CStr(DatumNew)) = "Wahr") Then
rngLetzterTag.Offset(i, 1) = Betrag: Exit Do
End If
If Format(DatumNew, "DDD") = "Sa" Then rngLetzterTag.Offset(i, 1).Interior.ColorIndex = 4: _
rngLetzterTag.Offset(i, 1) = "Samstag"
If Format(DatumNew, "DDD") = "So" Then rngLetzterTag.Offset(i, 1).Interior.ColorIndex = 4: _
rngLetzterTag.Offset(i, 1) = "Sonntag"
If Not FT = "" Then rngLetzterTag.Offset(i, 1).Interior.ColorIndex = 4: rngLetzterTag. _
Offset(i, 1) = FT
If Dic.exists(CStr(DatumNew)) = "Wahr" Then rngLetzterTag.Offset(i, 1).Interior. _
ColorIndex = 6: rngLetzterTag.Offset(i, 1) = "SonderTag"
i = i - 1
DatumNew = DatumNew - 1
Loop
Heute = DateSerial(Year(Heute), Month(Heute) + 1, Day(Heute))
i = 0
Loop
End Sub

Anzeige
AW: Zelle um eine Zahl addieren
10.08.2016 20:01:42
Denver
Hey, danke! Ich hatte in dem alten Code eine einfach Lösung gefunden:

Do
FT = FeiertagDE(DatumNew, "NW")
If Not (Format(DatumNew, "DDD") = "Sa" Or Format(DatumNew, "DDD") = "So" Or Format(DatumNew, " _
DD.MM") = "31.08" Or Not FT = "") Then
rngLetzterTag.Offset(i, 1) = Betrag: Exit Do
End If
If Format(DatumNew, "DDD") = "Sa" Then rngLetzterTag.Offset(i, 1).Interior.ColorIndex = 4:     _
rngLetzterTag.Offset(i, 1) = "Samstag"
If Format(DatumNew, "DDD") = "So" Then rngLetzterTag.Offset(i, 1).Interior.ColorIndex = 4:
rngLetzterTag.Offset(i, 1) = "Sonntag"
If Format(DatumNew, "DD.MM") = "31.08" Then rngLetzterTag.Offset(i, 1).Interior.ColorIndex =  _
4:
rngLetzterTag.Offset(i, 1) = "Frei"
If Not FT = "" Then rngLetzterTag.Offset(i, 1).Interior.ColorIndex = 4: rngLetzterTag.Offset(i, _
1) = FT
i = i - 1
DatumNew = DatumNew - 1
Loop
Für mich der nächste Step ist es, zu schauen, ob ich den Code so ändere, dass er die Zahl nicht nur addiert, sondern bestehende Zahlen in den Zellen am Monatsende berücksichtigt und die Zahl dazu addiert.
Anzeige
AW: Zelle um eine Zahl addieren
10.08.2016 21:04:19
Bastian
Das mit dem Bestehenden Betrag Addieren hatten wir am anfang aber du hast du gesagt du willst das nicht =D
Du solltest dich mal entscheiden ;)
Gruß Basti
AW: Zelle um eine Zahl addieren
10.08.2016 21:39:55
Denver
Also ich meine:
in der Zelle am Monatsende steht: 50.
Das Makro für das Monatsende: 100.
Dann ändere ich die Zahl des Makros auf: 200.
Das Makro führe ich wieder aus und die 100 werden durch 200 ersetzt und auf die 50 in Zelle addiert.
Danke dir auf jeden Fall. Ich werde es probieren und wenns nicht klappt, mal nachfragen.
AW: Zelle um eine Zahl addieren
11.08.2016 07:34:35
Bastian
Genau so hatten wir das am Anfang =D da wolltest du es nicht :P

rngLetzterTag.Offset(i, 1) = rngLetzterTag.Offset(i, 1).Value + Betrag: Exit Do
Gruß Basti
Anzeige
AW: Zelle um eine Zahl addieren
11.08.2016 13:15:52
Denver
Nicht ganz wie am Anfang. Also die Zahl, die per Makro eingefügt wird, soll wieder abgezogen werden. Er soll nur eine bestehende Zahl in der Zelle berücksichtigen. Z.B. 100 steht in der Zelle und per Makro füge ich 300 hinzu. Dann ändere ich die Makro-Zahl von 300 auf 400. Die 100 in der Zelle sollen stehen bleiben.
Zelle: 100
Makro fügt 300 hinzu.
Jetzt ändere ich das Makro auf 400.
Er löscht die 300 und füht 400 hinzu :)
AW: Zelle um eine Zahl addieren
12.08.2016 17:04:58
Bastian
Tja dann hast du wohl etwas falsch gemacht in deinem abgeändertem code ;)
Bei mir geht es das er den Wert der dort steht um den Wert erhöt der unter Betrag steht Gruß Basti
https://www.herber.de/bbs/user/107587.xlsm
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige