Satzwörter trennen und untereinander listen
#1
Hallo meine Lieben
ich habe eine Exel Tabelle wie im Bild.
Jede Zeile enthält einen einzigen Satz.
ich möchte dass die wörter von einander getrennt werden und alle untereinander stehen.
Sobald die Wörter einer Zeile zu ende sind, kommen darunter die Wörter der nächsten Zeile.
Rechts von den wörtern möchte ich die Zahl der Zeile von der das Wort stammt.
Diese Formel habe ich aber sie funktioniert nicht.
=GLÄTTEN(TEIL(WECHSELN($A$2;" ";WIEDERHOLEN(" ";999));ZEILE(AY1)*999-998;999))

Wer mir die Lösung anbietet bekommt von mir ein Geschenk.
1000 Dank voraus


Angehängte Dateien Thumbnail(s)
   
Top
#2
Hallo u...,

wenns auch ohne Geschenk für dich akzeptabel ist, könnte ich ein Makro schreiben.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#3
Hallo u...,

bitte sehr


Angehängte Dateien
.xlsm   SatzWorte.xlsm (Größe: 21,04 KB / Downloads: 5)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#4
Moin Helmut!
Stelle doch mal Deinen Code hier herein.
Nicht jeder will sich gleich eine .xlsm herunterladen.
(Zumal der Code sicherlich als Antwort gereicht hätte)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#5
bitte sehr:

Code:
Option Explicit
Sub Machs()

Dim lngSatzNr As Long
Dim lngWortNr As Long
Dim lngZeileOffset As Long
Dim varListe As Variant
Dim varWoerter As Variant
Dim rngAusgabe As Range

lngZeileOffset = -1
varListe = ThisWorkbook.Names("Liste").RefersToRange.Value
Set rngAusgabe = ThisWorkbook.Names("Ausgabe").RefersToRange

For lngSatzNr = 1 To UBound(varListe, 1)
    If varListe(lngSatzNr, 1) <> "" Then
        varWoerter = Split(varListe(lngSatzNr, 1), " ")
        For lngWortNr = 0 To UBound(varWoerter)
            lngZeileOffset = lngZeileOffset + 1
            rngAusgabe.Offset(lngZeileOffset, 0) = varWoerter(lngWortNr)
            rngAusgabe.Offset(lngZeileOffset, 1) = lngWortNr + 1
            rngAusgabe.Offset(lngZeileOffset, 2) = varListe(lngSatzNr, 2)
        Next lngWortNr        
    End If
Next lngSatzNr

End Sub
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#6
Hallo u...,

zu:
Zitat:Wer mir die Lösung anbietet bekommt von mir ein Geschenk.

Hier gibt es keinen Ablasshandel. So billig kommst du nicht davon.

Jeder, der im Forum eine Hilfe annimmt, muss, wenn er sebst gefordert ist, auch kostenlose Hilfe leisten (auch ausserhalb der Foren).
Ansosten wird er für immer in der Forenhölle schmoren.

Blush
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#7
Hallo lieber Ego,
ich jetztgerade deine Datei getestet.
erst 1000 Dank.
zweitens, schicke mir deine Konto-Nr. in PN.
drittens, die seite die du mir geschickt hast funktioniert nur bis 5 zeilen, ich habe 300 zeilen. das wäre sehr gut wenn du mir das möglich machst.
danke sehr
Top
#8
Hallo u...,

A) Kein Ablasshandel und daher auch keine Konto-Nr.
Du hast wohl das Kleingedruckte (Nutzungsbedingung) nicht gelesen.Blush

B) zur Datei
in der Datei arbeitet mein Programm zur Zeit mit zwei benannten Bereichen:

1) benannter Bereich "Liste"
Ausgewertet wird dieser Bereich. Er muss mindestens zwei Spalten haben.
Wenn du mehr als die zur Zeit Berücksichtigten fünf Zeilen bearbeiten willst,
a) kannst du unter "Formeln">"Namensmanager">"Liste">"Bearbeiten" den Bereich erweitern oder
b) du fügst nach der ersten und vor der letzten Zeile des Bereiches entsprechend viele Zellen ein, dann erweitert sich der Bereich automatisch.
Es ist kieine Änderung im Programm notwendig.

2) benannte Zelle "Ausgabe"
Ab dieser Zelle werden die Daten geschrieben.
a) Diese benannte Zelle kann beliebig in der Datei positioniert werden (auch in andere Arbeitsblätter) ohne das Programm ändern zu müssen.
b) Die Zellen dahinter und darüber werden gnadenlos überschrieben.
c) Schon vorhandenen Einträge werden vorher nicht gelöscht daher vor jedem Lauf manuell Löschen, besonders wenn der neue Datensatz kleiner ist.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#9
Lieber Helmut,
Gott segne und beschütze Sie.
Sie haben mir sehr geholfen.
Liebe Grüße
Ahmed
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste