# #Excel#  summierungen und liquidation von dazugehörigen summandenfeldern



## webcamping (10. Oktober 2008)

Hallo Community,

ich bin Praktikant am Uni-Klinikum in Greifswald und habe ein Problem mit der Bearbeitung einer excel Tabelle.

Leider ist es mir nicht gestattet eine Kopie der zu bearbeitenden Datei bereitzustellen.

Ich werd das Problem also umschreiben.

Tabelle- 5 Spalten, 1000+ Zeilen
Spalten: Name, Nummer, Anzahl, Summe der Anzahlen etc.

Entscheidend ist das Feld: "Nummer" und "Anzahl" und "Summe der Anzahlen"
Ein Beispiel:

1. Martin Schmidt | 2007556677 | 3 | 9 |
2. Martin Schmidt | 2007556677 | 3 | 6 |
3. Martin Schmidt | 2007556677 | 3 | 3 |
4. Sven Hannawald | 2007112233 | 2 | 6
5. Sven Hannawald | 2007112233 | 2 | 4
6. Sven Hannawald | 2007112233 | 2 | 2

In der Reihenfolge (Spalten): 
Name, Nummer, Anzahl, Summe der Anzahl
Für uns ist allerdings nur das Feld 1 relevant, alle Anderen sollen gelöscht werden.
(und das möglichst nicht manuell). Für den Fall Sven Hannawald ist dann das Feld 4 relevant usw..
Summe der Anzahl wird mit der Formel:
=SUMMEWENN(B1:C452;B1:B452;C1:C452) berechnet.
Dies kann oder sollte vielleicht sogar geändert werden.
Natürlich müssen die ermittelten Summen visuell erhalten bleiben.

Zusammegefasst: 
Summierung erneuern und Summandenfelder löschen.

Ich hoffe auf eine positive Antwort
In erwartungsvoller Haltung

Viele Grüße und schonmal vielen Dank im voraus
Thomas Jany


----------



## Zvoni (10. Oktober 2008)

Uhhm, so ganz verstanden habe ich die Problemstellung nicht.

Kannst du mal nen vorher/nachher Zustand hier rein stellen?

Also das vorher steht ja oben, aber wie soll das Ergebnis dann aussehen?


----------



## webcamping (10. Oktober 2008)

Vorher:

1. Martin Schmidt | 2007556677 | 3 | 9 |
2. Martin Schmidt | 2007556677 | 3 | 6 |
3. Martin Schmidt | 2007556677 | 3 | 3 |
4. Sven Hannawald | 2007112233 | 2 | 6 |
5. Sven Hannawald | 2007112233 | 2 | 4 |
6. Sven Hannawald | 2007112233 | 2 | 2 |


Nacher:

1. Martin Schmidt | 2007556677 | 3 | 9 |
2. Sven Hannawald | 2007112233 | 2 | 6 |


----------



## webcamping (10. Oktober 2008)

Nachtrag (Spalten: Name; Nr.; Anzahl; Summe- Anzahl): 

1. Martin Schmidt | 2007556677 | 3 | 9 |

Letztlich Spielt das Feld "Anzahl" ebenfalls keine Rolle mehr,
es dient im Grunde nur der Summierung.
Zur Auswertung wird nur das Feld "Summe-Anzahl" herangezogen.


----------



## Zvoni (10. Oktober 2008)

```
Dim i As Long

For i=LetzteZeile To ErsteZeile Step-1   'LetzteZeile und ErsteZeile entsprechend anpassen

    If Tabelle1.Cells(i,1)=Tabelle1.Cells(i-1,1) Then

        Tabelle1.Cells(i-1,4)=Tabelle1.Cells(i,3)+Tabelle1.Cells(i-1,3)
        Tabelle1.Rows(i).Delete

    End If

Next
```


----------



## webcamping (10. Oktober 2008)

wie wende ich dieses Skript auf die Tabelle an?


----------



## Zvoni (10. Oktober 2008)

In Excel:
Menü "Extras - Makro - Visual Basic Editor"

Doppelclick auf Tabelle1
folgenden Code 1:1 eingeben:

```
Sub Main()
Dim i As Long

      For i=LetzteZeile To ErsteZeile Step-1   'LetzteZeile und ErsteZeile entsprechend anpassen
   
          If Tabelle1.Cells(i,1)=Tabelle1.Cells(i-1,1) Then

              Tabelle1.Cells(i-1,4)=Tabelle1.Cells(i,3)+Tabelle1.Cells(i-1,3)
              Tabelle1.Rows(i).Delete
 
          End If
 
      Next

End Sub
```

Wenn du den Code eingeben hast, einfach auf F5 drücken

EDIT: Wupps. Natürlich nicht 1:1 - Du musst "LetzteZeile" und "ErsteZeile" entsprechend ersetzen
Es muss irgendwie so aussehen dann:

For i=3586 To 2 Step-1


----------



## webcamping (10. Oktober 2008)

das hat leider nicht funktioniert- es mündete in einen Fehler "1004" Laufzeiterror.

Ich will es nochmal ein wenig konkretisieren:
hab mich in absprache dazu entschlossen es grafisch zu verdeutlichen...

darin alles weitere.

vielen Dank für die Mühen
Thomas


----------



## webcamping (10. Oktober 2008)

nachtrag:

die spalte "wahr" kann entfernt werden.


----------



## Zvoni (10. Oktober 2008)

Du musst natürlich die Spalte anpassen im Code oben. Ich bin von deinem Beispiel ausgegangen, welches in diesem Fall die 4. Spalte wäre.

Tabelle1.Cells(i-1,*4*)=Tabelle1.Cells(i,*3*)+Tabelle1.Cells(i-1,*3*)

Spalte 4 musst du mit der Zielspalte ersetzen, in deinem Fall Spalte "G", also aus der 4 eine 7 machen.

EDIT: Lösch mal die komplette Spalte "G" (Zielspalte) BEVOR du den Code ausführst!


----------



## Zvoni (10. Oktober 2008)

Nachtrag: Natürlich bekommst du einen Laufzeitfehler, da du keine Spaltenüberschriften hast.
In deinem Fall lautet die Schleife:

```
For i=3587 To 1 Step-1   '3587 ist jetzt eine Fantasie-Zahl, welches deine unterste Zeile darstellen soll

'blablabal

Next
```
Sobald i=1 erreicht wird, wird der Fehler ausgelöst, da der Vergleich versucht auf Zeile "0" zuzugreifen, welche in Excel nicht existiert.


----------



## ronaldo84 (10. Oktober 2008)

Der Code von Zvoni nur angepasst. Ich würde immer über das ActieSheet gehen.

```
Sub Main()
Dim i As Long

     For i = ActiveSheet.UsedRange.Rows.Count To 2 Step -1
   
          If ActiveSheet.Cells(i, 1) = ActiveSheet.Cells(i - 1, 1) Then

              ActiveSheet.Cells(i - 1, 3) = ActiveSheet.Cells(i, 3) + ActiveSheet.Cells(i - 1, 3)
              ActiveSheet.Rows(i).Delete
          End If
 
      Next

End Sub
```

€: Vielleicht solltest du dich au mal über Gruppierungen und Teilmengen in Excel informieren.
http://www.online-excel.de/excel/singsel.php?f=92#s2


----------



## webcamping (10. Oktober 2008)

ich hab dir nochmal zwei private messages geschickt.


----------



## Zvoni (10. Oktober 2008)

webcamping hat gesagt.:


> ich hab dir nochmal zwei private messages geschickt.



Mein Code war innerhalb von 30 Sekunden fertig. Siehe Anhang


----------



## webcamping (10. Oktober 2008)

nun ja hier die anforderung nochmal spezifiziert!

grafik: http://www.dauerbau.de/anforderung.gif

xls: http://www.dauerbau.de/anf.zip


----------



## Zvoni (10. Oktober 2008)

Arrrghhh. Mist. Das primäre Kriterium ist Spalte 2 und nicht Spalte 1.

Moment, ich pass das mal an.


----------



## webcamping (10. Oktober 2008)

leider hab ich kein office vista. bitte in office 2003 format speicher! danke


----------



## webcamping (10. Oktober 2008)

habe leider kein office vista.
kannst du das bitte in office 2003 kompatiblen format ablegen und erneut senden.

danke


----------



## Zvoni (10. Oktober 2008)

So jetzt müssts stimmen


----------



## webcamping (10. Oktober 2008)

unglaublich was so alles möglich ist.
was konkret hast du denn jetzt mit der spalte "f" gemacht- (wo die summen gebildet werden)?


----------



## Zvoni (13. Oktober 2008)

Spalte F wurde komplett gekillt, da die Formeln, welche in den Excel-Zellen standen, nicht mehr benötigt wurden, da die Berechnung direkt durch das Makro ablief.


----------

