Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
944to948
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
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Per VBA Zeilen vergleichen und addieren

Per VBA Zeilen vergleichen und addieren
22.01.2008 19:36:16
Nektim
Hier noch mal ein Versuch mit Bsp. Datei.
Die Zeilen bei denen Spalte a-e gleich sind sollen addiert werden.
https://www.herber.de/bbs/user/49275.xls

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA Zeilen vergleichen und addieren
22.01.2008 20:23:09
Erich
Hallo Nektim,
unterscheidet dich diese Mappe von der, die du im alten Thread
https://www.herber.de/forum/archiv/940to944/t943062.htm#944140
hochgeladen hast?
Drei Fragen:
1)
In deinem Beispielergebnis taucht Kunde A nur einmal auf,
dabei gibt es ihn mit unterschiedlichen Datumsen in Spalte E.
Sollte Kunde A im Ergebnis nicht auch mit Datum 18.10.2007 erscheinen,
zusätzlich zur Zeile mit 10.10.2007?
2)
Was soll geschehen, wenn ein Kunde in mehreren Zeilen in derselben Spalte Einträge hat?
Beispiel: In S4 steht die Nummer 3454356. Was, wenn in S3 auch eine Nummer steht?
Soll dann addiert werden?
Oder sollen die Einträge in einer Zelle hintereinander geschrieben werden?
Das kann die Weiterbearbeitung (Sortierung, Formeln, Suche etc.) erschweren.
3)
Muss es VBA sein? Mit Excelformeln ließe sich das wohl auch machen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Per VBA Zeilen vergleichen und addieren
22.01.2008 21:12:00
Nektim
Hallo nein die Datei ist die selbe. Allerdings da ich die Datei erst heute hochladen konnte und der Thread schon ein paar Tage alt, bekam ich keine Rückmeldung.
Zu 1. Ja er müsste ein zweites Mal auftauchen als neue Zeile da ja das Datum ein anderes ist.
Mein Fehler :)
zu 2. Der Wert in Spalte s kommt pro Kunde nur einmal vor. Das heisst an seinem Standort/Datum ( Spalte A-E ) hat er nur eine Zertifikatsnummer. Wenn die Nummer in zwei Zellen steht kann es nur der selbe Kunde sein. Auf die Bsp. Tabelle bezogen müsste das Ergebnis wenn in S3 dasselbe wie in S4 steht ( ist ja ein Datensatz ) als Ergebnis auch die 3454356 stehen.
Hoffe es ist halbwegs verständlich. Die Original Tabelle kann ich aus Datenschutz Gründen nicht hochladen.
Nur so vile zum Hintergrund. Ich bekomme jeden Monat Rohdaten und möchte die Tabelle einfach übersichtlich haben, da alle infos statt in 3 oder 4 auch in 1 Zeile passen.
Eine Ausnahme noch die Spalte q sollte schon addiert werden und der Rest sollte ähnlich eine UND Verknüpfung addiert werden. ( 0+1 = 1 und 1+1=1 )

Anzeige
AW: Per VBA Zeilen vergleichen und addieren
23.01.2008 09:40:12
Erich
Hallo Nektim,
Daniels Code habe ich ein wenig angepasst. Probier mal

Option Explicit
Sub test()
Dim sp As Integer, ze As Long, check As Boolean
'--- Sortieren
For sp = 5 To 1
Range("A1").CurrentRegion.Sort key1:=Cells(2, sp), order1:=xlAscending, header:=xlYes
Next
ze = 2
Do Until Cells(ze + 1, 1).Value = ""
'--- Prüfen, ob gelicher Kunde
check = True
For sp = 1 To 5
check = Cells(ze, sp) = Cells(ze + 1, sp)
If Not check Then Exit For
Next
Select Case check
Case False  '--- neuer Kunde, eine Zeile weiter
ze = ze + 1
Case True   '--- gleicher Kunde, zusammenfassen
For sp = 6 To 22      ' Nummern der Spalten, die zusammengefasst werden sollen
If sp = 17 Then '--- in Sp. Q Zahlen addieren
If Cells(ze, sp) & Cells(ze + 1, sp) > "" Then _
Cells(ze, sp) = Cells(ze, sp) + Cells(ze + 1, sp)
Else           '--- Texte zusammenfassen
If Cells(ze + 1, sp)  "" And Cells(ze + 1, sp)  Cells(ze, sp) Then
If Cells(ze, sp)  "" Then Cells(ze, sp) = Cells(ze, sp) & " "
Cells(ze, sp) = Cells(ze, sp) & Cells(ze + 1, sp)
End If
End If
Next sp
Rows(ze + 1).Delete
End Select
Loop
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Beeilung, guckst du alter Thread owt
22.01.2008 22:42:00
Daniel
Gruß, Daniel

AW: Beeilung, guckst du alter Thread owt
23.01.2008 09:06:00
Nektim
Hallo Daniel,
das Makro funktiniert prima, danke schon mal dafür.
Nur noch etwas zur Verfeinerung. Ist es möglich die Zellen die jetzt addiert werden nicht zu addieren sondern logisch UND zu verknüpfen? Also wenn eine Zelle Text enthält und eine nicht dann wird der Text in die Ergebnis Zelle eingetragen.
Beispiel Zertifikatsnummer 12345 ( Zelle S1 ) && 12345 ( Zelle S2 ) = 12345
Ausgenommen die Spalte Q wo es um Zeiten geht, die Spalte muss wirklich addiert werden.

AW: Beeilung, guckst du alter Thread owt
23.01.2008 20:29:00
Daniel
HI
mein Prinzip ist halt so, das Numerische Zellen aufaddiert und und Textzellen zusammen gesetzt werden.
die Unterscheidung geschieht mit :

IF IsNumeric (Cells(ze, sp) then
..... '---- hier Zahlen addiern
else
......'--- hier Texte zusammensetzen
end if


wenn das als Trennung nicht reicht, und du die Verarbeitungsart abhängig von der einzelnen Zelle machen willst, müsstets du über die Select Case - anweisung gehen


Select case sp
case 6, 7
'--- Hier Bearbeitungsmethode für Spalte 6 und 7
case 12 to 15
'--- Hier Bearbeitungsmethode für Spalte 12, 13, 14, 15
case else
'--- Hier Bearbeitungsmethode für alle anderen Spalten
end select


hier kannst du abhängig von der Spaltennr, die gerade bearbeitet wird, die Bearbeitungsart festlegen
Gruß, Daniel

Anzeige
AW: Beeilung, guckst du alter Thread owt
24.01.2008 11:07:00
Nektim
Hallo Erich, Hallo Daniel
danke für eure Hilfe!
Deine letzte Antwort Daniel kann ich leide rnicht umsetzen da mir da das Verständnis für fehlt. Ich hab Erich sein Code eingebaut nur weiß ich nicht wie ich deine angesprochene Änderung bzgl. der Select Case Anweisung und der Bearbeitungsmethode ? ich wo und wie einfüge.
Danke für die Mühen.

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige