Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 7214 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 ..
Ähnliche Inhalte
Visual Studio
gelöst Vb.net: Word-Doc seitenweise durchsuchen nach Textmarke (7)

Frage von ahstax zum Thema Visual Studio ...

Microsoft Office
gelöst Excel: Matirx mit Formel automatisch befüllen (5)

Frage von sims zum Thema Microsoft Office ...

VB for Applications
gelöst VBA - Bereich von Excel nach Word kopieren (6)

Frage von schwazza89 zum Thema VB for Applications ...

Microsoft Office
Erfahrungen Sharepoint 2016 in Verbindung mit Word 2010 (7)

Frage von DerWoWusste zum Thema Microsoft Office ...

Neue Wissensbeiträge
Mac OS X

Apple hat macOS High Sierra veröffentlicht

Information von Frank zum Thema Mac OS X ...

Viren und Trojaner

Ransomware or Wiper? RedBoot Encrypts Files but also Modifies Partition Table

(4)

Information von BassFishFox zum Thema Viren und Trojaner ...

Notebook & Zubehör

WOL bei HP Notebooks

(7)

Erfahrungsbericht von Henere zum Thema Notebook & Zubehör ...

Heiß diskutierte Inhalte
Windows 10
gelöst Netzwerkkarte schaltet sich erst nach dem Logon ein (24)

Frage von DerWoWusste zum Thema Windows 10 ...

Windows Server
Seit IP Umstellung DC DNS Fehler (22)

Frage von Yaimael zum Thema Windows Server ...

Grafik
gelöst CAD Arbeitsplätze (17)

Frage von Diddi93 zum Thema Grafik ...