EXCEL, Spalteninhalte in eine Zelle verschieben, Part 1?
Hallo, wie kann ich ausgewählte Zellen einer Spalte in EINE Zelle verschieben? Die Werte sollen mit Zeilenumbrüchen dargestellt werden. Am besten als Script?!
Part 2
Wie bekomme ich den Inhalt von Y1 in eine beliebige (aktive) Zelle?
1 Antwort
Public Sub sbMerge()
Dim myCells As Range
Dim myMerge As String
myMerge = ""
Application.EnableEvents=False 'sorgt dafür dass KEINE Zellen Events durch die Aktion ausgelöst werden.
For Each myCells In Selection
myMerge = myMerge & myCells.Value & Chr(10)
Next
Tabelle1.Range("Y1").Value = myMerge
Application.EnableEvents=True
End Sub
'===
'Chr(10) ist der Zeilen Umbruch.
..Wie du festellst wird 'einer' davon zuviel gemacht.
Dies ist aber für dich lösbar ?!
Nun, es wird durch ALLE markierten iteriert. Es ist davon KEINE beliebig. Welche es davon sein soll kannst du selbst außerhalb der Schleife wählen, nachdem in myMwrge alles eingesammelt wurde. Da ichh selber keinen Sinn in diesem Makro sehe, kann ich auch nicht sagen welche Zelle die richtige "beliebige" ist.
Ich habe eine Tabelle 1, die in mehreren Zellen einer Spalte Daten enthält. Diese sollen aber in einer anderen Tabelle 2 in eine Zelle, die den gesamten Text umgebrochen enthält, verschoben werden.
Deshalb wäre in dem Fall meine aktive (markierte) Zelle, die Stelle an der der Text eingefügt werden soll (Tabelle 2).
mmhh. Ich lese den Wunsch kenne aber nicht den Sinn. "Zusammenfassung von Daten" kann man auch ohne Makro erreichen, aber egal.
Ob bereits VOR der Ausführung des Makro auf der Zielseite die richtige Zelle angewählt wurde ist dann einem zwingenden Ablauf der Aktionen nötig.
Dies unter Kontrolle zu bekommen ist aufwendig.
Per Default starten von Excel ist vermutlich NIE die richtige Zelle markiert.
===
Hier schlage ich vor die Zusammenfassung in den Zwischenspeicher zu übernehmen um dann NUR per Paste (Strg+V) in manueller Arbeit selbst durchgeführt wird.
==
Oder:
Zunächst MUSS man auf das Zielblatt wechseln
Tabelle2.Activate
um dann hiermit die aktuell geählte Zelle zu erhalten
Dim temp
temp = ActiveCell.Address
Tabelle2.Range(temp).Value = myMerge
...aber wie gesagt, hier muss viel Fehler Robustness ergänzt werden.
@IchMalWiederXY
Die einzelnen Zellen der Spalte der Tabelle 1 sind das Egebnis eines "Exports" von Inhalten die eigentlich zusammengehörten.
(Nein! Kann nicht wiederholt werden!!)
Durch den Export wurde der Text auf mehrere Zellen verteilt.
Ich möchte den ursprünglichen nur umgebrochenen Text wieder herstellen.
Wenn der von deinem Script im ersten Abschnitt zusammengefasste Inhalt in der Zwischenablage gespeichert würde und beim anklicken der Zielzelle in Tabelle 2 dort eingefügt werden könnte wäre the mission accomplished!
In der Tat eine schöne Programmier Aufgabe.
Um ehrlich zu sein. All den nötigen Code findest du im Netz.
Am Ende musst du auch noch den Code pflegen können. Damit musst du ihn auch selbst verstehen. Daher "Ran an die Buletten" un den "Rest" selbst entwickelt.
Bin nur im Vorbeigehen zum Ausprobieren gekommen...
In welcher Zelle stehen dann die zusammengefassten Werte?
(Sorry, doof!)
Na, dss ging ja schnell!
Dankeschön!
Ich probierS zeitnah aus und melde mich rück!
Ho!
Dankeschön!
Das klappt ja soweit sehr gut.
Jetzt wäre es noch schön, wenn das Einfügen in eine beliebige (avktive) Zelle erfolgen könnte...