Anzeige
Archiv - Navigation
916to920
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
916to920
916to920
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textübergabe an aktives WORD.doc

Textübergabe an aktives WORD.doc
16.10.2007 06:05:25
Wolfgang
Hallo,
weiterhin auf der Suche nach einer Möglichkeit, Text aus einem Tabellenblatt ("Ergebnis" von C5:C26 und E5:E26) in ein aktives WORD-Dokument einzufügen, stieß ich unter Recherche auf untenstehenden Code. Er bewirkt, dass WORD geöffnet wird, ein Doc. angelegt wird und Text aus Excel nach WORD transferiert wird. Wie müßte der Code umgestellt werden wenn bereits ein WORD Dokument geöffnet ist -also, ein aktives WORD-Dokument- und der vorhandene Text aus Tabelle Ergebnis in das Textfenster1 -C5:C26- und Textfenster2 -E5:E26- transferiert werden soll? - Noch schöner wäre, wenn die jeweiligen Texte in ein unter WORD geöffnetes UF transferiert werden könnten (TextBox1 und TextBox2), da sich das aber wohl als schwierig erweist, wäre ich schon sehr dankbar, wenn die Version des Datenexportes direkt in das aktive Dokument klappen würde. Danke schon jetzt für die Rückmeldungen.
Herzliche Grüße
Wolfgang

Sub TransferToWord()
Dim oApp As Word.Application
Set oApp = GetApplication("Word.Application")
If oApp Is Nothing Then
MsgBox "..."
Exit Sub
End If
Dim oDoc As Word.Document
Set oDoc = oApp.Documents.Add
' ab hier kannst Du direkt ins Document schreiben
' Der Weg über die Zwischenablage ist nicht notwendig!
' Zum Abschluss wieder alles freigeben
Set oDoc = Nothing
Set oApp = Nothing
End Sub



Function GetApplication(ByVal AppClass As String) As Object
Const vbErr_AppNotRun = 429
On Error Resume Next
Set GetApplication = GetObject(Class:=AppClass)
If Err.Number = vbErr_AppNotRun _
Then Set GetApplication = CreateObject(AppClass)
On Error GoTo 0
End Function


10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Codes vertauscht
16.10.2007 06:24:48
Wolfgang
Hallo,
der vorstehende Code befasst sich wohl auch mit dem Datentransfer nach WORD, den vermag ich mit meinen geringen Kenntnissen aber gar nicht zu deuten. Vielleicht ist der ja auch ausbaufähig? - Gemeint hatte ich ansonsten den untenstehenden Code. Habe die Codes wohl verwechselt.
Herzliche Grüße
Wolfgang
Option Explicit

Sub sWordAdr()
' Inhalte der Zellen A1 und A2 der 1. EXCEL- Tabelle in ein neues
' Word- Dokument übertragen und unter E:\Word.doc speichern
Dim i, iMax
Const cDateiName = "C:\test\Word.doc"
Dim AppWord As Object
iMax = Cells(Rows.Count, 1).End(xlUp).Offset(0, 1).Row
Set AppWord = CreateObject("Word.Application")
With AppWord ' *** ab jetzt "Word- VBA"
.Visible = True
.Activate
.Documents.Add ' leere Word- Blatt
End With
For i = 1 To iMax
Dim VorName As String: VorName = Worksheets(1).Cells(i, 1).Value
Dim NachName As String: NachName = Worksheets(1).Cells(i, 2).Value
Dim stnr As String: stnr = Worksheets(1).Cells(i, 3).Value
With AppWord
.Selection.TypeText VorName & ", " & NachName & "   Stempelindex: " & stnr
.Selection.TypeParagraph ' Zeilenschaltung
.Selection.TypeParagraph
'.Selection.TypeText NachName
End With
Next
With AppWord
'.ActiveDocument.SaveAs FileName:=cDateiName
'.Quit ' Word beenden
End With ' *** ab jetzt wieder EXCEL- VBA
Set AppWord = Nothing
End Sub



Sub gueltigkeit()
If IsNumeric(Cells(1, 1).Value) = True Then
MsgBox "Zahlen " & IsNumeric(Cells(1, 1).Value)
Else
MsgBox "Buchstaben"
End If
End Sub


Anzeige
AW: Codes vertauscht
16.10.2007 07:55:00
Luschi
Hallo Wolfgang,
habe Dir mal ein Beispiel gemacht, wie man Excel-Daten in ein Worfd-Formular bekommt.
Dabei wird von Excel aus ein Makro in Word aufgerufen und die Daten übergeben.
Das Word-Makro schreibt die Daten in das Formular. Die Word-Datei muß geöffnet sein; das Formular muß nicht sichtbar sein.
https://www.herber.de/bbs/user/46788.zip
Gruß von Luschi
aus klein-Paris

AW: Codes vertauscht
16.10.2007 10:21:47
Wolfgang
Hallo Luschi,
Danke für Deine schnelle Rückmeldung; kann hier im Büro leider keinen Download vornehmen (ist hier aus Sicherheitsgründen gesperrt) werde mir also heute abend zuhause die Datei herunterladen und mich dann auf jeden Fall noch wieder melden. Danke nochmals und bis dahin..
Herzliche Grüße
Wolfgang

Anzeige
AW: Codes vertauscht
16.10.2007 19:10:00
Wolfgang
Hallo Luschi,
Super - herzlichen Dank; das ist es, was ich suchte! - Verständnishalber noch eine Frage; an welcher Stelle weise ich die jeweiligen Textboxes in Word zu?; Ich habe ein UF in Word mit 5 verschiedenen Textboxes. Beschickt haben möchte ich davon lediglich 2, nämlich die TextboxAnzahl und die TextboxInhalt, das sind auf der UF die 4 und 5 Box. Ich würde nun gerne den Text aus der Tabelle C5:C26 in TextboxAnzahl, 4. Box und Text aus E5:E26 in TextboxInhalt, 5. Box exportiert haben. Wie könnte ich Deinen Code da noch anpassen? - Müßte ggfs. noch wegen des Zeilenumbruchs etwas beachtet werden?
Danke schon jetzt wieder für Deine Rückmeldung.
Herzliche Grüße
Wolfgang
Option Explicit

Sub Transfer_zu_Word_1()
Dim ws As Worksheet, rg1 As Range, rg2 As Range, _
s As String, i As Integer
Set ws = ThisWorkbook.Worksheets("Tabelle1")
Set rg1 = ws.Range("C6:C10")
Dim objWordApp
Dim objWordDoc
Dim objTB
Dim intI As Integer
'Mit geöffneter Word-Applikation connecten
Set objWordApp = GetObject(, "Word.Application")
objWordApp.Visible = True
i = 0
For Each rg2 In rg1
i = i + 1
s = CStr(rg2.Value)
objWordApp.Run "datenInUserform1", i, s
Next rg2
Set rg2 = Nothing
Set rg1 = Nothing
Set ws = Nothing
Set objWordApp = Nothing
End Sub


Anzeige
AW: Code in Word übersehen
16.10.2007 20:32:00
Wolfgang
Hallo Luschi,
sorry, da habe ich wohl etwas übersehen; hatte mir den UF in Word angesehen um festzustellen, dass sich dahinter kein Code befindet. Ich habe dabei wohl das Modul in VBA-Word übersehen. Da ich in der Vernetzung keinen unmittelbaren Zugriff auf das WORD-Dokument bzw. .dot habe, wäre denkbar, dass das Modul aus Excel jeweils an VBA in WORD exportiert werden kann ? Ich hatte mir das unter Recherche 'mal angesehen, um festzustellen, dass es innerhalb von Excel wohl funktioniert. Schon jetzt auch hier wieder herzlichen Dank für Deine Rückmeldung.
Herzliche Grüße
Wolfgang

Anzeige
AW: Code in Word übersehen
16.10.2007 23:18:00
Luschi
Hallo Wolfgang,
https://www.herber.de/bbs/user/46822.zip
wenn Du 1 neues Word-Dokument öffnest auf der Grundlage einer dot-Datei, dann gibt es darin natürlich keine selbstentwickeltem Makros. Deshalb gibt es jetzt 3 Dateien. Die bas-Datei enthält den Vba-Code für das Füllen des Word-Formulars. Die Reihenfolge ist jetzt so:
1. Excel-Datei öffnen
2. Word-Datei öffnen
3. Excel-Makro starten
4. im Excel-Makro wird die bas-Datei in den Vba-Code der geöffneten Word-Datei kopiert!
5. Daten aus den Excel-Tabellen werden zusammengestellt
6. Excel-Makro ruft Word-Makro auf und übergibt die Excel-Daten
7. Wordmakro schreibt die Daten ins Word-Formular
Es ist schon erstaunlich, was Vba-Code so alles kann. Eigentlich dürfte man man solche Dokumente mit Makros überhaupt nicht mehr öffnen...
Gruß von Luschi
aus klein-Paris

Anzeige
Fehlermeldung
17.10.2007 05:41:40
Wolfgang
Hallo Luschi,
erneut zunächst recht herzlichen Dank, da ist nun offensichtlich etwas realisierbar, was mir als Laie gar nicht als realisierbar erschien; Ich habe gerade Deine Dateien getestet, es erscheint allerdings in Excel VBA eine Fehlermeldung "Fehler beim Kompilieren" - "Projekt oder Bibliothek nicht gefunden"; Ich habe den Weg genauso gewählt, wie Du ihn beschrieben hast; Muß ich noch in Word oder Excel irgendentwas umstellen? - VBA markiert dann übrigens die Überschrift Sub Transfer_zuWord in gelb und hält dann an bei Chr(10). Weiter bin ich dann mit dem Test nicht mehr gekommen. - Danke auch jetzt schon wieder für Deine Rückmeldung.
Herzliche Grüße - Wolfgang
For Each rg2 In rg1
s = s & CStr(rg2.Value) & Chr(10)

Anzeige
AW: Fehlermeldung
18.10.2007 09:06:11
Luschi
Hallo Wolfgang,
habe mir unsere Korrespondenz noch mal angeschaut. Ich vermute mal, daß die neue Word-Datei auf Grundlage einer dot-Vorlage erstellt wird und sich das Formular darin befindet. Wenn das so ist, dann kannst Du das Vorhaben gleich wieder einstanzen; da dieses Formular per Vba-Code in der neuen Word-Datei nicht ansprechbar ist. Dass kann nur funktionerien vom Vba-Code der Vorlagendatei aus. Hier gehen Word und Excel verschiedene Wege.
Erstellt man in Excel eine neue xls-Datei aus einer xlt-Vorlagendatei, dann enthält diese neue Datei sämliche Objekte der Vorlage, auch das gesamte Vba-Projekt.
Macht man das in Word, also neue doc-Datei auf Grundlage einer dot-Vorlagendatei, dann enthält diese Datei nur die Texte und die Objekte der Textoberfläche (Tabellen, Buttons, ...); das Vba-Projekt wird nicht übernommen.
Es fehlt also das Formular und aller Vba-Code der Vorlagendatei. Deshalb kann man nach dem Abspeichern, Schließen und erneutem Öffnen der neuen Worddatei das Formular nie wieder aufrufen.
Beschreibe also bitte mal, waß bei Dir so passiert und was noch hinzukommen soll.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Fehlermeldung
18.10.2007 09:22:00
Wolfgang
Hallo Luschi,
ich habe Deine Codes noch gar nicht über die .dot getestet, sondern ausschließlich Deine Ausarbeitungen getestet. Die ZIP also in einen Ordner entpackt, Deine Excel-Datei geöffnet, Dein WORD-Dokument geöffnet und dann die Schaltfläche in Excel "zu WORD" betätigt, dabei ergab sich bei mir bereits die besagte Fehlermeldung. Muß ich selbst da evtl. etwas in Excel oder WORD noch einstellen?
Danke erneut für Deine Rückmeldungen.
Gruß - Wolfgang
For Each rg2 In rg1
s = s & CStr(rg2.Value) & Chr(10)

AW: Codes vertauscht
16.10.2007 20:28:54
P@ulchen
Hallo Luschi,
leider habe ich Deine aktuelle Mailaddy nicht und hoffe, Du hast die EMail-Benachrichtigung aktiviert...
Schau mal bitte hier : www.exceltreffen.de
Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige