Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1088to1092
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Word-Tabelle in Excel kopieren - Zahlen => Datum

Word-Tabelle in Excel kopieren - Zahlen => Datum
Wolfgang
Liebe Forumsmitglieder!
Ich möchte gerne eine Word-Tabelle in Excel kopieren. In der Word-Tabelle sind Zahlen mit einer Nachkommastelle mit einem Punkt (nicht Komma) als Dezimalzeichen.
Beim Copy&Paste klappt alles prima, nur das Zahlen, die eine Interpretation als Datum zulassen (z.B. 6.2), so von Excel interpretiert werden und eine Datumsangabe erscheint - was ich nicht möchte.
Kann mir jemand mit diesem Problem helfen?
Vielen Dank schon mal!
Wolf

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Word-Tabelle in Excel kopieren - Zahlen => Datum
27.07.2009 13:25:20
Adelhorst
Hallo Wolfgang.
Reicht es denn nicht die Spalte dann nachräglich wieder auf eine Zahlenformat zu formatieren?
Gruss Adelhorst
leider NEIN...
27.07.2009 13:38:07
Luschi
Hallo Adelhorst,
durch die festverdrahtete Umwandlung ändert sich auch der Zellwert:
aus 2.3 wird der Zellinhalt 02.03.2009 und in der Zellansicht 02. Mrz
Wenn man jetzt auf das Format Zahlen umstellt hat die Zelle den Wert 39874 und in der Zellansicht auch noch 2 Dezimalstellen; also 39874,00.
Gruß von Luschi
aus klein-Paris
AW: leider NEIN...
27.07.2009 13:46:35
Wolfgang
@luschi: Genau, das ist das Problem: Umwandeln innerhalb Excel geht dann nicht mehr.
hier mal eine Möglichkeit...
28.07.2009 10:48:06
Tino
Hallo,
die Worddatei wird geöffnet und die Zellen aus der Tabelle1 in einen String eingelesen und
der Punkt durch ein Komma ersetzt.
Beispiel ist ohne Fehlerbehandlung.
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
  
  '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("E:\1 Forum\Test.doc")

'Anzahl Spalten aus Tebelle1 ermitteln 
B = oDoc.Tables(1).Range.Columns.Count

'Zellen aus Tabelle 1 auslesen und endsprechend Formatieren 
For Each Bereich In oDoc.Tables(1).Range.Cells

    strWert = Bereich
    strWert = Application.WorksheetFunction.Clean(Replace(strWert, ".", ","))
    
    C = IIf(C = B, 1, C + 1)
    D = IIf(C = 1, D + 1, D)
    
    If IsNumeric(strWert) Then
     Cells(D, C) = strWert * 1
    Else
     Cells(D, C) = strWert
    End If

Next Bereich

'Word wieder beenden 
oWord.Quit False
Set oDoc = Nothing: Set oWord = Nothing
End Sub

Gruß Tino
Anzeige
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
Anzeige
@Luschi
29.07.2009 12:41:57
Tino
Hallo,
Auch eine gute Idee.
Bin gerade an der blauen Adria, nix excel. :-)
Gruß Tino

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige