Microsoft Excel

Herbers Excel/VBA-Archiv

Zellen über VBA addieren

Betrifft: Zellen über VBA addieren
von: Klaus
Geschrieben am: 16.04.2003 - 08:47:33

Hallo,
ich kenne mich leider in VBA noch nicht so gut aus und habe daher eine Frage:
Ich habe eine Excelliste mit 7 Spalten. In der Spalte B habe ich KUndennummer stehen, die mehrfach vorkommen. In der Spalte D ist ab und an eine Zahl eingetragen (entweder ist die Zelle leer oder eine 1). Nun soll jede Kundennummer nur 1x in der Liste auftauchen und die Zahlen in der Spalte D addiert werden.

Ich habe den VBA-Code nun soweit das die Kundennummer nur 1x in der Liste auftaucht, doch bekomme ich die Berechnung nicht hin. Mein Code bisher lautet:
Sub Doppelte_löschen()
Range("B:B").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Range("B1").Select
nr = ActiveCell
zellende = Range("B" & Rows.Count).End(xlUp).Row
Do
ActiveCell.Offset(1, 0).Range("A1").Select
If ActiveCell = nr Then
Selection.EntireRow.Delete
ActiveCell.Offset(-1, 0).Range("A1").Select
End If
nr = ActiveCell
Loop Until ActiveCell = Range("B" & zellende + 1)
End Sub

Ich wäre sehr dankbar, wenn mir jemand die Befehle in den Code einflicken könnte oder mir verständlich erklärt wie es geht.

Gruß
Klaus

  

Re: Zellen über VBA addieren
von: Nike
Geschrieben am: 16.04.2003 - 09:30:04

Hi,
probier das mal aus:


Sub SumSpalteD()
Dim rngStep As Range
Range("B:B").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Set rngStep = Range("B1")
zellende = Range("B" & Rows.Count).End(xlUp).Row
Do
    If rngStep.Offset(1, 0) = rngStep Then
        rngStep.Offset(0, 2) = rngStep.Offset(0, 2) + rngStep.Offset(1, 2)
        rngStep.Offset(1, 0).EntireRow.Delete
    Else
        Set rngStep = rngStep.Offset(1, 0)
    End If
Loop Until rngStep.Offset(1, 0) = ""
End Sub

Bye

Nike

  

Re: Zellen über VBA addieren
von: Klaus
Geschrieben am: 16.04.2003 - 09:45:24

Hallo Nike,
es funktioniert.

Tausend Dank und Gruß
Klaus

  

Antwort heißt: Pivot-Tabelle !!!
von: Yal
Geschrieben am: 16.04.2003 - 09:49:36

Klaus,

schaue Dir unbedingt die Funktionalitäten von Pivot-Tabellen (im Menü "Daten"), es deckt deine Vorgabe ohne Makro und ist damit wartungsfreundlicher und erweiterungsfähiger.

Yal

  

Re: Antwort heißt: Pivot-Tabelle !!!
von: Nike
Geschrieben am: 16.04.2003 - 10:02:01

Hi Yal (Yal steht für?)

Pivot geht halt nur bis zu ner gewissen Größe,
ich weiß ja nicht wie groß die Liste ist.
Er wollte ja die Zeilen löschen,
also das ganze ein bischen "eindampfen" ;-)

Bye

Nike

  

Re: Antwort heißt: Pivot-Tabelle !!!
von: Klaus
Geschrieben am: 16.04.2003 - 10:06:52

Hallo Nike und Yal,

meine Liste hatte über 17000 Zeilen, jetzt sind es nur noch 1864.

Ich werde mir die Pivot aber auch mal reinziehen ;-)

Bye Klaus

  

Re: Antwort heißt: Pivot-Tabelle !!!
von: Yal
Geschrieben am: 16.04.2003 - 10:13:56

Ganz richtig, ich habe die Anforderungen zu schnell gelesen, ich dachte es geht nur ums addieren.

Yal
(Yal steht übrigens zur Versteck meinem richtigen Name, den ich nicht bekannt geben will, da ich beruflich mit Excel zu tun habe. Nicht dass mein Arbeitgeber erfährt, dass ich Tipp kostenlos verteile, statt sie zu verkaufen ;-)

  

Re: Antwort heißt: Pivot-Tabelle !!!
von: Nike
Geschrieben am: 16.04.2003 - 10:31:57

Hi,

ich glaub das Problem haben einige hier ;-)
Ich kannte bisher nur YAST.
Hatte was mit "yet another ..." zu tun.

Bye

Nike

  

wird langsam total off-topic!
von: Yal
Geschrieben am: 16.04.2003 - 10:57:47

.. dann hätte ich Yab gewählt:
yet another Besserwisser
;-)))

  

Re: is schon total off-topic!
von: Nike
Geschrieben am: 16.04.2003 - 11:06:07

Hi,
na, das is es doch schon längst ;-)
Wie wär`smit Yaot yet another off topic ;-)

Bye

Nike

 

Beiträge aus den Excel-Beispielen zum Thema "Zellen über VBA addieren"