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

Werte von Excel in Word

Werte von Excel in Word
Excel
Hallo zusammen,
es ist zwar ein Word/Excel-Problem aber ich denke ihr könnt mir bestimmt weiterhelfen ;-).
Ich habe eine Datenbank (Excel) mit Projekten (Name, Projektnummer, Status, etc.). Außerdem gibt es eine Word-Vorlage mit Textformularen.
Beim Start des Makros in Word kann der Projektmanager seine Projektnummer eingeben und bestimmte Daten (Name, Projektnummer, Status) sollen in das Worddokument (in die entsprechenden Textformulare) aus der Exceldatei übetragen werden.
Ich hab hier ein Code gefunden und angepasst. ABER ;-) die Werte werden nicht in ein Textformular eingefügt, sondern da wo der Kurser ist. Ich hab die Stelle mit dem Einfügen identifiziert aber hab leider keine Lösung wie ich den Code ändern soll damit der Wert z. B. "Name" (Zeille A) in Textformular1 und "Projektnummer" (Zeile B) in Textformular 2 einfügt wird. Hier mein Code

Option Explicit
Const ExcelDatei = "C:\Test.xls"
Const ExcelTabelle = "test"
Const AdrName = "A"         'Excel-Spalte Namen
Const AdrStr = "B"          'Excel-Spalte Projektnummer
Const AdrPlz = "C"          'Excel-Spalte Status
Const AdrOrt = "D"          'Excel-Spalte xxx
Const xlWhole = 1           'Excel-Konstanten
Const xlValues = -4163
Sub GetAddress()
Dim Search As String, Text As String
If CreateObject("Scripting.FileSystemObject").FileExists(ExcelDatei) = False Then
MsgBox "Die Excel-Datei wurde nicht gefunden!", vbExclamation, "Fehler"
Exit Sub
End If
Search = InputBox("Bitte eine Projektnummer eingeben", "Suchen")
If Search = "" Then Exit Sub
Text = GetExcelDaten(Search)
If Text = "" Then
MsgBox "Die Projektnummer wurde nicht gefunden!", vbInformation, "Suchergebnis"
Else
Selection.TypeText Text
End If
End Sub
Private Function GetExcelDaten(ByRef Search) As String
Dim Wks As Object, Found As Object
Set Wks = GetObject(ExcelDatei).Sheets(ExcelTabelle)
Set Found = Wks.Columns(AdrName).Find(Search, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:= _
False)
If Not Found Is Nothing Then
With Wks.Rows(Found.Row)
GetExcelDaten = .Columns(AdrName) & vbCrLf & vbCrLf & _
.Columns(AdrStr) & vbCrLf & _
.Columns(AdrPlz) & " " & _
.Columns(AdrOrt) & vbCrLf & vbCrLf
End With
End If
Application.DisplayAlerts = False
GetObject(ExcelDatei).Close True
Application.DisplayAlerts = True
End Function

AW: Werte von Excel in Word
04.05.2010 12:08:28
Excel
Hallo Michael,
Du schreibst den Inhalt der Variablen 'Text' mit dem Befehl 'Selection.TypeText Text".
Das ist genau wie Du es beschreibst, an der Position des Cursors im Word-Dokument.
Du solltest es mit vordefinierten Textmarken versuchen. Die solletst Du an die Positionen setzen, die den Inhalt von 'Text' aufnehmen. Im Code kannst Du dann einer entsprechenden Textmarke den Inhalt von 'Text' übergeben. Das geht z.B. mit: ActiveDocument.Bookmarks("test1").Range.Text = "Hallo"
Gruß
Jochen
AW: Werte von Excel in Word
04.05.2010 12:44:45
Excel
hmm ich verstehe nicht ganz wo soll ich deine Zeile einfügen?
"With WKs.Rows(Found.Row)"?
und mit Test1 meinst du das Textformular oder?
Anzeige
AW: Werte von Excel in Word
04.05.2010 14:13:17
Excel
Hallo Michael,
nein,
lege eine Textmarke "test1" in Deinem Dokument an. Nenne die Textmarke z.B. 'test1'.
Ersetze 'Selection.typeText Text' durch 'ActiveDocument.Bookmarks("test1").Range.Text = Text'.
Befasse Dich mit der Hilfe zu Textmarken. Im Web findest Du Unmengen von Beispielen.
Meine erstes Posting setzt einfach nur das Wort "Hallo" in eine Textmarke, es sollte ein Beispiel als Denkansatz sein. Du kannst natürlich auch das Word-Dokument und Deine Exceltabelle hochladen...
Gruß
Jochen
-vergiss beim nächsten Mal nicht die Anrede und den Gruß-
AW: Werte von Excel in Word
04.05.2010 14:44:52
Excel
Hallo Jochen,
vielen Dank!! Es klappt. Jetzt noch ein Punkt. Ich hab ja in Excel verschiebe Werte Spalte A, Spalte B und Spalte C. Die würde jetzt gerne in verschiede Textmarken ausgeben.
Also wenn Projekt gefunden dann immer Wert aus Spalte A in "test1" aus Spalte B "test 2"....
Wäre das möglich?
Danke und Gruß
Michael
Anzeige
AW: Ja, je Wert aus Excel eine Textmarke oT
04.05.2010 20:23:36
jowe
.
AW: Ja, je Wert aus Excel eine Textmarke oT
04.05.2010 21:16:12
Michael
Hallo Jochen,
nein das meinte ich gar nicht. Das ich pro Feld eine Textmarke machen muss war klar. Ich dachte eher an den Code. Mein Code fügt ja alle 3 Werte (Spalte A, B, und C) zu Textmarke "test1" ein. Wie kann mein Code anpassen das die Werte aus Spalte A zu "test1" Spalte B zu "test2" usw.
Gruß
Michael
AW: Ja, je Wert aus Excel eine Textmarke oT
05.05.2010 07:18:47
JOWE
Hi Michael,
Deine Funktion schreibt die gesamten Adressdaten auf Basis der Projektnummer in die Variable Test.
Mach aus der Funktion eine Prozedur (Sub), rufe die Prozedur mit Übergabe der Projektnummer auf und übergebe die Adressdaten in die als "Public" deklarierten Variable 'vTest1', 'vTest2', 'vTest3'. Den Inhalt dieser Variablen übergibst Du dann in die entsprechenden Textmarken deines Wordokumentes.
Vielleicht lädst du doch eine Beispieldatei Word und Excel hoch?
Gruß
Jochen
Anzeige
AW: Wert aus Excel in Word-Dokument; Textmarke oT
05.05.2010 09:35:34
JoWE
Michael,
hier das geänderte Makro: (in der Excel-Tabelle gibt's gar keine Adressdaten?)
Ich fülle daher das gelieferte Word-Dokument mit den Angaben anhand der Textmarkennamen.
'Allgemeiner Teil
Option Explicit
Const ExcelDatei = "C:\Test.xls"
Const ExcelTabelle = "test"
Const AdrName = "A" 'Excel-Spalte Namen
Const AdrStr = "B" 'Excel-Spalte Bezeichnung
Const AdrPlz = "C" 'Excel-Spalte Verantwortlicher
Const AdrOrt = "D" 'Excel-Spalte Antragsteller
Const xlWhole = 1 'Excel-Konstanten
Const xlValues = -4163
'Meine Neuerung
'***********************************************************
Public Text1, Text2, Text3, Text4 As String
'***********************************************************

Sub GetAddress()
Dim Search As String, Text As String
If CreateObject("Scripting.FileSystemObject").FileExists(ExcelDatei) = False Then
MsgBox "Die Excel-Datei wurde nicht gefunden!", vbExclamation, "Fehler"
Exit Sub
End If
Search = InputBox("Bitte eine Projektnummer eingeben", "Suchen")
If Search = "" Then Exit Sub
'Text = GetExcelDaten(Search)
    'Meine Änderungen
Call GetExcelDaten(Search)
'***********************************************************  
If Text1 = "" Then
MsgBox "Die Projektnummer wurde nicht gefunden!", vbInformation, "Suchergebnis"
Else
       'Meine Änderungen
'***********************************************************
ActiveDocument.Bookmarks("Projektnummer").Range.Text = Text1
ActiveDocument.Bookmarks("Projekttitel").Range.Text = Text2
ActiveDocument.Bookmarks("Projektmanager").Range.Text = Text3
ActiveDocument.Bookmarks("Projektauftraggeber").Range.Text = Text4
       '***********************************************************    
End If
End Sub

Sub GetExcelDaten(Search As String)
Dim Wks As Object, Found As Object
Set Wks = GetObject(ExcelDatei).Sheets(ExcelTabelle)
Set Found = Wks.Columns(AdrName).Find(Search, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:= _
False)
If Not Found Is Nothing Then
With Wks.Rows(Found.Row)
        'Meine Änderungen
'***********************************************************
Text1 = .Columns(AdrName)
Text2 = .Columns(AdrStr)
Text3 = .Columns(AdrPlz)
Text4 = .Columns(AdrOrt)
      '***********************************************************
'GetExcelDaten = .Columns(AdrName) & vbCrLf & vbCrLf & _
.Columns(AdrStr) & vbCrLf & _
.Columns(AdrPlz) & " " & _
.Columns(AdrOrt) & vbCrLf & vbCrLf
End With
End If
Application.DisplayAlerts = False
GetObject(ExcelDatei).Close True
Application.DisplayAlerts = True
End Sub

Anzeige
AW: Wert aus Excel in Word-Dokument; Textmarke oT
05.05.2010 09:48:09
Michael
Hallo Jochen,
SUPER funktioniert Perfekt!!! Vielen Dank!!
Gruß
Michael
AW: Wert aus Excel in Word-Dokument; Textmarke oT
10.05.2010 16:52:55
Michael
Hallo zusammen,
noch eine Frage und zwar werden die Werte 1:1 aus Excel übernommen mit allen Nachkommastellen. Ist es möglich über den VBA-Code die Ausgabe der Zahlen in Word zu formatieren.
Also z.b.
Excel 28574,568
Word soll stehen 28.574

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige