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

Mittels VBA für entsprechend Monat Zahlen addieren

Mittels VBA für entsprechend Monat Zahlen addieren
10.11.2015 23:46:56
Manuel
Hey Leute,
ich versuche händeringend mit meiner jetzigen Makro alle positiven Zahlen in einer Tabelle zu addieren, jedoch entsprechend nach den Monaten. Sprich für Januar alle positiven Zahlen addiert, für Februar,... . Das gleiche möchte ich mit den negativen Zahlen machen.
Ich hab es bisher nur geschafft grundsätzlich die pos/neg Zahlen zu addieren, allerdings verlässt mich hier mein können.
Hier ist mein Code
Sub Summieren ()
Suchkred = 
Wie schaffe ich es dabei erstmal für Januar die Zahlen zu addieren?
Die Monatsangabe steht in Spalte 3 (TT.MM.JJJJ) und die zu addierenden Zahlen in Spalte 9. Bei der Tabelle kann es sein das mehrere Jahre auftreten.
Kann mir einer helfen?
Liebe Grüße und einen schönen Abend,
Manuel

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mittels VBA für entsprechend Monat Zahlen addieren
11.11.2015 03:48:37
Werner
Hallo Manuel,
hier mal meine Version für negative Werte, für positive kriegst du das wohl selbst angepasst. Ich habe da noch eine Eingabebox eingebaut für die Eingabe des Monats der ausgewertet werden soll. Ich nehme ja nicht an, dass du für jeden Monat den Code entsprechend anpassen willst.
Public Sub zählen()
Dim loLetzte As Long
Dim Monat As Long
Dim i As Long
Dim c As Range
Dim Eingabe As String
Dim wert As Long
Eingabe = InputBox("Den Monat der ausgewertet werden soll als Zahl eingeben!") 'Eingabebox für  _
Monat
If IsNumeric(Eingabe) Then 'Prüfen ob eingegebener Wert numerisch
Monat = CLng(Eingabe) 'wenn ja an Variable Monat übergeben
Else
If Eingabe  "" Then 'Wenn nein Meldung ausgeben
MsgBox "Die Eingabe war keine Zahl!"
Else
MsgBox "Abbruch durch den Anwender" 'bei Abbruch Meldung ausgeben
End If
Exit Sub
End If
loLetzte = Sheets("Upload_Inventory").Cells(Rows.Count, 3).End(xlUp).Row 'letzte Zeile in  _
Datumsspalte ermitteln
For Each c In ActiveSheet.Range("I3:I" & loLetzte) 'Bereich Zählen von I3 bis I-letzteZeile
If Month(c.Offset(, -6)) = Monat Then 'wenn Monat in Spalte C = 1 (Januar) dann
If c.Value 
Gruß Werner

Anzeige
AW: Mittels VBA für entsprechend Monat Zahlen addieren
11.11.2015 14:01:50
Manuel
Hallo Werner,
vielen Dank für deine Hilfe! Ich habe deinen Code ausprobiert und erhalte in dieser Zeile den Fehler "Typen unverträglich"
If Month(c.Offset(, -6)) = Monat Then 'wenn Monat in Spalte C = 1 (Januar) dann
Kannst du mir da nochmal behilflich sein?
Grüße,
Manuel

AW: Mittels VBA für entsprechend Monat Zahlen addieren
11.11.2015 14:22:26
Manuel
Da war ich wohl zu voreilig, nach neustart von Excel klappt jetzt alles perfekt!
Wenn ich den Makro anpassen will für eine andere Tabelle, bei der das Datum in Spalte 2 steht, müsste ich dann nur:
loLetzte = Sheets("Upload_Inventory").Cells(Rows.Count, 3).End(xlUp).Row
in
loLetzte = Sheets("Upload_Inventory").Cells(Rows.Count, 2).End(xlUp).Row
ändern?

Anzeige
AW: Mittels VBA für entsprechend Monat Zahlen addieren
11.11.2015 14:52:09
Werner
Hallo Manuel,
ja, aber den Offset mußt du auch noch anpassen. Im derzeitigen Code ist die Range (Zahlenwerte die du addieren willst) in Spalte I. Ausgehend davon wird mit dem Offset auf die Spalte verwiesen in der die Datumswerte stehen, hier Spalte C. Spalte I=9, Spalte C=3.
Offset(, -6) bedeutet: Spalte 9(I) -6 = Spalte 3(C)
Wenn weiterhin die Range in Spalte I liegt und die Datumswerte in Spalte 2 dann muss die Zeile
If Month(c.Offset(, -6)) = Monat Then 'wenn Monat in Spalte C = 1 (Januar) dann
noch in
If Month(c.Offset(, -7)) = Monat Then 'wenn Monat in Spalte C = 1 (Januar) dann
Gruß Werner

Anzeige
AW: Mittels VBA für entsprechend Monat Zahlen addieren
16.11.2015 17:50:27
Manuel
Hallo Werner,
hat alles wunderbar geklappt! Vielen Dank für deine Hilfe!
Grüße,
Manuel

AW: Mittels VBA für entsprechend Monat Zahlen addieren
16.11.2015 18:12:30
Manuel
Ich habe noch eine Frage zu einer Ergänzug:
Wie muss ich deinen Code umschreiben, wenn ich zusätzlich zu den Monaten auch noch unterschiedliche Jahre berücksichten möchte/muss.
Ich habe deinen Code so umgeschrieben, dass direkt alle Monate berechnet werden und man die Eingabe in die Inputbox nicht mehr benötigt.
Public Sub zählen_positiv()
Dim loLetzte As Long
Dim Monat As Long
Dim i As Long
Dim c As Range
Dim Eingabe As String
Dim wert As Long
For i = 1 To 12
Eingabe = i
wert = 0
If IsNumeric(Eingabe) Then 'Prüfen ob eingegebener Wert numerisch
Monat = CLng(Eingabe) 'wenn ja an Variable Monat übergeben
Else
If Eingabe  "" Then 'Wenn nein Meldung ausgeben
MsgBox "Die Eingabe war keine Zahl!"
Else
MsgBox "Abbruch durch den Anwender" 'bei Abbruch Meldung ausgeben
End If
Exit Sub
End If
loLetzte = Sheets("Upload_Inventory").Cells(Rows.Count, 2).End(xlUp).Row 'letzte Zeile in _
Datumsspalte ermitteln
For Each c In Sheets("Upload_Inventory").Range("I3:I" & loLetzte) 'Bereich Zählen von I3 bis I- _
letzteZeile
If Month(c.Offset(, -7)) = Monat Then 'wenn Monat in Spalte C = 1 (Januar) dann
If c.Value > 0 Then wert = wert + c.Value 'wenn Wert in I kleiner 0 dann zählen
End If
Next c
Sheets("Graphic_Inventory").Cells(i + 3, 2).Value = wert 'Wert in Zelle eintragen
Next i
End Sub
Wäre super wenn du mir hier nochmal unter die Arme greifen könntest.
Danke,
Manuel

Anzeige
AW: Mittels VBA für entsprechend Monat Zahlen addieren
16.11.2015 20:16:03
Werner
Hallo Manuel,
probiert das mal. Ich kann dir aber nicht sagen ob es funktioniert. Habe es mit dem Tablet geschrieben, kann derzeit nicht testen.
Wenn du das ganze Jahr auswerten willst dann kannst du dir sie Schleife über die Monate sparen und das Datum gleich auf das entsprechende Jahr prüfen.
Public Sub zählen()
Dim loLetzte As Long
Dim Jahr As Long
Dim i As Long
Dim c As Range
Dim Eingabe As String
Dim wert As Long
Eingabe = InputBox("Das Jahr bitte als 4-stellige Zahl eingeben!!") 'Eingabebox für  _
Jahr
If IsNumeric(Eingabe) Then 'Prüfen ob eingegebener Wert numerisch
If Len(Eingabe) = 4 Then 'Prüfen ob 4-stellig
Jahr = CLng(Eingabe) 'wenn ja an Variable Jahr übergeben
Else
If Eingabe  "" Then 'Wenn nein Meldung ausgeben
MsgBox "Die Eingabe war keine Zahl oder nicht 4-stellig!!"
Else
MsgBox "Abbruch durch den Anwender" 'bei Abbruch Meldung ausgeben
End If
End If
Exit Sub
End If
loLetzte = Sheets("Upload_Inventory").Cells(Rows.Count, 2).End(xlUp).Row 'letzte Zeile in   _
_
Datumsspalte ermitteln
For Each c In ActiveSheet.Range("I3:I" & loLetzte) 'Bereich Zählen von I3 bis I- _
letzteZeile
If Year(c.Offset(, -7)) = Jahr Then 'wenn Jahr in Spalte B = Eingabebox dann
If c.Value 
Gruß Werner
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige