Langen Text aus Word auf mehrere Zeilen mit fester Spaltenbreite verteilen
#1
Hallo zusammen, 

ich möchte einen langen Text aus Word nach Excel kopieren. Die Spalte A, in die der Text soll, hat eine Spaltenbreite von 45 und der Text soll sich entsprechend der Spaltenbreite auf so viele Zeilen wie nötig verteilen. Dafür gibt es die Funktion "Blocksatz", allerdings funktioniert das immer nur für 255 Zeichen. Auch der VBA Code: Worksheets("Sheet1").Range("A1").Justify funktioniert nur für 255 Zeichen. Mein Text in Word ist 5 Seiten lang. Das würde also ewig dauern. Hat jemand eine andere Idee, den Text (mehr als 255 Zeichen) aus der Zelle A1 über mehrer Zeilen in Spalte A zu verteilen?
Power quert habe ich auch schon erfolglos probiert. Ich habe eine Testdatei mal beigefügt.

Vielen Dank schon jetzt, für die Antworten!
Liebe Grüße  Angel Heart
Top
#2
Hi,

das mit der Testdatei musst du nochmals üben. :89:

Ich vermute mal, du hast vergessen, rechts den Button "Attachment hinzufügen" anzuklicken.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:
  • marylalou
Top
#3
Uuuups  :20: Jetzt aber  Angel
.xls   Testdatei.xls (Größe: 26 KB / Downloads: 7)
Top
#4
Hallo,

wenn es nur um ein übersichtliches Ansehen geht, reicht strg-1 und "Zeilenumbruch" aus. Im VBA

Code:
cells(1,1).WrapText = true

mfg
Top
#5
Hi,

also 5 Seiten Word-Text in einer Zelle unterbringen, wird wohl scheitern.

Mit VBA fielen mir auf die Schnelle folgende Schritte ein (nur so als Ansatz):

- Word-Text in Variable einlesen (wenn's passt)
- einen leeren String wortweise füllen und in die Zelle (1. Zeile) einfügen
- Autofit auf die Spalte mit der Zelle und prüfen, ob Spaltenbreite > 45
- wenn nicht: nächstes Wort holen
- wenn ja: letztes Wort aus dem String nehmen und Zelle mit bisherigen Wörtern füllen,
- neue Zeile
- String leeren, mit dem Rest des Textes wie oben verfahren.

Problem: Einzel-Wörtern, die von ihrer Länge nicht in die Zelle passen
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Top
#6
Das werde ich mal probieren, allerdings sehe ich das Problem mit den Wörtern, deren Länge nicht mehr in die Zeile passt auch kritisch. Danke trotzdem schon mal  Angel

Es geht darum, dass jeder Textzeile anschließend eine Nummer zugeordnet werden soll (Interviewtext). Damit nachher beim Rauskopieren von bestimmten Textpassagen der Kontext immer wieder hergestellt werden kann. Ist das verständlich?   Undecided 
 Wenn ich dann den Text auf mehrere Zeilen verteilt habe, kann ich rechts daneben mit Auto ausfüllen einfach eine Nummerierung zu Mappen. Ich dachte, dass wäre so am einfachsten und am nachhaltigsten. Was meint ihr?
Top
#7
Hallo,

es gibt doch einiges an Software für die Text-Analyse von Interviews. Warum soll man das in Excel neu erfinden?

mfg
Top
#8
Hallo,

ein anderer Vorschlag:

Hole die Zeilen direkt aus Word:

Word-VBA
Code:
Sub Zeilen_anzeigen()
Dim Col As Collection: Set Col = New Collection
Dim l As Line

With ActiveDocument.ActiveWindow
    
    For p = 1 To .Panes(1).Pages.Count
        For r = 1 To .Panes(1).Pages(p).Rectangles.Count
            For i = 1 To .Panes(1).Pages(p).Rectangles(r).Lines.Count
                Set l = .Panes(1).Pages(p).Rectangles(r).Lines.Item(i)
                'Debug.Print l.Range
                Col.Add l.Range
            Next i
        Next r
    Next p
End With

'>>>>>> nach Excel <<<<<<<

For i = 1 To Col.Count
    Debug.Print Col(i)
Next i
Set Col = nothing
End Sub

Die Collection muss nur in Excel ausgegeben werden.

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • marylalou
Top
#9
Hi Fennek,

schöner Ansatz, aber ich bezweifel, dass du damit eine Zeile in eine Excel-Spalte mit Spaltenbreite 45 bekommst. Es kommt natürlich auf die Schriftgröße an. Wenn die nicht wichtig ist, kann man sie auf Schriftgröße 5 oder 6 einstellen. Zum Lesen müsste man dann den Zoom (temporär) erhöhen oder die Zelle markieren und den Text in der Berbeitungszeile lesen.
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
[-] Folgende(r) 1 Nutzer sagt Danke an LuckyJoe für diesen Beitrag:
  • marylalou
Top
#10
Vielen Dank für die Ideen! Die Spaltenbreite ist tatsächlich nicht so wichtig bzw. die kann auch 50 oder 60 sein, wenn es dann besser klappt? 

LG

@Fennek Wie gebe ich denn eine Collection in Excel aus? Blush
Top


Gehe zu:


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