Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBA - Summe berechnen

Frage Microsoft Microsoft Office

Mitglied: Avalon1

Avalon1 (Level 1) - Jetzt verbinden

25.06.2010 um 23:19 Uhr, 9456 Aufrufe, 6 Kommentare

In Spalte A Datum...in Spalte E Zahlen (Gewichte)
Solange in Spalte A gleiches Datum soll Spalte E summiert werden

Hello,

also wie schon kurz beschrieben habe ich im Sheet1 in Spalte A Daten in Form von zB: 1.6.10, 1.6.10, 1.6.10, 2.6.10, 2.6.10, etc.
stehen (natürlich untereinander und in Spalte E stehen in den gleichen Zeilen Gewichtswerte

Nun möchte ich alle Gewichte vom 1.6.10 zusammenzählen,
bei mir wär dass von E2 (weil ein 1. Zeile stehen Beschreibungen)
bis E15

Das Ergebnis sozusagen soll dann in Sheet2 eingetragen werden
und zwar wie folgt:

1.6.10 Summe Gewichter vom 1.6.10

Mein erster Einfall war mir Datum und Gewicht von Sheet1 zu holen
und mit einer Schleife immer das Datum zu prüfen und das Gewicht dann
zu addieren und das Endergebnis in Sheet2 eintragen
-> Hier hatte ich dass Problem, was mach ich wenn das Datum sich ändert
ih hatte hier eine ganze Menge Prüfungen und dann den Überblick verloren

Meine zweite Idee war mir das Datum aus Sheet1 zu holen
und mir zu merken in welcher Zeile das erste Datum steht ( zB: Zeile 2 )
und dann nach unten zu zählen so lange das Datum ident ist ( zb: Zeile 15 )
Die zwei Werte ( 2 und 15 ) speichern und dann hergehen und
sagen dass das Datum in Sheet2 in zB: A2 eingetragen wird
und dann daneben die Summe von Sheet1 E2:E15


Ideen hätte ich ja aber leider bin ich in VBA nicht so sattelfest....
vielleicht könnt ihr mir ja helfen.

Zur Zeit habe ich bei "Idee2" folgenden Code generiert:


Private Sub DatenSammlen_Walter_taegl()

Dim TempGewicht As Long
Dim SummeGewicht As Long

Dim TempDatum As Date
Dim PruefDatum As Date

Dim ZaehlerBeginn As Long

Dim ZaehlerEnde As Long
Worksheets("LKW-Walter_Daten").Activate
ZaehlerEnde = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

Dim ZaehlerSummeBeginn As Long
ZaehlerSummeBeginn = 2
Dim ZaehlerSummeEnde As Long

For ZaehlerBeginn = 2 To ZaehlerEnde
PruefDatum = Worksheets("LKW-Walter_Daten").Range("A" + Trim(Str(ZaehlerBeginn)))
Next ZaehlerBeginn


End Sub



Bis dato hab ich ja mal das Datum mit dem ich Pruefend in Sheet1 nach unten laufen will
Ich steh nur grad voll auf der Leitung.....vielleicht ist es auch schon ein bisserl spät....
....vielleicht habt ihr ja ein paar Inputs für mich!!

lg
ava
Mitglied: bastla
26.06.2010 um 00:17 Uhr
Hallo Avalon1!

Wenn Du keine Pivot-Tabelle verwenden willst, dann etwa so (für "Idee1"):
01.
Private Sub DatenSammlen_Walter_taegl() 
02.
Worksheets("LKW-Walter_Daten").Activate 
03.
ZaehlerBeginn = 2 
04.
ZaehlerEnde = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 
05.
 
06.
ZielTabelle = "Tabelle2" 
07.
ZielZeile = 2 
08.
 
09.
For QuellZeile = ZaehlerBeginn To ZaehlerEnde + 1 '+1, um auch die letzte Summe noch zu schreiben 
10.
    If Cells(QuellZeile, "A") <> Datum Then 'neue Gruppe 
11.
        If QuellZeile > ZaehlerBeginn Then 'Eintragen 
12.
            With Worksheets(ZielTabelle) 
13.
                .Cells(ZielZeile, "A") = Datum 
14.
                .Cells(ZielZeile, "B") = Summe 
15.
                ZielZeile = ZielZeile + 1 
16.
            End With 
17.
        End If 
18.
        Datum = Cells(QuellZeile, "A") 
19.
        Summe = Cells(QuellZeile, "E") 
20.
    Else 
21.
        Summe = Summe + Cells(QuellZeile, "E") 
22.
    End If 
23.
Next 
24.
End Sub
Voraussetzung ist natürlich, dass nach der Spalte A sortiert wurde ...
[Edit] Fehlenden "Else"-Zweig nachgereicht [/Edit]

Die zweite Variante (ist aber auch nur bedingt dynamisch - etwa, wenn nachträglich in der Quelltabelle noch eine Zeile an der richtigen Stelle eingefügt würde) sollte so zu machen sein:
01.
Private Sub DatenSammlen_Walter_taegl() 
02.
Worksheets("LKW-Walter_Daten").Activate 
03.
ZaehlerBeginn = 2 
04.
ZaehlerEnde = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 
05.
 
06.
ZielTabelle = "Tabelle3" 
07.
ZielZeile = 2 
08.
 
09.
VonZeile = QuellZeile 
10.
For QuellZeile = ZaehlerBeginn To ZaehlerEnde + 1 
11.
    If Cells(QuellZeile, "A") <> Datum Then 
12.
        If QuellZeile > ZaehlerBeginn Then 'Eintragen 
13.
            With Worksheets(ZielTabelle) 
14.
                .Cells(ZielZeile, "A") = Datum 
15.
                .Cells(ZielZeile, "B").Formula = "=SUM(" & ActiveSheet.Name & "!E" & VonZeile & ":E" & QuellZeile - 1 & ")" 
16.
                ZielZeile = ZielZeile + 1 
17.
            End With 
18.
        End If 
19.
        Datum = Cells(QuellZeile, "A") 
20.
        VonZeile = QuellZeile 
21.
    End If 
22.
Next 
23.
End Sub
Grüße
bastla
Bitte warten ..
Mitglied: 76109
26.06.2010 um 18:14 Uhr
Hallo Avalon1 und bastla!

So könnte Variante 2 (ähnlich bastlas Variante 2) auch funktionieren. Ist aber aus Zeitgründen nur oberflächlich getestet

01.
Option Explicit 
02.
 
03.
Const SheetDaten = "LKW-Walter_Daten" 
04.
Const SheetSummen = "Gewichts-Summen" 
05.
 
06.
Const DatenStartZeile = 2 
07.
Const SummenStartZeile = 2 
08.
 
09.
Private Sub DatenSammlen_Walter_taegl() 
10.
    Dim Datum As Date, DatenZeile As Long, MerkZeile As Long, SummenZeile As Long 
11.
 
12.
    Worksheets(SheetDaten).Activate 
13.
     
14.
    Datum = Cells(DatenStartZeile, "A") 
15.
    MerkZeile = DatenStartZeile 
16.
    SummenZeile = SummenStartZeile 
17.
     
18.
    For DatenZeile = DatenStartZeile To Cells(Rows.Count, "A").End(xlUp).Row + 1 
19.
        If Cells(DatenZeile, "A") <> Datum Then 
20.
            With Worksheets(SheetSummen) 
21.
               .Cells(SummenZeile, "A") = Datum 
22.
               .Cells(SummenZeile, "B") = WorksheetFunction.Sum(Range(Cells(MerkZeile, "E"), Cells(DatenZeile - 1, "E"))) 
23.
                Datum = Cells(DatenZeile, "A") 
24.
                MerkZeile = DatenZeile 
25.
                SummenZeile = SummenZeile + 1 
26.
            End With 
27.
        End If 
28.
    Next 
29.
End Sub
Gruß Dieter

[edit] Auf bastlas Anregung Daten-Summen-Spalte nach "E" geändert [/edit]
Bitte warten ..
Mitglied: bastla
26.06.2010 um 20:57 Uhr
@Dieter

Eigentlich ist Dein Vorschlag eine Mischung aus Variante 1 und 2, da zwar die Summenberechnung über "SUMME" erfolgt, in die Zielzelle aber nur das Ergebnis eingetragen wird ...

Die letzten beiden "B" der Zeile 22 sollten übrigens lt Angabe jeweils "E" sein ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
26.06.2010 um 22:54 Uhr
Hallo bastla!

Ups, bin wohl etwas aus der Übung

Habe im Moment noch viel mit Wohnung einrichten zu tun (derzeit Küche einbauen) und dachte mach mal ne Pause und spiel ein bischen.

Ob jetzt die Von- und Bis-Zellen ermittelt werden und dann die Formel oder die Summe in die Zielzelle geschrieben wird, kommt doch irgendwie auf's gleiche raus?
Es sei denn, die Werte werden nachräglich verändert, dann wäre es natürlich sinnvoller die Formel reinzuschreiben?

Gruß Dieter
Bitte warten ..
Mitglied: bastla
27.06.2010 um 00:12 Uhr
Hallo Dieter!
Ob jetzt die Von- und Bis-Zellen ermittelt werden und dann die Formel oder die Summe in die Zielzelle geschrieben wird, kommt doch irgendwie auf's gleiche raus?
Es sei denn, die Werte werden nachräglich verändert, dann wäre es natürlich sinnvoller die Formel reinzuschreiben?
Sehe ich auch so - und hinsichtlich der Formel habe ich ja oben schon die eingeschränkte Dynamik angemerkt (wobei sich auch nicht wirklich viel ändern würde, wenn anstelle von "SUMME" ein "ZÄHLENWENN" verwendet würde - es käme auch dann noch immer darauf an, dass alle Datumswerte in der zweiten Tabelle genau einmal aufscheinen) ...

Grüße
bastla

P.S.: Weiterhin viel Spaß beim Einrichten (auch wenn's manchmal eher "viel" als "Spaß" sein kann ) ...
Bitte warten ..
Mitglied: Avalon1
18.08.2010 um 20:10 Uhr
Hy

ich wollt mich bei euch für eure Tipps bedanken, aber ich bekomms nicht hin

ich mach das jetzt anders....hoffentlich klappt das!

lg
ava
Bitte warten ..
Neuester Wissensbeitrag
DSL, VDSL

Telekom blockiert immer noch den Port 7547 in ihrem Netz

(3)

Erfahrungsbericht von joachim57 zum Thema DSL, VDSL ...

Ähnliche Inhalte
VB for Applications
Excel VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Microsoft Office
gelöst Excel-Formel oder VBA (7)

Frage von nicki01 zum Thema Microsoft Office ...

VB for Applications
gelöst VBA-Makro verschwindet nach Speichern (5)

Frage von lupi1989 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...