AW: hier mal eine Möglichkeit...
29.07.2009 12:14:13
Luschi
Hallo Tino,
damit nur Werte mit 1 Punkt umformatiert werden, habe ich Deinen Vba-Code etwas erweitert.
So kann es nicht passieren, daß Datumswerte auch behandelt werden.
Sub Beispiel()
Dim oWord As Object, oDoc As Object
Dim Bereich
Dim strWert As String
Dim B As Long, C As Long, D As Long, i As Integer
'Festlegen der Vorgabewerte
Set oWord = CreateObject("Word.Application")
'Word unsichtbar, sonst auf True umstellen
oWord.Visible = False
'Pfad zu Deiner Worddatei
Set oDoc = oWord.Documents.Open("Y:\1\TestTab.doc")
'Anzahl Spalten aus Tebelle1 ermitteln
B = oDoc.Tables(1).Range.Columns.Count
'Zellen aus Tabelle 1 auslesen und endsprechend Formatieren
'nur Zellen mit 1 Punkt
For Each Bereich In oDoc.Tables(1).Range.Cells
strWert = Application.WorksheetFunction.Clean(Bereich)
i = anzahlPunkte(strWert)
If i = 1 Then
strWert = Replace(strWert, ".", ",")
End If
C = IIf(C = B, 1, C + 1)
D = IIf(C = 1, D + 1, D)
If IsNumeric(strWert) And i 2 Then
Worksheets("Tabelle1").Cells(D, C).Value = strWert * 1
Else
Worksheets("Tabelle1").Cells(D, C).Value = strWert
End If
Next Bereich
'Word wieder beenden
oWord.Quit False
Set oDoc = Nothing: Set oWord = Nothing
End Sub
Private Function anzahlPunkte(xPunkte As String) As Integer
Dim i As Integer, k As Integer
i = 1: k = 0
Do
i = InStr(i, xPunkte, ".", vbTextCompare)
If i > 0 Then
k = k + 1
i = i + 1
End If
Loop While i > 0
anzahlPunkte = k
End Function
Gruß von Luschi
aus klein-Paris