Code Schnipsel gesucht

Hallo,

ich brauche ein Code für ein Makro mit folgender Funktion:

Unter Excel gibt es 4 Spalten, die ersten 3 Spalten (Spalte A, Spalte B, Spalte C)sollen überprüft werden. Sind dort alle Parameter identisch, dann soll in Spalte D die Zahlen zusammen addiert und neu eingefügt werden und das andere gelöscht werden.

Bsp:
SpalteA SpalteB SpalteC SpalteD
111000 L11110 118000 100,00
111000 L11110 118000 30,00
111001 L11110 118000 20,00

Nachdem Makro gestartet worden ist, soll es so
aussehen:

SpalteA SpalteB SpalteC SpalteD
111000 L11110 118000 130,00
111001 L11110 118000 20,00

Über jeden Tipp und Hinweis dankbar.

Danke und Gruß, Marsi

P.S. Eine ähnliche Frage habe ich vor Wochen schon egstellt, da waren die Daten alle in einer Zeile. Jetzt sind diese durch die Spalten getrennt und sollen so zusammengerechnet werden.

Hallo,

ich brauche ein Code für ein Makro mit folgender Funktion:

Unter Excel gibt es 4 Spalten, die ersten 3 Spalten (Spalte A,
Spalte B, Spalte C)sollen überprüft werden. Sind dort alle
Parameter identisch,

Meinst Du mit identisch, identisch mit den Werten der ersten Zeile?

dann soll in Spalte D die Zahlen zusammen
addiert und neu eingefügt werden und das andere gelöscht
werden.

Bsp:
SpalteA SpalteB SpalteC SpalteD
111000 L11110 118000 100,00
111000 L11110 118000 30,00
111001 L11110 118000 20,00

Nachdem Makro gestartet worden ist, soll es so
aussehen:

Oder könnte mit „identisch“ auch soetwas gemeint sein?
SpalteA SpalteB SpalteC SpalteD
111000 L11110 118000 130,00
111001 L11110 118000 20,00
111001 L11110 118000 150,00

Oder anders formuliert: was willst du miteinander vergleichen?
Alle Zeilen mit dem Inhalt der ersten oder alle Zeilen paarweise
(also immer je zwei Zeilen ) miteinander?

LG,
alex

SpalteA SpalteB SpalteC SpalteD
111000 L11110 118000 100,00
111000 L11110 118000 30,00
111001 L11110 118000 20,00
Nachdem Makro gestartet worden ist, soll es so aussehen:
SpalteA SpalteB SpalteC SpalteD
111000 L11110 118000 130,00
111001 L11110 118000 20,00

Hi Marsi,

Option Explicit
Sub tt()
Dim Zei As Long, n As Long
Zei = Range("A65536").End(xlUp).Row
For n = Zei To 2 Step -1
 If zusam(Zei) Then
 Cells(Zei - 1, 4) = Cells(Zei - 1, 4) + Cells(Zei, 4)
 Rows(Zei).Delete
 End If
Next n
End Sub
Function zusam(ByVal Zeile As Long) As Boolean
Dim n As Byte
zusam = True
For n = 1 To 3
 If Cells(Zei, n) Cells(Zei - 1, n) Then zusam = False
Next n
End Function

Gruß
Reinhard

Hi Marsi,

Option Explicit
Sub tt()
Dim Zei As Long, n As Long
Zei = Range(„A65536“).End(xlUp).Row
For n = Zei To 2 Step -1
If zusam(Zei) Then
Cells(Zei - 1, 4) = Cells(Zei - 1, 4) + Cells(Zei, 4)
Rows(Zei).Delete
End If
Next n
End Sub
Function zusam(ByVal Zeile As Long) As Boolean
Dim n As Byte
zusam = True
For n = 1 To 3
If Cells(Zei, n) Cells(Zei - 1, n) Then zusam =
False
Next n
End Function

Gruß

Hallo Reinhard,

vielen Dank für dein Code.
Beim kompilieren sag er mir aber, dass die
Variable nicht definiert werden kann und verweist dann auf
„Function zusam“.
Wo könnte da der Fehler liegen ??

Gruß, Marsi

Hallo,

ich brauche ein Code für ein Makro mit folgender Funktion:

Unter Excel gibt es 4 Spalten, die ersten 3 Spalten (Spalte A,
Spalte B, Spalte C)sollen überprüft werden. Sind dort alle
Parameter identisch,

Meinst Du mit identisch, identisch mit den Werten der ersten
Zeile?

dann soll in Spalte D die Zahlen zusammen
addiert und neu eingefügt werden und das andere gelöscht
werden.

Bsp:
SpalteA SpalteB SpalteC SpalteD
111000 L11110 118000 100,00
111000 L11110 118000 30,00
111001 L11110 118000 20,00

Nachdem Makro gestartet worden ist, soll es so
aussehen:

Oder könnte mit „identisch“ auch soetwas gemeint sein?
SpalteA SpalteB SpalteC SpalteD
111000 L11110 118000 130,00
111001 L11110 118000 20,00
111001 L11110 118000 150,00

Oder anders formuliert: was willst du miteinander vergleichen?
Alle Zeilen mit dem Inhalt der ersten oder alle Zeilen
paarweise
(also immer je zwei Zeilen ) miteinander?

Hallo Alex,

es können auch mehrere Zeilen sein, d.h. wenn bei drei Reihen, die
Spalte A , B und C übereinstimmen,dann soll Spalte 3 die Summe aus den 3 Reihen sein.
Ist dies so nachvollziehbar ?
Danke und Gruß, Marsi

Hi Marsi,

Möglicherweise liegt das Problem im
falschen Zeilenumbruch in der Funktion „zusam“.
Zum Vergleich habe ich den Originaltext stehen
lassen und die veränderte Fassung darunter gesetzt.
LG,
Karotier

Option Explicit


> > Sub tt()  
> > Dim Zei As Long, n As Long  
> > Zei = Range("A65536").End(xlUp).Row  
> > For n = Zei To 2 Step -1  
> > If zusam(Zei) Then  
> > Cells(Zei - 1, 4) = Cells(Zei - 1, 4) + Cells(Zei, 4)  
> > Rows(Zei).Delete  
> > End If  
> > Next n  
> > End Sub  
> > Function zusam(ByVal Zeile As Long) As Boolean  
> > Dim n As Byte  
> > zusam = True  
> > For n = 1 To 3  
> > If Cells(Zei, n) Cells(Zei - 1, n) Then zusam =  
> > False  
> > Next n  
> > End Function

so sollte es funktionieren ( Zeilenumbruch geändert, End if eingefügt)

Function zusam(ByVal Zeile As Long) As Boolean
Dim n As Byte
zusam = True
For n = 1 To 3
 If Cells(Zei, n) Cells(Zei - 1, n) Then
 zusam = False
 End if
Next n
End Function