Herbers Excel-Forum - das Archiv

Kästchen und chr(10)

Bild

Betrifft: Kästchen und chr(10)
von: Vladi
Geschrieben am: 08.10.2003 16:18:47
Hallo allerseits,
ich habe da folgendes Problem:
eine Tabelle in Word soll 1:1 nach Excel übertragen werden (fragt mich bitte nicht, warum!), und zwar so, dass sie dann in Excel weiterbearbeitet werden kann. Objekt einfügen geht also nicht.
Folgenden Makro habe ich schon erstellt (und zugegebenermassen teilweise zusammengeklaut...). Das Problem: in Excel werden die Zeilenumbrüche nicht erkannt, stattdessen stehen da dann Quadrate. Beim markieren des Textes in einer Zelle und anschliessendem kopieren erkennt Excel dann die Formatierungszeichen, nicht jedoch, wenn man die Zelle als ganzes kopiert(sieht es dann als Zeichenkette an). Wie kann ich das ändern?
zum selber ausprobieren und kopieren hier der code, wobei die Spalten von A-F gehen und auch etwa diese Grösse haben sollen.



Sub Makro1()
Dim Excel As Object
Dim sheet As Object
Dim tbl As Object
Dim rng As Object
Dim arr() As Variant
Dim i As Integer, k As Integer
Set wd = GetObject(, "Word.Application")
Set doc = wd.ActiveDocument
Set tbl = doc.Tables(1)
With tbl
ReDim arr(.Rows.Count, .Columns.Count)
For i = 1 To .Rows.Count
Set rng = tbl.Rows(i).Range
For k = 1 To rng.Columns.Count
arr(i - 1, k - 1) = rng.Cells(k).Range.Text
Next k
Next i
End With
Set wd = Nothing
Dim xl As Object
Set xl = CreateObject("Excel.Application")
xl.Application.Visible = True
xl.WindowState = -4137
xl.Application.Workbooks.Add
xl.Windows(1).Activate
With xl.Application
.Range(.Cells(1, 1), .Cells(UBound(arr, 1), UBound(arr, 2))) = arr
.Columns("A:A").Select
.Selection.ColumnWidth = 8
.Columns("B:B").Select
.Selection.ColumnWidth = 40
.Columns("C:C").Select
.Selection.ColumnWidth = 8
.Columns("D:D").Select
.Selection.ColumnWidth = 15
.Columns("E:E").Select
.Selection.ColumnWidth = 6
.Columns("F:F").Select
.Selection.ColumnWidth = 40
.Cells.Select
.Selection.Rows.AutoFit
.Columns("A:A").Select
With .Selection
.WrapText = True
End With
.Columns("B:B").Select
With .Selection
.WrapText = True
End With
.Columns("C:C").Select
With .Selection
.WrapText = True
End With
.Columns("D:D").Select
With .Selection
.WrapText = True
End With
.Columns("E:E").Select
With .Selection
.WrapText = True
End With
.Columns("F:F").Select
With .Selection
.WrapText = True
End With
End With
Set xl = Nothing
End 


Sub
Für Hilfe wäre ich echt dankbar, dafür erhebe ich auch keine Urheberrechtsansprüche auf meinen Makro ;-) .
Grüssle
Vladi
Bild

Betrifft: AW: Kästchen und chr(10)
von: Nepumuk
Geschrieben am: 08.10.2003 17:46:04
Hallo Vladi,
ersetze mal Chr(10) durch Chr(13).


With tbl
ReDim arr(.Rows.Count, .Columns.Count)
For i = 1 To .Rows.Count
Set rng = tbl.Rows(i).Range
For k = 1 To rng.Columns.Count
arr(i - 1, k - 1) = rng.Cells(k).Range.Text
Do While InStr(1, arr(i - 1, k - 1), Chr(10)) <> 0
arr(i - 1, k - 1) = Mid(arr(i - 1, k - 1), 1, InStr(1, arr(i - 1, k - 1), Chr(10)) - 1) & Chr(13) & Mid(arr(i - 1, k - 1), InStr(1, arr(i - 1, k - 1), Chr(10)) + 1)
Loop
Next k
Next i
End With



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Bild

Betrifft: AW: Kästchen und chr(10)
von: Vladi
Geschrieben am: 09.10.2003 08:40:00
Hallo Nepumuk,

so wird es auch nicht anders. Trotzdem erstmal ein herzliches Danke!
Du kannst es ja mal selbst mit einer Mini-Tabelle versuchen, dann siehst Du auch, wie hässlich das aussieht :-).
MfG
Vladi
Bild

Betrifft: AW: Kästchen und chr(10)
von: Vladi
Geschrieben am: 09.10.2003 14:48:06
Hallo,
o.k., ich habe es insofern hinbekommen, als ich die chr(10) durch die chr(13) in einem eigenen Excel-Makro ersetzt habe, welches ich aber nicht in Word einbinden kann. ich denke, das ich das auch noch hinbekommen werde, was nicht heisst, dass ich Hilfe ablehnen würde!

Vladi
 Bild