Inhalt mehrere Zellen zusammenfassen

Hallo!

Ausgangslage/Beispiel: Tabelle aus MS-Wordsdatei (ich hasse die Dinger) kopiert und in Excel eingefuegt, funztz soweit ganz gut.

nur sind die Texte einzelner Words-Zeilen auch in einzelnen Excel-Zellen gelandet

nun moechte ich mehrere Zellen (z.B. A5=„das ist“ A6=„ein Text“) so verknuepfen, dass dann in A5=das ist ein Text" steht und A6 leer ist

wie geht das - ausser von Hand rumzukloeppeln?

stelle es mir so vor: A5-A6 markieren, Menueaufruf Bearbeiten-Sowieso…

am besten KEIN extra geschriebenes/zu schreibendes Makro -> das soll auf allen Exceln gehen, gibts sowas nicht standardmaessig? (Applixware kann das z.B. - dachte ich…)

wer-hat-tips-fuer-mich?

DANKE
cu
kai

nun moechte ich mehrere Zellen (z.B. A5=„das ist“ A6=„ein
Text“) so verknuepfen, dass dann in A5=das ist ein Text" steht
und A6 leer ist
am besten KEIN extra geschriebenes/zu schreibendes Makro ->
das soll auf allen Exceln gehen, gibts sowas nicht

Hi kai,
naja, die paar Befehle die man für ein Makro bräuchte laufen garantiert in allen Excelversionen.

Stehen die Worte untereinander? Ich gehe mal davon aus, du meinst A5 und B5 und C5
In eine Hilfsspalte schreibst du in erste Zeile:
=a1&b1&c1
und ziehst die Formel nach unten
dann die Hilfsspalte kopieren und in Spalte A über Bearbeiten–InhalteEinfügen—Werte eintragen lassen.
Die anderen Spalten löschen.
Gruß
Reinhard

Hallo

naja, die paar Befehle die man für ein Makro bräuchte laufen
garantiert in allen Excelversionen.

ja das schon, aber man muesste dann das Makro HABEN
(mal eben so bei nem Kollegen isses halt aber nicht immer da…)

ausserdem lassen nicht alle Admins zu, dass man Makros in Ihrer heiligen Maschine oeffnet/installiert :wink:

In eine Hilfsspalte schreibst du in erste Zeile:
=a1&b1&c1 und ziehst die Formel nach unten…

das geht leider nur, wenn man mehrere gleich aufgabaute Spalten nebeneinander hat.

hier sind aber Absaetze gemeint, die von Words zeilenweise aufgeteilt wurden (ggf. mit „Returns“ von Hand) und bei Excel daher zellenweise getrennt werden
-> das sind aber mal 2, mal 3, dann wieder einzelne usw. Zellen/Absatz
-> ich moechte aber den Absatz jeweils in EINER Zelle haben
-> dann kann ich Excel das schoen saeuberlich umbrechen/ausrichten lassen etc

cu
kai

Hallo,

das geht über eine Text-Funktion, allerdings wirst du eine Hilfszelle brauchen.

Wenn die Tabelle folgendermaßen aussieht:

A1 „Das ist“
A2 „ein Text“

dann gilt

B1 "=VERKETTEN(A1;A2)

wenn du zwischen den beiden Textteilen eine Leerstelle brauchst, dann

B1 "=VERKETTEN(A1;A3;A2)

und in Zelle A3 fügst du ein Leerzeichen ein

Ich hoffe das hilft.
Gerhard

Hallo,

das geht über eine Text-Funktion, allerdings wirst du eine
Hilfszelle brauchen.

B1 "=VERKETTEN(A1;A2)

naja =A1&" "&A2 in B1 waere ja das gleiche; ggf. mit GLÄTTEN() kombiniert

Ich hoffe das hilft.

wie schon zum Vorredner ausgefuehrt ist das Problem, dass die Struktur nicht einheitlich (ueberall 2 Zeilen/Absatz) ist
-> so ne Formelsache ist ideal bei mehreren gleich aufgebauten Tabellen
-> oder wenn man sowas (bei gleicher Struktur) oefter machen muss

aber hier waere es nur einmal (bei einem bestimmten Absatz) und jeder Absatz sieht anders aus -> dann ist ausschneiden in A2 und einfuegen/anhaengen in A1 ungefaehr genauso schnell wie Formel erstellen und Wert/Text rueberkopieren…

aber trotzdem Danke fuer Eure schnelle Hilfe

komme wohl nicht um ein MAkro drum rum…
-> hat jemand von Euch sowas schon mal gemacht?
    (Makro, das Text aus Zelle xx in Zelle yy anhaengt)

danke
cu
kai

ausserdem lassen nicht alle Admins zu, dass man Makros in
Ihrer heiligen Maschine oeffnet/installiert :wink:

Stimmt *g

hier sind aber Absaetze gemeint, die von Words zeilenweise
aufgeteilt wurden (ggf. mit „Returns“ von Hand) und bei Excel
daher zellenweise getrennt werden
-> das sind aber mal 2, mal 3, dann wieder einzelne usw.
Zellen/Absatz
-> ich moechte aber den Absatz jeweils in EINER Zelle haben
-> dann kann ich Excel das schoen saeuberlich
umbrechen/ausrichten lassen etc

Hallo Kai,
das Problem ist „mal 2, mal 3“.
Wären es immer 3 könntest du es so in einer Hilfsspalte zb. B lösen:
In b1: =INDIREKT(„a“&(ZEILE()-1)*3+1)&" „&INDIREKT(„a“&(ZEILE()-1)*3+2)&“ "&INDIREKT(„a“&(ZEILE()-1)*3+3)
Also müsstest du in Word oder Excel die Blöckzeilenanzahl für alle Blöcke gleichgroß hinzaubern.

Oder wenn du es hinkriegst dass deine tabelle so aussieht:

Tabellenblattname: Tabelle1
 A B 
 1 Bayern München 
 2 Nürnberg 
 3 Rosenheim 
 4 Augsburg 
 5 Nordrhein-W. Köln 
 6 Düsseldorf 
 7 Essen 
 8 Duisburg 
 9 Dortmund 
10 Saarland Saarbrücken 

dann kann man ohne Makros in Excel dies Tabelle mittels Hilfsspalte erstellen lassen:

Tabellenblattname: Tabelle1
 E F G H I 
1 Bayern München Nürnberg Rosenheim Augsburg 
2 Nordrhein-W. Köln Düsseldorf Essen Duisburg 
3 Saarland Saarbrücken 

Gruß
Reinhard

Gruß
Reinhard

cu
kai

Hallo,

vielleicht solltest du nochmal schildern, was du genau vorhast.

Warum willst du eine Word-Tabelle in einem Excel-Dokument verarbeiten?

Vielleicht gibt es elegantere Möglichkeiten.

Gerhard

Hallo Kai,
wir sind zwar hauptächlich ein Excelforum, aber vielleicht ist hier doch mal ein wenig Reklame für Word angebracht.

Wäre es nicht geschickter, die Absatzmarken innerhalb der Zellen noch in Word durch Leerzeichen zu ersetzen)?

Das Resultat kann dann problemlos nach Excel übertragen und dort weiterverarbeitet werden.

Grüße Aus Kamp-Lintfort
Erich

1 „Gefällt mir“

Hi

vielleicht solltest du nochmal schildern, was du genau
vorhast.

ich suche eine einfache und allgemein in Excel verwendbare Möglichkeit, den Inhalt mehrerer markierter Zellen aneinanderzuhängen (Leerzeichen dazwischen) und in der ersten der markierten Zellen abzulegen. die anderen werden geleert

Warum willst du eine Word-Tabelle in einem Excel-Dokument
verarbeiten?

weil jemand da angefangen hat und mit dem Ergebnis mehr als unzufrieden ist (machen bei uns aber immer wieder welche, ich hasse das und komme immer wieder zum Schluss, Excel wäre gescheiter gewesen…)

Beim ersten Rüberkopieren sind die Absätze aus Words aber meist in mehrere Zellen in Excel verteilt und eben genau das gilt es wieder zusammenzuführen…

Beispiel:

Spalte A, Zellen ab A1 runterwärts:

Das/ist/Block 1/ / / / / /…

Spalte B, Zellen ab B1 runterwärts:
Hier/steht/ein Text/ /Und hier/ist/Unterblock/2/…

daraus soll werden:
A1=Das ist Block 1
B1=Hier steht ien Text
Zeilen 2-4 sind leer, werden später entfernt
A5=leer
B5=Und hier ist Unterblock 2
Zeilen 6-8 sind wieder leer und werden später auch entfernt

dann kann man A1, B1 etc… über Ausrichtung etc. nett formatieren…

hoffe es ist jetzt klarer?

cu
kai

Hallo Kai,

statt in EXCEL Klimmzüge zu machen, solltest du die Inhalte in der Word-Tabelle vor dem Kopieren überarbeiten, damit beim Kopieren von Word nach EXCEL jede Zelle in Word zu einer Zelle in EXCEL wird.

Ersetze in der Word-Tabelle alle manuellen Zeilenumbrüche, Absatzmarken und Tabulatator-Schaltungen mit Suchen/Ersetzen durch ein Leerzeichen. Danach evtl. noch alle doppelten Leerzeichen durch ein einfaches Leerzeichen.

Jetzt sollte das Kopieren nach EXCEL eine saubere Tabelle ergeben.

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo

Wäre es nicht geschickter, die Absatzmarken innerhalb der
Zellen noch in Word durch Leerzeichen zu ersetzen)?

das wäre zumindest für den nächsten Versuch ein guter und wichtiger Hinweis!!

Danke

cu
kai

Hi

statt in EXCEL Klimmzüge zu machen, solltest du die Inhalte in
der Word-Tabelle vor dem Kopieren überarbeiten, damit beim
Kopieren von Word nach EXCEL jede Zelle in Word zu einer Zelle
in EXCEL wird.

wie bei Erich gesagt: werde ich beim nächsten mal versuchen „einzubringen“ (man kann ja nicht immer alles kontrollieren: wie war der Spruch mit dem Chaos und dem „aber wir können ja nicht überall sein“? :wink:)

nur tritt das gleiche Problem beim Import aus SAP, Internet etc. auch auf, weshalb mich eine „Klimmzug-Lösung“ trotzdem interessieren würde!

cu
kai

Hi Kai,
wenn du es schaffen würdest in Word als erstes Wort eines jedendatenblocks das gleiche Wort , z.B „xyz“ an den Blockanfang zu stellen, ginge ggfs folgende Lösung.
Evtl könnte man den Punt in Word durch „xyz“ ersetzen, dann wären die Blöcke durch xyz unterteilt.
Naja, vielleicht hilft dir das nachfolgende weiter oder es produziert weitere Ideen hier :smile:

Achtung: die Formeln in Spalte C sind Matrixformeln !

Tabellenblattname: Tabelle1
 A B C D E F G H 
 1 xyz 
 2 das 1 xyz das ist ein satz 
 3 ist 9 xyz das auch 
 4 ein 15 xyz und das erst ist einer 
 5 satz 1000 
 6 1000 
 7 
 8 
 9 xyz 
10 das 
11 auch 
12 
13 
14 
15 xyz 
16 und 
17 das 
18 erst 
19 ist einer 

Benutzte Formeln:
C2: {=WENN(ZÄHLENWENN(INDIREKT("A"&C1+1):A$1000;"xyz")=0;1000;KKLEINSTE(WENN((A$1:A$1000="xyz");ZEILE($1:blush:1000));ZEILEN($1:1)))}
C3: {=WENN(ZÄHLENWENN(INDIREKT("A"&C2+1):A$1000;"xyz")=0;1000;KKLEINSTE(WENN((A$1:A$1000="xyz");ZEILE($1:blush:1000));ZEILEN($1:2)))}
C4: {=WENN(ZÄHLENWENN(INDIREKT("A"&C3+1):A$1000;"xyz")=0;1000;KKLEINSTE(WENN((A$1:A$1000="xyz");ZEILE($1:blush:1000));ZEILEN($1:3)))}
C5: {=WENN(ZÄHLENWENN(INDIREKT("A"&C4+1):A$1000;"xyz")=0;1000;KKLEINSTE(WENN((A$1:A$1000="xyz");ZEILE($1:blush:1000));ZEILEN($1:4)))}
C6: {=WENN(ZÄHLENWENN(INDIREKT("A"&C5+1):A$1000;"xyz")=0;1000;KKLEINSTE(WENN((A$1:A$1000="xyz");ZEILE($1:blush:1000));ZEILEN($1:5)))}
D2: =WENN(INDIREKT(ADRESSE($C2+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C2+SPALTE()-4;1)))
D3: =WENN(INDIREKT(ADRESSE($C3+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C3+SPALTE()-4;1)))
D4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
D5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
D6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))
E2: =WENN(INDIREKT(ADRESSE($C2+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C2+SPALTE()-4;1)))
E3: =WENN(INDIREKT(ADRESSE($C3+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C3+SPALTE()-4;1)))
E4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
E5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
E6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))
F2: =WENN(INDIREKT(ADRESSE($C2+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C2+SPALTE()-4;1)))
F3: =WENN(INDIREKT(ADRESSE($C3+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C3+SPALTE()-4;1)))
F4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
F5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
F6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))
G2: =WENN(INDIREKT(ADRESSE($C2+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C2+SPALTE()-4;1)))
G3: =WENN(INDIREKT(ADRESSE($C3+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C3+SPALTE()-4;1)))
G4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
G5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
G6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))
H2: =WENN(INDIREKT(ADRESSE($C2+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C2+SPALTE()-4;1)))
H3: =WENN(INDIREKT(ADRESSE($C3+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C3+SPALTE()-4;1)))
H4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
H5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
H6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))

Gruß
Reinhard

Hallo Kai,

also Punkte durch „xyz“ ersetzen, dann folgende Tabelle:
Die Formeln in Spalte C sind Matrixformeln.
Da die Tabelle nicht sehr übersichtlich ist *g, das Ergebnis steht in E9:E11.

Tabellenblattname: Tabelle1

 A B C D E F G H I J K 
 1 xyz 
 2 das 1 xyz das ist ein satz xyz 
 3 ist 6 xyz das auch 
 4 ein 12 xyz und das erst ist einer 
 5 satz 20 xyz 
 6 xyz 1000 
 7 
 8 
 9 das ist ein satz xyz 
10 das das auch 
11 auch und das erst 
12 xyz 
13 
14 
15 
16 und 
17 das 
18 erst 
19 ist einer 
20 xyz 

Benutzte Formeln:
C2: =WENN(ZÄHLENWENN(INDIREKT("A"&C1+1):A$1000;"xyz")=0;1000;KKLEINSTE(WENN((A$1:A$1000="xyz");ZEILE($1:blush:1000));ZEILEN($1:1)))
C3: =WENN(ZÄHLENWENN(INDIREKT("A"&C2+1):A$1000;"xyz")=0;1000;KKLEINSTE(WENN((A$1:A$1000="xyz");ZEILE($1:blush:1000));ZEILEN($1:2)))
C4: =WENN(ZÄHLENWENN(INDIREKT("A"&C3+1):A$1000;"xyz")=0;1000;KKLEINSTE(WENN((A$1:A$1000="xyz");ZEILE($1:blush:1000));ZEILEN($1:3)))
C5: =WENN(ZÄHLENWENN(INDIREKT("A"&C4+1):A$1000;"xyz")=0;1000;KKLEINSTE(WENN((A$1:A$1000="xyz");ZEILE($1:blush:1000));ZEILEN($1:4)))
C6: =WENN(ZÄHLENWENN(INDIREKT("A"&C5+1):A$1000;"xyz")=0;1000;KKLEINSTE(WENN((A$1:A$1000="xyz");ZEILE($1:blush:1000));ZEILEN($1:5)))
D2: =WENN(INDIREKT(ADRESSE($C2+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C2+SPALTE()-4;1)))
D3: =WENN(INDIREKT(ADRESSE($C3+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C3+SPALTE()-4;1)))
D4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
D5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
D6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))
E2: =WENN(INDIREKT(ADRESSE($C2+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C2+SPALTE()-4;1)))
E3: =WENN(INDIREKT(ADRESSE($C3+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C3+SPALTE()-4;1)))
E4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
E5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
E6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))
E9: =GLÄTTEN(E2&" "&F2&" "&G2&" "&H2&" "&I2&" "&J2)
E10: =GLÄTTEN(E3&" "&F3&" "&G3&" "&H3&" "&I3&" "&J3)
E11: =GLÄTTEN(E4&" "&F4&" "&G4&" "&H4&" "&I4&" "&J4)
E12: =GLÄTTEN(E5&" "&F5&" "&G5&" "&H5&" "&I5&" "&J5)
E13: =GLÄTTEN(E6&" "&F6&" "&G6&" "&H6&" "&I6&" "&J6)
F2: =WENN(INDIREKT(ADRESSE($C2+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C2+SPALTE()-4;1)))
F3: =WENN(INDIREKT(ADRESSE($C3+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C3+SPALTE()-4;1)))
F4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
F5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
F6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))
G2: =WENN(INDIREKT(ADRESSE($C2+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C2+SPALTE()-4;1)))
G3: =WENN(INDIREKT(ADRESSE($C3+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C3+SPALTE()-4;1)))
G4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
G5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
G6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))
H2: =WENN(INDIREKT(ADRESSE($C2+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C2+SPALTE()-4;1)))
H3: =WENN(INDIREKT(ADRESSE($C3+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C3+SPALTE()-4;1)))
H4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
H5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
H6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))
I2: =WENN(INDIREKT(ADRESSE($C2+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C2+SPALTE()-4;1)))
I3: =WENN(INDIREKT(ADRESSE($C3+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C3+SPALTE()-4;1)))
I4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
I5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
I6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))
J4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
J5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
J6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))
K4: =WENN(INDIREKT(ADRESSE($C4+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C4+SPALTE()-4;1)))
K5: =WENN(INDIREKT(ADRESSE($C5+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C5+SPALTE()-4;1)))
K6: =WENN(INDIREKT(ADRESSE($C6+SPALTE()-4;1))=0;"";INDIREKT(ADRESSE($C6+SPALTE()-4;1)))

Gruß
Reinhard

Hallo kai,

ich habe noch ein wenig herumprobiert zumindest mit WORD und EXCEL Version 97. Das Ergebnis beim Kopieren von Tabellen aus Word nach EXCEL produziert immer einen mehr oder weniger großen Zellen-Salat in EXCEL, wenn in der Word-Tabelle Zeilen-, Absatzschaltungen und/oder Tab-Stopps enthalten sind. Dieser Salat läßt sich mit mit einfachen Mitteln nicht auflösen. Siehe die Versuche von Reinhard. Die einfachste Lösung ist über die Funktion VERKETTEN, aber die erfordert genausoviel Aufwand wie das manuelle zusammenbasteln.

Hier ist meine Makro-Lösung.

Sub Text\_zusammenfassen()
' Fügt den Text aus den markierten Zellen in der obersten, linken markierten Zelle ein
' Inhalte der Zellen werden gelöscht
'
Text = ""
Spalte = ActiveCell.Column
Zeile = ActiveCell.Row
 For Each Zelle In Selection
 If Zelle.Row Am besten dieses Makro einem Tastaturkürzel zuordnen oder einem Button in einer Symbolleiste. 
Wenn zum Beispiel die Spaltentitel jeweils in Zeile 1 der Spalte zusammengezogen werden sollen, dann kann man auch die leere Zelle in Zeile 1 mit markieren. Die markierten Zellen müssen nicht in einem Bereich liegen. Man kann z.B. auch die Zellen B1, B4, A5 bis A7 markieren.

Gruß
Franz


> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>
1 „Gefällt mir“

Hallo!

Hier ist meine Makro-Lösung.

genial! *sternchen verdient hast!*

genau was ich gesucht habe - wenn es keine normale Excel-Funktion dazu gibt

aber warum das hier?:

If Zelle.Row

Hallo!

Hier ist meine Makro-Lösung.

genial! *sternchen verdient hast!*

genau was ich gesucht habe - wenn es keine normale
Excel-Funktion dazu gibt

aber warum das hier?:

If Zelle.Row

Hallo!

müßte man ggf. nicht auch ne Prüfung IF Zelle.Column eine Zelle im markierten Bereich heller etc…) und 2. wenn ich Dein Makro allgemein verwenden will um z. B. 4 Überschriften (nebeneinander) zu einer Blocküberschrift zusammenzufassen (ich kann danach die Zellen auch verbinden), ist das Ergebnis unterschiedlich, je nachdem, ob ich die 4 Zellen von vorne nach hinten oder umgekehrt markiere, oder?

-> eine Spaltenprüfung würde dafür sorgen, dass die vorderste Zelle genommen wird…
-> all das (oberste, linkeste Zelle nehmen) funzt bei rechteckigen Markierungen
-> aber wenn ich versch. einzelne Zellen markiere, ist die linkeste Spalte in der obersten Zeile evtl. gar keine der markierten Zellen (Bsp: markiert sind B5, C5, D3 -> „links oben“ wäre dann B3…)

cu
kai

cu
kai

Hallo!

müßte man ggf. nicht auch ne Prüfung IF Zelle.Column eine Zelle im

markierten Bereich heller etc…) und 2. wenn ich Dein Makro
allgemein verwenden will um z. B. 4 Überschriften
(nebeneinander) zu einer Blocküberschrift zusammenzufassen
(ich kann danach die Zellen auch verbinden), ist das Ergebnis
unterschiedlich, je nachdem, ob ich die 4 Zellen von vorne
nach hinten oder umgekehrt markiere, oder?
-> eine Spaltenprüfung würde dafür sorgen, dass die
vorderste Zelle genommen wird…
-> all das (oberste, linkeste Zelle nehmen) funzt bei
rechteckigen Markierungen
-> aber wenn ich versch. einzelne Zellen markiere, ist die
linkeste Spalte in der obersten Zeile evtl. gar keine der
markierten Zellen (Bsp: markiert sind B5, C5, D3 -> „links
oben“ wäre dann B3…)

cu
kai

Hallo kai,
nachdem das Makro mal zufriedenstellend funktionierte, hab ich nicht weiter alle Varianten der Auswahl ausprobiert.
Ich habe die IF-Anweisung jetzt weggelassen und lasse den Text in die aktive Zelle schreiben. Danach hab ich probiert.
Ergebnis:
Werden bei gedrückter Strg-Taste die Zellen markiert, dann fügt das Makro die Texte exakt in der Reihenfolge der Markierung zusammen, wobei markierte Spalten- bzw. Zeilenblöcke von oben nach unten bzw. von links nach rechts ausgelesen werden.
Die Zelle, in die der Text geschrieben werden soll, muß als letzte Zelle gewählt werden. Dies kann eine bereits markierte Zelle oder eine leere Zelle sein.

Das vereinfachte Makro sieht dann so aus:

Sub Text\_zusammezaehlen()
' Fügt den Text aus den markierten Zellen in der aktiven Zelle ein
' Inhalte der Zellen werden gelöscht
'
 Text = ""
 For Each Zelle In Selection
 If Text = "" Or IsEmpty(Zelle) Then
 Text = Text & Zelle.Value
 Else
 Text = Text & " " & Zelle.Value
 End If
 Zelle.Clear
 Next
 ActiveCell.Value = Text
End Sub

In der Kürze liegt halt manchmal doch die Würze

Gruß
Franz

Hallo Franz und Kai,
der unten vorgeschlagene Prozedur verhält sich bei Leerzeichen etwas anders als Franz’ Lösung, ist aber vielleicht ganz praktisch (und noch kürzer):

Sub Text\_sammeln()
' Sammelt die Inhalte aller markierten Zellen in der Reihenfolge der Markierung
' als Text in der aktiven Zelle.
' Führende und angehängte Leerzeichen der Teiltexte werden entfernt.
' Inhalte der markierten Zellen werden gelöscht.
' (Wenn auch Formate gelöscht werden sollen: "Clear" statt "ClearContents")
 Dim txt$, zz As Range
 For Each zz In Selection
 txt = Trim(txt) & " " & Trim(zz.Value)
 zz.ClearContents
 Next zz
 ActiveCell.Value = Trim(txt)
End Sub

Grüße
Erich