Registriert seit: 13.08.2018
Version(en): 365
Hey,
Ich versuche die Zellen in einer Tabelle so zu formatieren dass alle Kommentare in einem Feld sind, damit ich diese Daten dann in eine MS SQL Datenbank importieren kann, jedoch muss ich dafür etwas haben welches dies automatisch macht da es einige tausend Zeilen sind.
Danke für eure Hilfe!
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
13.08.2018, 09:21
(Dieser Beitrag wurde zuletzt bearbeitet: 13.08.2018, 09:21 von MisterBurns.)
Also zumindest ich verstehe genau gar nicht, was die große verbundene Zelle mit dem großen Pfeil aussagen soll.
Anstatt mühsam ein Bild einzustellen, wäre eine Beispielmappe wesentlich hilfreicher.
Ebenfalls hilfreicher wäre eine etwas ausführlichere Erklärung.
EDIT: Nach erneutem Drübernachdenken habe ich zumindest verstanden, was du haben möchtest (und dass der Pfeil nur verwirrend ist)
Dennoch bleibt es dabei -> Beispieldatei, weil Nachbauen von vorhandenen Dateien lehne ich ab.
Schöne Grüße
Berni
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
Ich vermute, dass es beim Ergebnis nicht um Zellen-Verbinden, sondern um Verketten geht.
TE wollte die Verkettung optisch nur über Mergen zeigen. Denkbar ist allerdings, dass die Ausgangsdaten tatsächlich gemergt sind. Dann wird es nerviger.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
13.08.2018, 10:00
(Dieser Beitrag wurde zuletzt bearbeitet: 13.08.2018, 10:00 von Kuwer.)
Hallo,
teste mal damit:
Sub aaa()
Dim rngB As Range, rngZ As Range
Dim varC As Variant
Set rngB = Range("A1").CurrentRegion
Application.ScreenUpdating = False
For Each rngZ In rngB.Columns(1).Cells
If rngZ.MergeCells Then
With Application.Intersect(rngZ.MergeArea.EntireRow, rngB.Columns(3))
varC = Join(Application.Transpose(.Value), vbLf)
.Value = ""
.Cells(1).Value = varC
End With
Application.Intersect(rngZ.MergeArea.EntireRow, rngB.Range("A:B")).UnMerge
End If
Next rngZ
If Application.CountBlank(rngB.Columns(1)) Then
rngB.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End If
Application.ScreenUpdating = True
End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• loopios7
Registriert seit: 13.08.2018
Version(en): 365
(13.08.2018, 09:21)MisterBurns schrieb: Also zumindest ich verstehe genau gar nicht, was die große verbundene Zelle mit dem großen Pfeil aussagen soll.
Anstatt mühsam ein Bild einzustellen, wäre eine Beispielmappe wesentlich hilfreicher.
Ebenfalls hilfreicher wäre eine etwas ausführlichere Erklärung.
EDIT: Nach erneutem Drübernachdenken habe ich zumindest verstanden, was du haben möchtest (und dass der Pfeil nur verwirrend ist)
Dennoch bleibt es dabei -> Beispieldatei, weil Nachbauen von vorhandenen Dateien lehne ich ab.
Das war nur ein Beispiel um zu zeigen was Zuerst sein soll und dann am Ende, jedoch bleiben beim normalen Mergen ja nur die Daten der linkeren-oberen Zelle.
Am Ende soll halt alles nur in einer Reihe sein (Kommentar am Ende aber noch auf mehreren Zeilen einfach eine Zelle) damit Ich es in eine Datenbank kopieren kann.
Testdatei kann ich sonst eine erstellen falls du eine möchtest, die Datei auf der ich das Anwenden will kann ich dir jedoch nicht geben.
Registriert seit: 13.08.2018
Version(en): 365
(13.08.2018, 10:00)Kuwer schrieb: Hallo,
teste mal damit:Sub aaa()
Dim rngB As Range, rngZ As Range
Dim varC As Variant
Set rngB = Range("A1").CurrentRegion
Application.ScreenUpdating = False
For Each rngZ In rngB.Columns(1).Cells
If rngZ.MergeCells Then
With Application.Intersect(rngZ.MergeArea.EntireRow, rngB.Columns(3))
varC = Join(Application.Transpose(.Value), vbLf)
.Value = ""
.Cells(1).Value = varC
End With
Application.Intersect(rngZ.MergeArea.EntireRow, rngB.Range("A:B")).UnMerge
End If
Next rngZ
If Application.CountBlank(rngB.Columns(1)) Then
rngB.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End If
Application.ScreenUpdating = True
End Sub
Gruß Uwe
Danke viel mal, hat geklappt nach dem ich die Range Werte für meine Tabelle angepasst habe!