Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Word 2010 - Textmarken mit Exceldaten befüllen

Frage Microsoft Microsoft Office

Mitglied: anding

anding (Level 2) - Jetzt verbinden

18.02.2013 um 10:14 Uhr, 6721 Aufrufe, 11 Kommentare

VBA-Skript zum Befüllen von Word mit Exceldaten

Hallo Zusammen,

ich habe ein Problem im Word VBA. Ich suche eine Lösung, in der ich per VBA eine Exceldatei auslesen kann und die Daten in Word-Textmarken einfügen lasse.

Es soll so sein, beim öffnen der Datei werde ich gefragt, was ich auslesen will. Wähle ich Benutzer 1 aus, dann:

Textmarke 1 = Exceldatei1 Tabellenblatt1 Zelle A3
Textmarke 1 = Exceldatei1 Tabellenblatt1 Zelle A5
Textmarke 1 = Exceldatei1 Tabellenblatt1 Zelle A8
Textmarke 1 = Exceldatei1 Tabellenblatt5 Zelle C3
usw.

Lässt sich das irgendwie umsetzen, oder bin ich komplett auf dem Holzweg?!
Mitglied: miniversum
18.02.2013 um 14:57 Uhr
Für Textmarken weiß ich jetzt nicht aber für ein Textfeld ginge das ungefär so:
01.
Set xlWkb = GetObject("C:\Exceldatei1.xls") 
02.
ZellWert = xlWkb.Sheets("Tabellenblatt1").Range("A3").Value 
03.
xlWkb.Saved = True 
04.
xlWkb.Close 
05.
Set xlWkb = Nothing 
06.
ActiveDocument.CustomDocumentProperties("Textfeld1").Value = ZellWert
Vielleicht hilft dir das schon mal weiter
Bitte warten ..
Mitglied: 76109
18.02.2013, aktualisiert um 16:33 Uhr
Hallo miniversum!

Textmarken in etwa so:
01.
    strText = "Textmarken-Text" 
02.
     
03.
    With ActiveDocument 
04.
        If .Bookmarks.Exists("Textmarke 1") Then 
05.
            With .Bookmarks("Textmarke 1").Range.Words(1) 
06.
                If .Characters(1) > " " Then .Delete  'Textmarke-Inhalt ggf vorher löschen 
07.
               .InsertBefore strText 
08.
            End With 
09.
        Else 
10.
            MsgBox "Textmarke 1 nicht gefunden!", vbExclamation, "Fehler . . ." 
11.
        End If 
12.
    End With
Deine Codezeile 3 und 4 könntest Du auch durch diese Codezeile ersetzen:
01.
xlWkb.Close False  ' Schließen ohne Speichern
Gruß Dieter
Bitte warten ..
Mitglied: anding
19.02.2013 um 16:02 Uhr
Hallo,

ich bin schon recht weit - nur eine Frage stellt sich mir jetzt noch.
Ich will eine Select Case Anweisung in Verbindung mit einer ComboBox:

Wenn Punkt1 ausgewählt --> Mach das
Wenn Punkt2 ausgewählt --> Mach das
Wenn Punkt3 ausgewählt --> Mach das
.
.
.
.

Könnt ihr mir da helfen?!
Bitte warten ..
Mitglied: 76109
19.02.2013 um 18:06 Uhr
Hallo anding!

In etwa so:
01.
Private Sub ComboBox1_Change() 
02.
    Select Case ComboBox1.ListIndex 
03.
        Case 0 
04.
            MsgBox "Punkt1" 
05.
        Case 1 
06.
            MsgBox "Punkt2" 
07.
        Case 2 
08.
            MsgBox "Punkt3" 
09.
        Case Else 
10.
            MsgBox "PunktX" 
11.
    End Select 
12.
End Sub
Oder so:
01.
Private Sub ComboBox1_Change() 
02.
    Select Case ComboBox1.Value 
03.
        Case "Punkt1" 
04.
            MsgBox "Punkt1" 
05.
        Case "Punkt2" 
06.
            MsgBox "Punkt2" 
07.
        Case "Punkt3" 
08.
            MsgBox "Punkt3" 
09.
        Case Else 
10.
            MsgBox "PunktX" 
11.
    End Select 
12.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: miniversum
19.02.2013 um 18:33 Uhr
Zitat von 76109:
Hallo miniversum!

Deine Codezeile 3 und 4 könntest Du auch durch diese Codezeile ersetzen:
01.
> xlWkb.Close False  ' Schließen ohne Speichern 
02.
> 

Hallo Dieter

Ich weiß das ich das in eine einzelne Zeile packen könnte. Ich mag es allerdings manchmal separat um es übersichtlich zu halten.

Man könnte sich noch als Möglichkeit überlegen zwischen meine Zeile 1 und 2 ein
01.
savestate = xlWkb.Saved
zu packen und dann vor dem schliessen mit
01.
xlWkb.Saved = savestate
den Ursprungszustand wieder herzustellen.
Bitte warten ..
Mitglied: 76109
19.02.2013 um 19:48 Uhr
Hallo miniversum!

Wozu den Ursprungszustand wiederherstellen, wenn das Workbook eh geschlossen wird.

Zudem würde ich in Verbindung mit 'GetObject' nicht raten, ein Workbook zu speichern, sondern GetObject nur zum Auslesen von Workbooks zu verwenden. Was ich damit meine, findest Du heraus, indem Du mal ein Workbook mit GetObject speicherst und anschließend in Excel öffnest...

Gruß Dieter
Bitte warten ..
Mitglied: miniversum
19.02.2013 um 20:08 Uhr
Wenn es wirklich mit GetObject geöffnet wurde, dann ist das speicher flag sowieso nicht gesetzt und es wird nicht gespeichert.
War die Excel Mappe allerdings bereits geöffnet wird sie ja mit GetObject nicht noch einmal neu geöffnet. Änderungen könnten allerdings gemacht worden sein die noch nicht gespeichert sind. Da macht das rücksetzen Sinn. Der eigentliche close befehl muss natürlich auch bedingt werden.
Bitte warten ..
Mitglied: 76109
19.02.2013 um 20:31 Uhr
Hallo miniversum!

Ja, wenn das Workbook bereits geöffnet ist, wäre dass ein Zustand, den ich noch nicht getestet habe und unter dieser Annahme, würde ich dann auch kein GetObject verwenden oder vorher mit WSchell.AppActivate prüfen, ob die Datei bereits geöffnet ist...

Gruß Dieter
Bitte warten ..
Mitglied: anding
20.02.2013 um 07:25 Uhr
Vielen Dank euch allen!

Ein Thema hab ich noch. Öffne ich die dotm, startet das UserForm einwandfrei, nur will ich eben, dass es öffnet bei einem neuen Dokument nach dieser Vorlage. Hab ich den Code an der falschen Stele eingefügt?!

Private Sub Document_Open()
UserForm1.Show
End Sub
Bitte warten ..
Mitglied: 76109
20.02.2013, aktualisiert 22.02.2013
Hallo anding!

Versuchs mal mit:
01.
Private Sub Document_New()
Gruß Dieter
Bitte warten ..
Mitglied: anding
22.02.2013 um 10:38 Uhr
Vielen Dank!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
gelöst Word 2010 : Absatz - Abstand per GPO ändern (3)

Frage von johanna-p zum Thema Windows Server ...

Microsoft Office
Word 2010 druckt auf Vorderseite und Word 2013 druckt auf Rückseite (2)

Frage von pudelpointer zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...