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

Mit Excel Makro Wordvorlage öffnen und Daten von Excel nach Word kopieren

Frage Entwicklung VB for Applications

Mitglied: TheEternalPhenom

TheEternalPhenom (Level 2) - Jetzt verbinden

01.12.2010 um 10:55 Uhr, 14971 Aufrufe, 5 Kommentare

Hallo Forengemeinde,

ich hätte gerne ein Problem.

Ich soll eine automatisierte Rechnung in Excel erstellen. Das ganze ist ein Schulprojekt, welches ohne Vorgabe des Lösungsweges erstellt werden soll. Ich habe die ganze Geschichte über eine UserForm gelöst. Bei der ganzen Sache funktioniert alles ohne Probleme außer eine Kleinigkeit.

Ich möchte die gesamte Rechnung in Word exportieren. Prinzipiell funktioniert dies auch. Mir ist aber die Idee gekommen ein Vorlage mit einer optisch ansprechenderen Kopf- und Fußzeile zu nutzen. Nach längerem suchen im Netz habe ich diverse Codes zum Lösen des Problems gefunden. Leider hat kein Code die gesamt gewünschten Funktionen. Eigentlich alle Codes haben entweder eine neue Word Datei geöffnet oder eine definierte Datei.
Durch etwas herum experimentieren bin ich zu folgendem Code gekommen:

01.
Private Sub CommandButton5_Click() 
02.
Dim AppWord As Word.Application 
03.
 
04.
Set AppWord = CreateObject("Word.Application") 
05.
AppWord.Visible = True 
06.
 
07.
Sheets("Tabelle1").Range(Cells(1, 1), Cells(50, 7)).Copy 
08.
AppWord.Documents.Add 
09.
AppWord.Selection.Paste 
10.
 
11.
Application.CutCopyMode = False 
12.
 
13.
Set AppWord = Nothing 
14.
End Sub 
Das Programm kopiert die Rechnung in ein neues Worddokument. Bisher sind alle Versuche gescheitert eine spezielle Worddatei zu öffnen. Entweder ich wurde von Fehlermeldungen zu geschüttet oder die Vorlage wurde geöffnet und für die Rechnung wurde ein neues Dokument geöffnet.

Momentan bin ich mit meinem Latein am Ende.
Ich würde mich über etwas Hilfe sehr freuen.

Schon einmal vielen Dank für eure Bemühungen im voraus.

Mit vorweihnachtlichen Grüßen

duffman521
Mitglied: 76109
01.12.2010 um 19:35 Uhr
Hallo duffman521!

Versuchs mal so:
01.
Const wdMove = 0        'Word-Konstanten 
02.
Const wdLine = 5 
03.
Const wdStory = 6 
04.
 
05.
Const InsertLine = 4    'Word-Einfügzeile 
06.
 
07.
Const DocPath = "E:\Test\Test.doc"	'Word-Dokument 
08.
 
09.
Private Sub CommandButton5_Click() 
10.
    Dim AppWord As Object 
11.
 
12.
    Set AppWord = CreateObject("Word.Application") 
13.
     
14.
    Sheets("Tabelle1").Range("A1:G50").Copy 
15.
     
16.
    With AppWord 
17.
        .Visible = True 
18.
        .Documents.Open DocPath 
19.
         With .Selection 
20.
            .HomeKey Unit:=wdStory, Extend:=wdMove      'Position 1. Zeile setzen 
21.
            .MoveDown Unit:=wdLine, Count:=InsertLine   'Position n. Zeilen nach unten 
22.
            .Paste 
23.
         End With 
24.
    End With 
25.
 
26.
    Set AppWord = Nothing 
27.
     
28.
    Application.CutCopyMode = False 
29.
End Sub
Wobei die Einfügzeile im Dokument schon existieren muss. D.h. per Cursor-Tasten navigierbar.

Gruß Dieter

[edit] Codezeile 22 in ein einfaches Paste geändert [/edit]
Bitte warten ..
Mitglied: TheEternalPhenom
02.12.2010 um 10:02 Uhr
Hallo didi1954,

vielen Dank für deine Hilfe ich hätte da aber noch ein Problem.

Zitat von 76109:
Wobei die Einfügzeile im Dokument schon existieren muss. D.h. per Cursor-Tasten navigierbar.

Wie darf ich das verstehen?

Ich nutze momentan ein Worddokument mit einr Kopf- und Fußzeile. Beim speichern des Dokumentes steht der Cursor im eigentlichen Dokument (nicht in Kopf- oder Fußzeile) in der ersten Zeile.
Ich erhalte in Zeile 22 die Fehlermeldung:

Laufzeitfehler '428':

Objekt unterstützt diese Eigenschaft oder Methode nicht.


Ich vor dem ausführen des Codes nur den Pfad der Datei und die Range verändert. Es dürfte also nicht an meinen Änderungen liegen. Kann es ggf. an Office 2000 liegen?

Gruß

duffman521
Bitte warten ..
Mitglied: 76109
02.12.2010 um 16:53 Uhr
Hallo duffman521!

Zitat von TheEternalPhenom:
> Wobei die Einfügzeile im Dokument schon existieren muss. D.h. per Cursor-Tasten navigierbar.

Wie darf ich das verstehen?
Mhm, soll heißen, dass der MoveDown nur funktioniert, wenn die entsprechende Zeile mit den Cursor-Tasten (Pfeil-Unten) angesteuert werden kann. Z.B. Neues Dokument 4 mal Return drücken, dann hat das Dokument schon mal 5 Zeilen und mit MoveHome wird die Zeile 1 angesteuert und mit anschließendem MoveDown 4 Zeilen nach unten (= Zeile 5). Ansonsten müsste die entsprechende Zeile per Paragraphs.Add - sowas in der Art - erst erzeugt werden.

Im Beispielcode habe ich gleich auf die Möglichkeit hinweisen wollen, wie die Tabelle auch wahlweise in einer anderen Zeile als der 1. Zeile per Move-Anweisungen eingefügt werden kann

Ich nutze momentan ein Worddokument mit einr Kopf- und Fußzeile. Beim speichern des Dokumentes steht der Cursor im
eigentlichen Dokument (nicht in Kopf- oder Fußzeile) in der ersten Zeile.
Die erste Text-Zeile entspricht MoveHome.
Ich erhalte in Zeile 22 die Fehlermeldung:
Word 2000 keine Ahnung? Sollte in Codezeile 22 mit:
01.
.Paste
genauso funktionieren

Gruß Dieter

[edit] obigen Code entsprechend geändert [/edit]
Bitte warten ..
Mitglied: TheEternalPhenom
02.12.2010 um 17:14 Uhr
Ich merke gerade das ich heute morgen auf der Leitung stand bzw. saß.

Jetzt ergibt alles Sinn. Funktioniert mit .Paste einwandfrei.

Vielen Herzlichen Dank für die Hilfe. Jetzt werden mich meine Klassenkameraden noch mehr hassen. *g*

Gruß

duffman521
Bitte warten ..
Mitglied: 76109
04.12.2010 um 18:50 Uhr
Hallo duffman521!

Zitat von TheEternalPhenom:
Ich merke gerade das ich heute morgen auf der Leitung stand bzw. saß.
War mir beim verfassen schon irgendwie klar, dass die Erklärung etwas unglücklich ausgedrückt ist
Jetzt ergibt alles Sinn. Funktioniert mit .Paste einwandfrei.
Freu mich zu hören
Vielen Herzlichen Dank für die Hilfe.
Yepp, gern geschehen
Jetzt werden mich meine Klassenkameraden noch mehr hassen. *g*
Besser Dich (Streber) als mich

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Microsoft Office
Excel 2010 - Microsoft Excel kann die Daten nicht kopieren (4)

Frage von EDV-Oellerking zum Thema Microsoft Office ...

VB for Applications
Excel VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Microsoft Office
gelöst Excel-Makro (7)

Frage von yuki13 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel Makro : Erst prüfen bei erfolgreicher IF einen Wert überschreiben (4)

Frage von Matze1508 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...