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

Summen bilden und ausgeben

Summen bilden und ausgeben
13.09.2018 13:12:52
marco
Hallo Zusammen,
Ich habe hier meine Datei hochgeladen und komme leider nicht weiter.. Ich wäre sehr froh, wenn mir jemand damit helfen könnte.
Anbei die Original-Datei. Ich musste das Tabellenbaltt mit der Maske und zwei weiterer Tabellenblätter löschen, damit die Datei klein genug war, dass ich sie hochladen kann:
https://www.herber.de/bbs/user/123919.xlsm
Am besten schaust du dir meine Codes gar nicht erst an, weil es dir sonst sicherlich kalt den Rücken herunterlaufen wird.
Was mir noch fehlt:
Ich bräuchte ein Makro, dass mehrere Schritte ausführt:
1.) Die Daten in "Daten aus Maske & Summen" von A5:CB10 müssten in den Reiter "Rohdaten" unter den letzten EIntrag kopiert werden. (Also hier in die Zelle A78)
2.) Die Daten in "Daten aus Maske & Summen" von A5:CB10 müssten anschließend gelöscht werden.
3.) Parallel müssten die Daten "Daten aus Maske & Summen" von A5:J5 nach "Daten f. Auswertung" unter den letzten Eintrag kopiert werden. (Also hier in die Zelle A6)
4.) Anschließend müsste im Reiter "Daten f. Auswertung" in der Zelle K6 die Summe aus den Zellen, Reiter "Rohdaten" N78:N84 berechnet werden.
Weil wenn die Daten aus "Daten aus Maske & Summen" nach "Rohdaten" kopiert werden, befinden sich in den Zellen N78:N84 die verteilten 1er der Kategorie "Hilft bei trockener Haut (+)", die ich ja in "Daten f. Auswertung" für jede Kategorie aufsummiert haben möchte.
Das ganze müsste dann für alle 16 Kategorien ("Hilft bei trockener Haut", "Hilft bei..") inkl der jeweiligen Unterkategorien (+/-/kA) gemacht werden.
Außerdem kommt hinzu, dass ich jederzeit in "Rohdaten" händisch die 1er umverteilen können muss, die Summe in "Daten f. Auswertung" sich jedoch immer wieder aktualsiert.
Knackpunkt ist eben, dass es immer unterschiedlich viele Rezensionen und somit unterschiedlich viele Zeilen sein können.
Hättest Du eine Idee, wie ich dieses Problem angehen kann? Ich scheue nicht davor zurück, viel Arbeit reinzustecken, aber mir fehlt komplett der Ansatz.
Ich hoffe du kannst mir helfen und freue mich über eine Antwort.
Viiiieeeeeelen Dank,
Marco

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Marktforschung? (owT)
13.09.2018 13:25:32
Fennek
AW: Marktforschung? (owT)
13.09.2018 13:29:55
marco
Hallo Fennek,
ich schreibe eine Masterarbeit und will dafür die Rezensionen von Amazonkunden auswerten..
Daher auch meine Verzweiflung...
AW: Marktforschung? (owT)
13.09.2018 13:41:19
Fennek
Hallo Marco,
ein "solider" VBA-Programmierer wird dafür ca 1-2 Stunden brauchen, im Prinzip nicht sonderlich schwierig, aber viele Details müssen (häufig) kontrolliert werden. Für ein kostenloses Forum zu viel, für einen Kommilitonen, der gerade VBA gelernt hat, eine gute Übung.
mfg
AW: Marktforschung? (owT)
13.09.2018 13:45:09
marco
Hallo,
okay, ich dachte mir schon fast, dass das eine umfangreichere Geschichte wird.
Aber wäre es nicht möglich, dass ich nur anhand der ersten Kategorie ("Hilft bei trockener Haut" & "+") sehe, wie es grundsätzlich geht und es dann eben auf alle weiteren Kategorien ausweite?
Danke für die Einschätzung.
VG, Marco
Anzeige
AW: AHHHHHHHHHHHHHHHHH!!
13.09.2018 14:44:35
Fennek
Hallo Marco,
im Prinzip geht es einfach, ABER im Sheet "Rohdaten" gibt es 4 Spalten pro Thema, in "Auswerten" nur 3. Dies macht die Zuordnung unnötig schwierg.
Damit es später klappt, füge in der Originaldatei "Auswerten" jeweils die Spalte für "TF" ein. Nach der Auswertung kannst du die wieder löschen.
Lade eine geänderte Datei mit 3-4 Produkten hoch. (lösche bitte die Makros)
mfg

Sub T_1()
'von "Rohdaten" nach "Daten f. Auswertung"
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction
Dim Roh As Worksheet: Set Roh = Sheets("Rohdaten")
Dim Aus As Worksheet: Set Aus = Sheets("Daten f. Auswertung")
Dim RNG As Range
Dim Ar As Range
Dim R, R1 As String, R2 As String
Dim j As Integer, lr As Integer, Z As Integer
Set RNG = Roh.Range("A4", Roh.UsedRange.SpecialCells(xlCellTypeLastCell))
lr = Aus.Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each Ar In RNG.Columns(1).SpecialCells(xlCellTypeBlanks).Areas
'Debug.Print Ar.Address
R = Split(Ar.Address, ":")
R1 = Range(R(0)).Offset(-1).Row
R2 = Range(R(1)).Row
For j = 14 To Roh.Cells(2, Columns.Count).End(xlToLeft).Column
Z = WSF.Sum(Range(Roh.Cells(R1, j), Roh.Cells(R2, j)))
If Z Then Aus.Cells(lr, j - 3) = Z
Next j
Next Ar
Set Aus = Nothing
Set Roh = Nothing
End Sub

Anzeige
AW: lass mal ...
13.09.2018 15:02:19
Fennek
es ist einfacher, wenn ich meinen Code anpasse ...
AW: lass mal ...
13.09.2018 15:05:49
marco
Hallo,
Vielen vielen Dank für deine Hilfe!!!
Mir ist es egal, ich mache es so, wie du es sagst.:)
VG, Marco
AW: Spalten müssen passen!
13.09.2018 15:24:41
Fennek
Hallo,
die Verschiebung durch "TF" habe ich im Griff, aber es gibt Unterschiede in den Blöcken. Das sollte nicht sein.

Sub T_1()
'von "Rohdaten" nach "Daten f. Auswertung"
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction
Dim Roh As Worksheet: Set Roh = Sheets("Rohdaten")
Dim Aus As Worksheet: Set Aus = Sheets("Daten f. Auswertung")
Dim RNG As Range
Dim Ar As Range
Dim R, R1 As String, R2 As String
Dim j As Integer, lr As Integer, Z As Integer, v As Integer
With Roh
Set RNG = .Range("A4", .UsedRange.SpecialCells(xlCellTypeLastCell))
For Each Ar In RNG.Columns(1).SpecialCells(xlCellTypeBlanks).Areas
lr = Aus.Cells(Rows.Count, 1).End(xlUp).Row + 1
v = 3
'Debug.Print Ar.Address
R = Split(Ar.Address, ":")
R1 = Range(R(0)).Offset(-1).Row
R2 = Range(R(1)).Row
.Range(.Cells(R1, 1), .Cells(R1, 10)).Copy Aus.Cells(lr, 1)
For j = 14 To .Cells(2, Columns.Count).End(xlToLeft).Column
If .Cells(3, j) = "TF" Then v = v + 1
Z = WSF.Sum(Range(.Cells(R1, j), .Cells(R2, j)))
If Z Then Aus.Cells(lr, j - v) = Z
Next j
Next Ar
End With
Set Aus = Nothing
Set Roh = Nothing
End Sub
Eine finanzielle Honorierung wäre angemessen.
mfg
Anzeige
AW: Sheet "Maske"?
13.09.2018 15:45:06
Fennek
Hallo,
was soll das Blatt "Daten aus Maske & Summen"? Habe ich bisher ignoriert.
mfg
AW: Sheet "Maske"?
13.09.2018 16:57:20
marco
Hallo,
ja das mit den Blöcken ist natürlich falsch. Ich habe es in der Datei geändert.
Nun berechnet das Makro den letzten (neu dazugefügten)Block "Ergiebigkeit" nicht mehr...:(
https://www.herber.de/bbs/user/123935.xlsm
Ich habe versucht deinen COde zu entschlüsseln, aber habe leider nicht verstanden, wie ich den Block "Ergiebigkeit" auch noch mit aufnehmen kann.
Könntest du das eventuell noch kurz in dem Code anpassen?
(Shame on me, dass ich noch nichtmal das hinbekomme!)
Was schwebt dir denn bezüglich der Honorierung vor?
VG und 1.000 Dank!!!
Marco
Anzeige
AW: läuft, bitte prüfen
13.09.2018 17:13:23
Fennek
Hallo,
ich habe den Bereich um 3 Spalten erweitert. Der Code läuft fehlerfrei durch und die erste und letzte Summe stimmt.
Prüfe bitte eine größere Stichprobe.

Sub Auswertung_aktualisieren()
'von "Rohdaten" nach "Daten f. Auswertung"
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction
Dim Roh As Worksheet: Set Roh = Sheets("Rohdaten")
Dim Aus As Worksheet: Set Aus = Sheets("Daten f. Auswertung")
Dim RNG As Range
Dim Ar As Range
Dim R, R1 As String, R2 As String
Dim j As Integer, lr As Integer, Z As Integer, v As Integer
With Roh
Set RNG = .Range("A4", .UsedRange.SpecialCells(xlCellTypeLastCell))
For Each Ar In RNG.Columns(1).SpecialCells(xlCellTypeBlanks).Areas
lr = Aus.Cells(Rows.Count, 1).End(xlUp).Row + 1
v = 3
'Debug.Print Ar.Address
R = Split(Ar.Address, ":")
R1 = Range(R(0)).Offset(-1).Row
R2 = Range(R(1)).Row
.Range(.Cells(R1, 1), .Cells(R1, 10)).Copy Aus.Cells(lr, 1)
For j = 14 To .Cells(2, Columns.Count).End(xlToLeft).Column + 3
If .Cells(3, j) = "TF" Then v = v + 1
Z = WSF.Sum(Range(.Cells(R1, j), .Cells(R2, j)))
If Z Then Aus.Cells(lr, j - v) = Z
Next j
Next Ar
End With
Set Aus = Nothing
Set Roh = Nothing
End Sub
mfg
(100€ als Amazon-Gutschein an meine PN bei www.clever-excel-forum.de sind ok)
Anzeige
AW: läuft, bitte prüfen
14.09.2018 16:58:37
marco
Hallo,
ich danke dir recht herzlich, der Code funktioniert!
Bezüglich deiner erwarteten finanziellen Honorierung in Höhe von 100€ muss ich dir ganz erhlich sagen, dass ich das schon etwas hetfig finde.
Das hier ist immer noch ein Forum, in dem sich Leute grundsätzlich auf freiwilliger Basis gegenseitig in Sachen Excel/VBA helfen - was ja auch m.E. eine wunderbare Sache ist!
Hättest Du mir gesagt, dass du den Leuten in diesem Forum nur für eine finanzielle Honorierung hilfst, hätte ich mir etwas anderes einfallen lassen müssen.
Ich finde es schon irgendwie schade, dass eine solche Plattform direkt zum Geldverdienen genutzt wird.
Versteh mich nicht falsch, ich bin dir wirklich sehr dankbar für deine Hilfe, aber den Leuten anschließend (über ein schlechtes Gewissen) das Geld aus der Tasche zu ziehen, finde ich irgendwie nicht richtig.
Ich hoffe du kannst das nachvollziehen und hilfst den Leuten trotzdem weiterhin bei Ihren Problemen, weil eine solche (sehr gute) Einstellung die Welt besser macht und wir nicht alle zu einem Donald werden. ;)
Ich danke dir aufrichtig und wünsche dir ein schönes Wochenende.
Viele Grüße
Marco
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige