Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
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

Daten aus excel oder Word - Tabelle nutzen

Daten aus excel oder Word - Tabelle nutzen
19.01.2017 12:41:43
Peter
Hallo, ein schönen Tag den Excelspezialisten,
ich habe ein kleines Problem. Ich möchte in einem Makro in Word den Wert einer Zelle entweder aus der Tabelle in Word oder einer geschlossenen Excel-Tabelle verwenden.
Ich habe aus dem Archiv einen Code herauskopiert:
Sub temp()
Dim ojbZeile        As Object
Dim sPfad           As String
Dim appWord         As Object
Dim sWordName       As String
Dim Tables          As Word.Table
Dim sZellenText     As String
Dim i               As Integer
Dim j               As Integer
Dim sZTextZusatz As String
Set appWord = CreateObject("Word.Application")
'sPfad = "C:\Documents and Settings\sobottam\privat\Gut zu wissen\Word_to_exel\"
'sWordName = "Neu Microsoft Word Document.doc"
'Worddocument öffnen
'appWord.Documents.Open sPfad & sWordName
'For Each Tables In appWord.ActiveDocument.Tables
For Each Tables In ActiveDocument.Tables
For i = 1 To Tables.Columns.Count ' Spalten abklappern
For j = 1 To Tables.Rows.Count 'Zeilen abklappern
sZellenText = Tables.Rows(j).Cells(i).Range.Text
Debug.Print sZellenText
Next j
Next i
Next
sZellenText = Tables.Rows(1).Cells(1).Range.Text
Debug.Print sZellenText
sZTextZusatz = sZellenText & "\" & "Teil"
Debug.Print sZTextZusatz
End Sub
Teile habe ich auskommentiert - da ich ja nur den Wert einer bestimmten Celle haben möchte. Das Problem ist aber, dass nicht der reine Text - übernommen wird, sondern:
C:\Users\Peter\TestWord2

C:\Users\Peter\TestWord2
\Teil
Wie erreiche ich, dass diese Teil nicht übernommen wird?
Besten Dank für Eure Hilfe.
Gruss
Peter

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus excel oder Word - Tabelle nutzen
19.01.2017 19:23:53
fcs
Hallo Peter,
vom Text in der Word-Tabellen-Zelle müssen die letzten 2 Zeichen abgetrennt werden.
Außerdem ist die Verwendung des Variablennamens "Tables" nicht ideal, da es in Word auch das Object "Tables" gibt.
Das Erzeugen einer weiteren Word-Anwendung ist ach nicht erforderlich.
Gruß
Franz
'bearbeitet unter Word 2010, Windows Vista
Sub temp()
Dim ojbZeile        As Object
Dim sPfad           As String
Dim appWord         As Object
Dim sWordName       As String
Dim wdTable          As Word.Table
Dim sZellenText     As String
Dim i               As Integer
Dim j               As Integer
Dim sZTextZusatz As String
'Set appWord = CreateObject("Word.Application")   'überflüssig - es wird nur eien _
weitere ausgeblendete WOrd-Anwendung gestartet.
'sPfad = "C:\Documents and Settings\sobottam\privat\Gut zu wissen\Word_to_exel\"
'sWordName = "Neu Microsoft Word Document.doc"
'Worddocument öffnen
'appWord.Documents.Open sPfad & sWordName
'For Each wdTable In appWord.ActiveDocument.Tables
For Each wdTable In ActiveDocument.Tables
For i = 1 To wdTable.Columns.Count ' Spalten abklappern
For j = 1 To wdTable.Rows.Count 'Zeilen abklappern
sZellenText = wdTable.Rows(j).Cells(i).Range.Text
sZellenText = Left(sZellenText, Len(sZellenText) - 2)
Debug.Print sZellenText
Next j
Next i
Next
sZellenText = ActiveDocument.Tables(1).Rows(1).Cells(1).Range.Text
sZellenText = Left(sZellenText, Len(sZellenText) - 2)
Debug.Print sZellenText
sZTextZusatz = sZellenText & "\" & "Teil"
Debug.Print sZTextZusatz
End Sub

Anzeige
AW: Daten aus excel oder Word - Tabelle nutzen
19.01.2017 20:21:07
Peter
Hallo Franz,
besten Dank für Deine Hilfe.
Funktioniert einwandfrei.
Da habe ich doch noch eine Frage an den Spezialisten:
Ich habe einen Ordner mit mehreren Unterordner für Etiketten:
01_ExcelListe
02_Etikettenbasis
03_Etikettenlaufend
04_EtikettenArchiv
Das Problem ist, dass Etikettenbasis.docm die Adressliste.xlsm aus 01_ExcelListe zugreifen muss.
Ebenso die Etikettenlaufend.docm
Wie kann dies gesteuert werden, dass dies im Serienbrief ausgewählt werden kann.
Momentan löse ich das wie folgt:
Sub Makro1_Adressliste_zuordnen()
Dim strPfadDatei As String
strPfadDatei = (Environ("USERPROFILE")) & "\Desktop\AdressEtiketten_Test\01_Adresslisten\ _
Adressen_Vers2016_11_22.xlsm"
ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource Name:= _
strPfadDatei _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=strPfadDatei ;Mode=Read; _
Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet " _
, SQLStatement:="SELECT * FROM `Tabelle1$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
End Sub
Ich möchte gerne diesen Bereich - "\Desktop\AdressEtiketten_Test\01_Adresslisten\Adressen_Vers2016_11_22.xlsm" aus dem Dokument beziehen. Die Werte werden von Exceldatei auf Word übertragen - aber wie ist hier der Weg?
Gruss
Peter
Anzeige
AW: Daten aus excel oder Word - Tabelle nutzen
22.01.2017 08:51:49
fcs
Hallo Peter,
hier eine Variante mit Dateiauswahldialog.
Den Basispfad in den einzelnen Worddokumenten musst du ggf. anpassen.
Wenn du die Information im Dokument selber eingeben willst
z.B in einer Tabellenzelle oder in einem Formularfeld, dann musst du den Inhalt aus Zelle/Feld im Makro einlesen und die Textteile im Makro zum Dateipfad zusammenfügen.Dann kann der Auswahldialog entfallen.
LG
Franz
Sub Makro1_Adressliste_zuordnen()
Dim strPfadDatei As Variant
Dim Basispfad As String
Basispfad = (Environ("USERPROFILE")) & "\Desktop\AdressEtiketten_Test\"
'zum Basisverzeichnis wechseln
VBA.ChDir Basispfad
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Title = "Bitte Exceldatei mit Adressliste auswählen"
.InitialFileName = "*.xls*"
If .Show = -1 Then
strPfadDatei = .SelectedItems(1)
Else
Exit Sub
End If
End With
ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource Name:=strPfadDatei, _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, _
Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;" _
& "Data Source=strPfadDatei ;Mode=Read; Extended Properties=""HDR=YES;IMEX=1;" _
& """;Jet OLEDB:System database="""";Jet ", _
SQLStatement:="SELECT * FROM `Tabelle1$`", SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess
End Sub

Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige