Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1064to1068
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

Tino@ Deine Beispiel .....

Tino@ Deine Beispiel .....
01.04.2009 16:59:24
Joachim
..Hallo Tino,
kennst Du dieses Beispiel noch ? Da ging es um die Zusammenfassung von mehreren Datensätzen. Da hattest Du mir mal mit diesem Beispiel geholfen :

Sub Daten_zusammenfassen()
Dim Bereich1 As Range, Bereich2 As Range, Bereich3 As Range, rTemp As Range
Dim strText As String
Dim lRow As Long, LLRow As Long
Dim meAr()
With Application
.ScreenUpdating = False
.EnableEvents = False
Set Bereich1 = Range("B10", Cells(Rows.Count, 2).End(xlUp))
Set Bereich1 = Bereich1.Offset(0, Columns.Count - 1 - Bereich1.Column)
Set Bereich2 = Bereich1.Offset(0, 1)
lRow = Bereich1(Bereich1.Cells.Count).Row
Bereich2.FormulaR1C1 = "=IF(AND(COUNTIF(RC2:R" & lRow & "C2,RC2)1,RC2""""),0,"""")"
If Application.WorksheetFunction.CountIf(Bereich2, 0) > 0 Then
'     'Spalte 10 = J
Bereich1.FormulaR1C1 = "=IF(RC2"""",SUMIF(R10C2:R" & lRow & "C2,RC2,R10C10:R" & lRow & " _
C10),RC10)"
Bereich1.Offset(0, -(Bereich1.Column - 10)) = Bereich1.Value
'Spalte 13 = M
Bereich1.FormulaR1C1 = "=IF(RC2"""",SUMIF(R10C2:R" & lRow & "C2,RC2,R10C13:R" & lRow & " _
C13),RC13)"
Bereich1.Offset(0, -(Bereich1.Column - 13)) = Bereich1.Value
'Spalte 15 = O
Bereich1.FormulaR1C1 = "=IF(RC2"""",SUMIF(R10C2:R" & lRow & "C2,RC2,R10C15:R" & lRow & " _
C15),RC15)"
Bereich1.Offset(0, -(Bereich1.Column - 15)) = Bereich1.Value
'Spalte 18 = R
Bereich1.FormulaR1C1 = "=IF(RC2"""",SUMIF(R10C2:R" & lRow & "C2,RC2,R10C18:R" & lRow & " _
C18),RC18)"
Bereich1.Offset(0, -(Bereich1.Column - 18)) = Bereich1.Value
'Spalte 19 = S
Bereich1.FormulaR1C1 = "=IF(RC2"""",SUMIF(R10C2:R" & lRow & "C2,RC2,R10C19:R" & lRow & " _
C19),RC19)"
Bereich1.Offset(0, -(Bereich1.Column - 19)) = Bereich1.Value
'Spalte 27 = AA
Bereich1.FormulaR1C1 = "=IF(RC2"""",SUMIF(R10C2:R" & lRow & "C2,RC2,R10C27:R" & lRow & " _
C27),RC27)"
Bereich1.Offset(0, -(Bereich1.Column - 27)) = Bereich1.Value
Set Bereich3 = Range("B10", Cells(Rows.Count, 2).End(xlUp))
'Texte zusammenführen, getrennt durch ;
For lRow = 1 To Bereich3.Cells.Count
If Bereich3(lRow)  "" Then
For LLRow = 1 To Bereich3.Cells.Count
If Bereich3(lRow) = Bereich3(LLRow) Then
strText = strText & Bereich3(LLRow).Offset(0, 10) & "; "
End If
Set rTemp = Bereich3(LLRow).Offset(0, Columns.Count - Bereich3(LLRow).Column)
If rTemp.Value = "" And (Bereich3(LLRow) = Bereich3(lRow)) Then
If InStr(Bereich3(LLRow).Offset(0, 10), ";") = 0 Then
Bereich3(LLRow).Offset(0, 10) = Left$(strText, Len(strText) - 2)
End If
strText = ""
Exit For
End If
Next LLRow
End If
Next lRow
'Zeilen löschen
Bereich2.SpecialCells(xlCellTypeFormulas, 1).EntireRow.Delete
End If
'Hilfsspalten löschen
Columns(Bereich1.Column).Delete
Columns(Bereich2.Column).Delete
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub


Passt alles so weit, habe nur eine Frage zu folgender Zeile:
' 'Spalte 10 = J
Bereich1.FormulaR1C1 = "=IF(RC2"""",SUMIF(R10C2:R" & lRow & "C2,RC2,R10C10:R" & lRow & "C10),RC10)"
Bereich1.Offset(0, -(Bereich1.Column - 10)) = Bereich1.Value
In dieser Spalte J soll die Zusammenführung nur stattfinden, wenn folgende Bedingungen erfüllt sind:
- Zelle H und Zelle I sind beide NICHT leer
- Zelle H ist GLEICH wie Zelle I
(in Zelllen H ind I ist jeweils ein Datumsfeld)
Wie muss denn diese Zeile Code geändert werden dass diese Bedingengen mit einfliessen ?
Alle anderen Zusammenführungen (Spalten M, O, R......) sollen so bleiben wie sie sind.
Es geht nur um "J"
Könntest Du mich nochmel unterstützen ?
Schon mal ein dickes Dankeschön.
Gruss
Joachim

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
sollte kein Problem sein
01.04.2009 18:30:18
Tino
Hallo,
ok. ist schnell in die Zeile eingebaut.
Müsst so stimmen wenn Du sagst, dass diese Zeile geändert werden muss.
Habe einfach eine UND Bedingung eingebaut, habe dies aber jetzt nicht getestet.
     'Spalte 10 = J 
     Bereich1.FormulaR1C1 = "=IF(AND(RC2<>"""",RC8&RC9<>"""",RC8=RC9),SUMIF(R10C2:R" & lRow & "C2,RC2,R10C10:R" & lRow & "C10),RC10)"
     Bereich1.Offset(0, -(Bereich1.Column - 10)) = Bereich1.Value


Gruß Tino

Anzeige
AW: sollte kein Problem sein
01.04.2009 19:01:58
Joachim
Hallo Tino,
Danke. Habe heute keine Möglichkeit mehr das zu testen, melde mich morgen noch mal , OK ?
Ich hoffe, dass es nur diese Zeile ist, die man ändern muss.
(soweit ich Dein Beispiel interpretieren kann)
Bis morgen
Gruss
Joachim
AW: sollte kein Problem sein
02.04.2009 14:13:03
Joachim
Hallo Tino,
wahr wohl von meiner Seite doch nicht so einfach, wie ich es vermutet hatte. Ich bräuchte vermutlich noch eine Bedingung zum prüfen.
Da ich Deinen Code nicht so "durchschauen" kann, mal ne Frage: die Zeilen, in denen in B ein doppelter Eintrag gefunden wird, wie verarbeitest Du die Daten weiter ? schreibst Du diese an eine andere Stelle im Sheet und addierst dann, oder werden die gefundenen "Doppel" in sowas wie ein Array geschrieben und dort weiter verarbeitet ? Das sehe ich aus Deinem Beispiel nicht haraus.
Danke vorerst mal
Joachim
Anzeige
AW: sollte kein Problem sein
02.04.2009 14:59:45
Tino
Hallo,
doppelte Daten Filtere ich mit dieser Zeile

Bereich2.FormulaR1C1 = "=IF(AND(COUNTIF(RC2:R" & Lrow & "C2,RC2)1,RC2""""),0,"""")"


diese ergibt zBsp. diese Formel nach unten gezogen


=WENN(UND(ZÄHLENWENN($B10:$B$20;$B10)1;$B10"");0;"")


Vielleicht brauchst Du dort diese Ergänzung.

Bereich2.FormulaR1C1 = "=IF(AND(COUNTIF(RC2:R" & Lrow & "C2,RC2)<>1,RC2<>"""",RC8&RC9<>"""",RC8=RC9),0,"""")"


Dies ergibt dann diese Formel


=WENN(UND(ZÄHLENWENN($B10:$B$20;$B10)1;$B10"";$H10&$I10"";$H10=$I10);0;"")


Sollte es nicht funktionieren, bräuchte ich nochmal eine Beispieldatei.
Gruß Tino

Anzeige
AW: sollte kein Problem sein
02.04.2009 18:54:29
Joachim
Hallo Tino,
ich mache Dir mal ein Beispiel , mich würde dann Deine Meinung dazu interessieren, ob das überhaupt geht.
Bist Du bereit ?
Danke
Joachim
mach nur mal, wir werden sehen. oT.
02.04.2009 18:57:15
Tino
Hallo Tino, hier habe ich noch mal Infos
03.04.2009 19:50:56
Joachim
Hi Tino,
habe mal so eine BeispielDatei gemacht, schau es mal an. Ich habe in der XLS reingeschrieben, wie das ganze funktionieren soll. Danke
Gruss
Joachim
https://www.herber.de/bbs/user/60987.xls
AW: Hallo Tino, hier habe ich noch mal Infos
03.04.2009 20:35:59
Tino
Hallo,
ok. teste mal und überprüfe das Ergebnis.
Habe es jetzt so eingebaut, wenn dass Datum in H oder I fehlt bzw. auch gleich ist,
wird dieses Makro mit einer Meldung abgebrochen.
https://www.herber.de/bbs/user/60988.xls
Gruß Tino
Anzeige
AW: Hallo Tino, hier habe ich noch mal Infos
03.04.2009 21:58:56
Joachim
Hallo Tino,
was, schon was gemacht , wow. Werde es mir anschauen, komme aber erst am Dienstag zum prüfen.
Melde mich nach Dienstag auf jeden Fall noch mal. OK.
Danke und schönes WE
Gruss
Joachim

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige