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

Zeilen zuammenlegen

Zeilen zuammenlegen
19.07.2014 14:35:45
Ralph
Hallo zusammen,
nachdem ich im 1. Step meiner Herausforderung hier schon super Hilfe bekommen habe - an dieser Stelle nochmals vielen Dank an Thorsten (Oberschlumpf) - möchte ich nun den 2. Schritt noch realisieren. Ich versuche mal zu erklären:
In Spalte A stehen Zahlen, in Spalte C-N stehen dazugehörige Werte. Jede dieser Zahlen wiederholt sich 1x, auch bei der Wiederholung stehen wieder Werte in C-N. Ich möchte nun jeweils die Wiederholung der Zahl löschen, muss aber vorher die Werte in C-N in das erste Vorkommen der Zahl übernehmen. Die Werte C-N des ersten Vorkommens dürfen dabei aber nicht überschrieben werden, die erste Zahl und die Wiederholung haben nie in der gleichen Spalte (C-N) einen Wert.
Somit bleibt nachher pro Zahl eine Zeile (Vorher waren es ja zwei). Wenn diese Aufgabe erledigt ist, soll noch die komplette Hintergrundfarbe der Tabelle auf weiss geändert werden (Vorher gelblich). Manche Werte in Spalte C-N sind grün hinterlegt, diese Hintergrundfarbe muss vorhanden bleiben, aber auf grau geändert werden.
Nachfolgend eine Beispielmappe mit einem Blatt "vorher" und einem "nachher". Ich hoffe dass die Beispielmappe meine komplizierte Erklärung etwas relativiert. Für Rückfragen bin ich gerne da.
DL: https://www.herber.de/bbs/user/91590.zip
Vielen Dank im Voraus, Ralph.

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen zuammenlegen
19.07.2014 14:50:58
Ralph
Hallo nochmal,
im Blatt "nachher" hat sich ein kleiner Fehler eingeschlichen.
Passiert halt wenn man alles von Hand machen muss :-)
In Zelle L2 muss natürlich auch noch ein "A" stehen. Gruss, Ralph

AW: Zeilen zuammenlegen
19.07.2014 15:06:24
Daniel
Hi
einfache lösung:
1. selektiere alle Zellen in Spalte C-N
2. schränke die Selektion auf alle leeren Zellen ein, hierzu klickst du:
START - BEARBEITEN - SUCHEN UND AUSWÄHLEN -INHALTE - LEERE ZELLEN
3. gib jetzt in die aktive Zelle Zelle folgende Formel ein (hier für C1)
=Wenn($A1=$A2;C2;"")

(also im Prinzip: "wenn in Spalte A in der Zeile drunter der gleiche Wert steht wie in meiner Zeile, dann lies den Wert aus der Zelle unter mir, sonst leer" , sollte eine andere Zelle die aktive sein, musst du die Formel entsprechend anpassen)
4. Schließe die Eingabe mit STRG+ENTER ab, die Formel wird in alle markierten Zellen übernommen.
5. kopiere die Spalten C:N und füge sie an gleicher Stelle als Wert ein
6. wende auf die ganze Tabelle die funkion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN an mit Spalte A als kriteriumsspalte.
als Makro sieht das so aus:
Sub test()
With Range("C:N")
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=IF(RC1=R[1]C1,R[1]C,"""")"
.Formula = .Value
End With
Range("A:N").RemoveDuplicates 1, xlNo
End Sub

Anzeige
AW: Zeilen zuammenlegen
19.07.2014 15:43:14
Ralph
Hallo Daniel,
danke für Deine Antwort. Der Ablauf muss kompl. mit VBA realisiert werden. Ich kann Deinen Code leider nicht an der bestehenden Tabelle testen da er mit Laufzeitfehler 438 stoppt:
Range("A:N").RemoveDuplicates 1, xlNo

Wenn ich mir Deinen Code so ansehen wird er aber auch nicht das gewünschte Ergebnis bringen (Siehe Tabelle "nachher"), da so wie ich das sehe die Werte des ersten Vorkommens einfach überschrieben werden und das Problem mit der Hintergundfarbe wäre auch noch offen.
Bin für weitere Hilfe dankbar! Ralph

Anzeige
AW: Zeilen zuammenlegen
19.07.2014 16:15:12
Daniel
HI
sorry, hab nicht gesehen, dass du noch Excel 2003 hast.
zu deinen anmerkungen:
- Formate lassen sich auf diesem Weg nicht übertragen
- du irrst, die Werte aus der ersten Zeile werden nicht überschrieben, weil die Formeln nur in die Zellen kommen, die leer sind (xlcelltypeblanks-> mal nachdenken, was das bedeutet)
wenn du die Formate mitnehmen willst, musst du sowieso jede Zelle einzeln kopieren.
Sub test()
Dim Z As Long
Dim S As Long
For Z = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(Z, 1).Value = Cells(Z + 1, 1).Value Then
For S = 3 To 14
If Cells(Z, S) = "" Then Cells(Z + 1, S).Copy Cells(Z, S)
Next
Rows(Z + 1).Delete shift:=xlUp
End If
Next
End Sub

Gruß Daniel

Anzeige
AW: Zeilen zuammenlegen
19.07.2014 17:19:25
Ralph
Hallo Daniel,
das sieht doch schon sehr sehr gut aus - danke! Nun müsste ich nur noch das Problem mit den Farben klären:
Wenn diese Aufgabe erledigt ist, soll noch die komplette Hintergrundfarbe der Tabelle auf weiss
geändert werden (Vorher gelblich). Manche Werte in Spalte C-N sind grün hinterlegt, diese
Hintergrundfarbe muss vorhanden bleiben, aber auf grau geändert werden.
Wäre super wenn Du mir das auch noch weiterhelfen würdest. Danke und Gruss, Ralph

AW: Zeilen zuammenlegen
20.07.2014 15:45:16
Daniel
Hi
füge am ende des Codes noch dieses ein:
For Z = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
For S = 3 To 14
Select Case Cells(Z, S).Interior.ColorIndex
Case 10 'Farbindex für gelblich
Cells(Z, S).ColorIndex = xlNone
Case 20 'Farbindex für grün
Cells(Z, S).ColorIndex = 15 'Farbindex für grau
Case Else
Next
Next

hier läuft dann nochmal eine Schleife über alle Zellen und prüft die Farbe und formatiert entsprechend um.
die entsprechenden Farbnummern müsstest du noch ergänzen, ich habe jetzt mal Dummy-Nummern eingefügt.
du kannst die Farbnummern herausfinden, indem du eine Zelle mit dieser Farbe auswählst und im Direktfenster den Befehl eingibst: ?Selection.Interior.ColorIndex
oder du färbst eine Zelle mit der Farbe, zeichnest die Aktion mit dem Recorder auf und schaust dir den Aufgezeichneten Code an.
Gruß Daniel

Anzeige
AW: Zeilen zuammenlegen (erl)
20.07.2014 19:40:21
Ralph
Hallo Daniel,
super vielen Dank! Du hast mir sehr geholfen.
Schönen Abend, Gruss Ralph.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige