EXCEL, Spalteninhalte in eine Zelle verschieben, Part 1?


18.09.2022, 17:37

Part 2

Wie bekomme ich den Inhalt von Y1 in eine beliebige (aktive) Zelle?

1 Antwort

Von Experte Oubyi, UserMod Light bestätigt
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 ?!
N0bb1 
Fragesteller
 18.09.2022, 11:27

Na, dss ging ja schnell!

Dankeschön!

Ich probierS zeitnah aus und melde mich rück!

0
N0bb1 
Fragesteller
 18.09.2022, 12:37

Bin nur im Vorbeigehen zum Ausprobieren gekommen...

In welcher Zelle stehen dann die zusammengefassten Werte?

(Sorry, doof!)

0
N0bb1 
Fragesteller
 18.09.2022, 15:29

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...

0
IchMalWiederXY  18.09.2022, 20:58
@N0bb1

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.

0
N0bb1 
Fragesteller
 18.09.2022, 21:29
@IchMalWiederXY

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).

0
IchMalWiederXY  19.09.2022, 11:31
@N0bb1

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.

0
N0bb1 
Fragesteller
 19.09.2022, 20:13
@IchMalWiederXY

@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!

0
IchMalWiederXY  19.09.2022, 20:43
@N0bb1

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.

0