Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen

Summe nach Monaten | Herbers Excel-Forum


Betrifft: Summe nach Monaten von: Becker
Geschrieben am: 21.10.2008 19:56:12


Hallo Ihr lieben,

Ich möchte in "KalendarSummeNachMonat" noch paar Kleinigkeiten dazu bauen.
Hat jemand eine Ahnung wie ich das anstellen könnte?
Unten in Code kommentiere ich meine Fragen aus;

Sub KalendarSummeNachMonat()

Dim sGod$
Dim i%, n%, r%, s%
Dim cCel As range

Application.ScreenUpdating = False

sGod = InputBox("Kalendar za:", , Year(Date))
If sGod = "" Then Exit Sub
range("L1") = "Datum"
range("N1") = "Woche"
range("O1") = "Daly-Sum"
With range("L1:O1")
With .Font
.Bold = True
.Size = 10
.ColorIndex = 36
End With
.Interior.ColorIndex = 12
End With
If sGod Mod 4 = 0 Then n = 367 Else n = 366
range("L2,M2") = DateSerial(sGod, 1, 1)
range("L3").Formula = "=L2+1"
range("M3").Formula = "=L2+1"
range("N2:N3").Formula = "=Woche(L2)"
range("L3:N" & n).FillDown
range("L2:N" & n).Copy
range("L2:N" & n).PasteSpecial (xlValues)
range("M2:M" & n).NumberFormat = "dddd"
range("M1") = "Dan"
range("M1").HorizontalAlignment = xlRight
'WE ferbän
r = 2
Do Until IsEmpty(Cells(r, 12))
If Weekday(Cells(r, 12)) = 7 Then
range(Cells(r, 12), Cells(r, 14)).Interior.ColorIndex = 37
ElseIf Weekday(Cells(r, 12)) = 1 Then
range(Cells(r, 12), Cells(r, 14)).Interior.ColorIndex = 22
End If
r = r + 1
Loop

Columns("L:N").EntireColumn.AutoFit
Columns("M:N").Select
Selection.Delete Shift:=xlToLeft
range("M2").Select
range("M2:M3").Formula = "=SUMIF(C[-9],RC[-1],C[-7])"
range("M3:M" & n).FillDown

'Frage a)
'wie kann man ab hier den Befehl einbauen; im Spaltenbereich
'L:M (in vertikalen Kalender Bereich)
'zwei leere Spalten am Ende des jeweiligen Monat einfügen?
' Als Beispiel; range("L32:M33").Select
'Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
'dann solle in L32 "Gesamm"(range("L32") = "Gesamt") stehen
'und in M32 Formel Summe(M2:M31)
'Frage b)
'Ist es möglich danach dass in erste freie Spalte z.B.
‘N1:N12 die Monaten von Jänner-Dezember ausgeschrieben
'werden und von O1:O12 dessen Monats Summen aus Spalte M???

End Sub



Public Function Uskrs(Gd As Integer)
 Dim D As Integer
 D = (((255 - 11 * (Gd Mod 19)) - 21) Mod 30) + 21
 Uskrs = DateSerial(Gd, 3, 1) + D + (D > 48) + _
 6 - ((Gd + Gd \ 4 + D + (D > 48) + 1) Mod 7)
 End Function



Function Sedmica(Datum As Date) As Integer
Dim t&
t = DateSerial(Year(Datum + (8 - Weekday(Datum)) Mod 7 - 3), 1, 1)
Sedmica = (Datum - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1
End Function



Public Function Uskrs(Gd As Integer)
 Dim D As Integer
 D = (((255 - 11 * (Gd Mod 19)) - 21) Mod 30) + 21
 Uskrs = DateSerial(Gd, 3, 1) + D + (D > 48) + _
 6 - ((Gd + Gd \ 4 + D + (D > 48) + 1) Mod 7)
 End Function



Function Sedmica(Datum As Date) As Integer
Dim t&
t = DateSerial(Year(Datum + (8 - Weekday(Datum)) Mod 7 - 3), 1, 1)
Sedmica = (Datum - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1
End Function



Ich hoffe Ihr könnt mir weiterhelfen...

Für jede Hilfe bin ich sehr dankbar.

MfG Daniel

  

Betrifft: AW: Summe nach Monaten von: Rocky
Geschrieben am: 24.10.2008 07:46:06

Hallo Daniel,

ich weiß je nicht wie es den anderen geht, aber ich weiß gar nicht was und wo du was machen willst. Beschreib mal dein Ziel. Den Code basteln wir dann schon. Schön sind auch immer Tabellen als Beispiel. Vorher - Hachher

Gruß

Martin


  

Betrifft: AW: Summe nach Monaten von: Becker
Geschrieben am: 24.10.2008 17:37:33

Hallo Martin,

Sorry daß ich mein Ziel nicht ausfürlicher erklärt habe.
Alle Tabellen haben gleiche Daten Struktur A:K (Artikel Numer, Artikel Name, Einkaufs&Verkaufs Datum, Summe der verkauften Mengen, Lager Bestände usw.).
Aus diesen Daten wollte ich;
a)Summe der verkauften Artikel an einzelnen Tagen (Formel "=SUMMEWENN(D:D;L2;F:F)" wissen
b) und danch wollte ich die gesammt Summe nach Monaten haben

Daher fing ich mit den Makro Kalender; d.h. in Spalte "L" wird das richtige Jahr ausgeschrieben und in diesen Makro habe ich gleich den Code erweitert das in Spalte M die Formel

range("M2:M3").Formula = "=SUMIF(C[-9],RC[-1],C[-7])"

geschrieben wird. Nach dem das Makro ausgefürt wird, in Spalte "L2:L367" stehet dann Datum von Jäner bis Dezember, in Spalte "M" stehet die Formel "=SUMMEWENN(D:D;L2;F:F)" und da sehe ich wie hoch ist der Lager Bestand an 01.01.2008 gewesen, bzw. ganzes Jahr kann ich nach Tages Ablauf die Bestände verfolgen. Bis dahin habe ich es hingekriegt.
Gestern hatte ich noch in Forum die Formel (Summe nach Monaten) entdeckt;
{=SUMME(WENN(MONAT($L$2:$L$370)=1;$M$2:$M$370))}
und die habe ich gleich mit Makro Recorder aufgenom und in den Kalender Code dazu gebaut.

range("O2").FormulaArray = "=SUM(IF(MONTH(R2C12:R370C12)=1,R2C13:R370C13))"

Damit werde ich (hoffentlich) das alleine noch hinkriegen und damit ist mein Problem gelöst.

MEINE LETZTE FRAGE;
Wenn ich in den Code den Abfrage Fenster auslassen möchte

sGod = InputBox("Kalendar za:", , Year(Date))

wie kann man die Schleife verändern das die gleich Spalte "D2" nach Jahr abfragen.
In D2 steht immer das Jahr und nach diesen Jahr der in D2 Spalte ist wird dan automatisch Kalender geschrieben.
Mich stört die Abfrage Fenster nicht aber ich bin der Anfänger in VBA und wollte wissen ob so was möglich ist wenn ja wie kann man das anstellen.

Vielen Dank Martin das Du Dir Zeit genommen hast und mich drauf hingewisen hast das mein Ziel Frage nicht richtig formuliert wurde.

Netten Gruß Daniel


  

Betrifft: AW: Summe nach Monaten von: Rocky
Geschrieben am: 24.10.2008 18:24:34

Hallo nochmal,

du hast das je sehr ausführlich beschrieben. Ich werd mal versuchen ein Tabelle nach deinen Angaben zu bauen. Besser wäre wenn du mal ne ausgedünnte Datei hochlädst. Und Makier deine Frage als offen. so bekommst du auch von anderen Hilfe.


Gruß Martin


  

Betrifft: AW: Summe nach Monaten von: Rocky
Geschrieben am: 24.10.2008 18:42:11

So hab glaub ne Idee die dir auch VBA erspart.

Mach ne Spalte und Schreib rüber Monat dann

=Monat("deine Datumszelle")

Und dann machst du wieder =summewenn("spalte mit deinen Monaten";"Monat bzw. Zelle mit Suchkreterium"; "Spalte mit den Daten die Summiert werden sollen")

fertig

Die Spalte mit den Monaten kann man ja dann ausblenden oder Gruppieren.

Gruß

Martin


  

Betrifft: AW: Summe nach Monaten-IHR ALLE SEIT SPITZE von: Becker
Geschrieben am: 25.10.2008 09:28:09

Hallo Rocky,

DAANNNNNKKKKEEEEEEEE DDDDDIIIIIIIRRRRRRRRRRRRRRRRRRRR!
ECHT KLASSE LÖSUNG!!!!!!!!!
Rocky danke Dir wenn man so viel Erfahrung in Excel hat dan hat und wenn man sich damit sehr gut auskennt dann kamnn man so sehr gute und sehr interessante Lösungen anbieten.
Bin total begeistert.
Vielen vielen vielen Dank und schönes WE noch.
Gruß Daniel


  

Betrifft: AW: Summe nach Monaten-IHR ALLE SEIT SPITZE von: Rocky
Geschrieben am: 25.10.2008 18:36:06

Nichts zu danken.

Machen wir gern


Beiträge aus den Excel-Beispielen zum Thema "Summe nach Monaten"