VBA- Excelsheet in Worddokument integrieren

Kriztopf

Grünschnabel
Hallo allerseits.

Ich wühle mich schon seit 2 Tagen durch einige Foren und finde einfach nicht das richtige :confused:

Ich hab ein einfaches problem:
Ich möchte Excel-Datei "Kalk.xls" in ein Word-Dokument einbinden und zwar so das nur der Bereich A1-H7 angezeigt wird. Ich arbeite inerhalb der Tabelle mit Formeln und ich möchte einige Werte verändern können bevor ich die Word Datei drucke... dh. ich möchte nicht nur den Inhalt der Exceltabelle in eine Wordtabelle übertragen.
Und ganz wichtig ist mir das ich die Exceldatei ohne Verlinkung öffne!

Kann mir da jemand helfen? Ich habe es so probiert :

Code:
Sub kalkulation_anzeigen()
'
' kalkulation Makro
'
    Selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.12", _
    FileName:="c:\Kalk.xls", _
    LinkToFile:=False, _
    DisplayAsIcon:=False 'Erstellung des Arbeitsblattes und Öffnen von Excel
    Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
End Sub


Ich finde aber keine Lösung um den angezeigten Bereich bzw. die Fenstergröße des Excel-Objekts festzulegen (dh mich stört es sehr das die Komplette Exceldatei angezeigt wird.. das Fenster ist so unschön riesig) und in VBA bin ich (weiß Gott) kein Profi.

Ich habe woanders Hilfe erhalten aber für den neuen Ansatz habe ich keine Lösung gefunden die Exceldatei ohne Verlinkung zu öffnen:

Code:
Sub kalkulation_anzeigen()
'
' kalkulation Makro
'
    Selection.Fields.Add Range:=Selection.Range, _
        Text:="LINK Excel.Sheet.12 ""c:\\Kalk.xls"" ""Test"" \a \p"
   
    Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
End Sub

vielen Dank im vorraus und ich hoffe mir kann da jemand behilflich sein.

Grüße,
Christoph
 
Moin,

muss es denn VBA sein? Mit ganz "normalen" Bordmitteln in Word geht das viel einfacher!

Ich denke du kennst das:
  • In Excel Bereich markieren und kopieren
  • Dann in Word als Excel-Objekt einfügen und auf "Verknüpfen" klicken
  • Und danach Änderungen in Excel oder Word (dort per Doppelklick auf die Tabelle) vornehmen.
Im Anhang ist ein Beispiel.
 

Anhänge

Zuletzt bearbeitet:
Hallo! :)

Ja.. dieser Arbeitsschritt fällt bei mir quasie 10mal pro sekunde an und daher würde ich es gerne per Knopfdruck oder Tastaturkürzel erledigen können :)
Trotzdem vielen Dank für deine Hilfe!!

Gruß,
Christoph
 
Hallo Kriztopf,
ich habe zurzeit das selbe Problem. Wollte mal fragen ob du schon eine lösung gefunden hast.
gruß

airdjan
 
Sub EinfuegenExcelTab()

Selection.InsertFile FileName:="c:\\Kalk.xls", Range:="A1:C3", _
ConfirmConversions:=False, Link:=False, Attachment:=False

End Sub

greetz :)
 
Es ist lange her.. ich habe es verdrängt.. aber die letzte Lösungsmöglichkeit knallt mir direkt mal nen Error raus :-(
Eines schönen Tages.... ich freu mich darauf :-D
 
Hallo allerseits.

Ich wühle mich schon seit 2 Tagen durch einige Foren und finde einfach nicht das richtige :confused:

Ich hab ein einfaches problem:
Ich möchte Excel-Datei "Kalk.xls" in ein Word-Dokument einbinden und zwar so das nur der Bereich A1-H7 angezeigt wird. Ich arbeite inerhalb der Tabelle mit Formeln und ich möchte einige Werte verändern können bevor ich die Word Datei drucke... dh. ich möchte nicht nur den Inhalt der Exceltabelle in eine Wordtabelle übertragen.
Und ganz wichtig ist mir das ich die Exceldatei ohne Verlinkung öffne!

Kann mir da jemand helfen? Ich habe es so probiert :

Code:
Sub kalkulation_anzeigen()
'
' kalkulation Makro
'
    Selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.12", _
    FileName:="c:\Kalk.xls", _
    LinkToFile:=False, _
    DisplayAsIcon:=False 'Erstellung des Arbeitsblattes und Öffnen von Excel
    Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
End Sub


Ich finde aber keine Lösung um den angezeigten Bereich bzw. die Fenstergröße des Excel-Objekts festzulegen (dh mich stört es sehr das die Komplette Exceldatei angezeigt wird.. das Fenster ist so unschön riesig) und in VBA bin ich (weiß Gott) kein Profi.

Ich habe woanders Hilfe erhalten aber für den neuen Ansatz habe ich keine Lösung gefunden die Exceldatei ohne Verlinkung zu öffnen:

Code:
Sub kalkulation_anzeigen()
'
' kalkulation Makro
'
    Selection.Fields.Add Range:=Selection.Range, _
        Text:="LINK Excel.Sheet.12 ""c:\\Kalk.xls"" ""Test"" \a \p"
   
    Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
End Sub

vielen Dank im vorraus und ich hoffe mir kann da jemand behilflich sein.

Grüße,
Christoph

Soooo.. ich wäre bereit für die Lösung dieses Problems zu bezahlen. Wenn zusätzlich ne Möglichkeit besteht das eingefügt Excelobjekt formatiert werden kann das es Layout->vor den Text gelegt werden kann.. dann rein damit. Falls jemand interesse hat PM an mich.. Hoffe das hier ließt der/die Richtige.. oder jemand der so jemanden kennt.... HILFEEEE

Vielen Dank.
 
Also du hattest vor ziemlich genau 1 Jahr ein Problem und hast jetzt bemerkt das du dieses Problem noch immer hast?

dh. ich möchte nicht nur den Inhalt der Exceltabelle in eine Wordtabelle übertragen.

Und ganz wichtig ist mir das ich die Exceldatei ohne Verlinkung öffne!

Ich versuche gerade zu verstehen welches Problem du hast doch ich komme nicht dahinter.

- Was bedeutet du willst nicht nur den Inhalt der Excel Tabelle übertragen?
- Was verstehst du unter "ohne Verlinkung"?

Du hast eine Excel Tabelle und möchtest aus dieser einen bestimmten Bereich ("A1:H7") in Word haben wobei Änderungen in Excel sofort in Word angezeigt werden sollen.
Das kannst du so wie am 06.07.09 von Drogist beschrieben erledigen. Wenn du in Excel etwas änderst, wird es sofort nach Word übertragen.

Der Bereich der Excel Tabelle soll so formatiert werden das er vor den Text gelegt werden kann?
Dann klicke den Bereich den du wie oben beschrieben eingefügt hast mit der rechten Maustaste an und formatieren ihn entsprechend.

Soooo.. ich wäre bereit für die Lösung dieses Problems zu bezahlen
Wenn ich dich falsch verstanden habe, dann sag nochmal Bescheid. Ansonsten melde dich und ich geb dir meine Kontonummer ;)

Gruß Thomas
 
Hallo Thomas,

ich hab mich quasie ein Jahr mit dem Kompromiss abgefunden den ich gerade verwende.
Und in der Tat ist meine Beschreibung recht treffend, auch wenn sie nicht direkt den Anschein erweckt :-)
Und wenn es dich interessiert kannst du beide Fälle gerne mal testen.. es gibt nen riiiiesigen unterschied zwischen beiden Lösungen und keine von beiden
gefällt mir :-D .. und auch wenn es mit Rechtsklick.. kopieren und einfügen geht.. auch wenn du sagst es sind nur 4-5 Klicks... an manchen Tagen komm
ich allein dadurch auf 1000000 Mausklicks extra und da es ja irgendwie anders geht will ich diese nicht mehr machen müssen :-)
Also so ausführlich beschrieben wie ich es kann:

Halb akzeptierte Lösung mit Kompromissen 1:
Code:
Sub kalkulation_anzeigen()
'
' kalkulation Makro
'
    Selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.12", _
    FileName:="c:\Kalk.xls", _
    LinkToFile:=False, _
    DisplayAsIcon:=False 'Erstellung des Arbeitsblattes und Öffnen von Excel
    Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
End Sub

Was an dieser Lösung gut ist im Vergleich zur anderen Lösung:

Wenn ich diese Lösung verwende ist jede Worddatei samt einbezogener Kalkulationstabelle eigenständig
(ich kann also die Datei Kalk.xls verändern, ohne das ich jedes mal wenn ich eine Worddatei öffne, in diese ich die Kalkulation mit oben genanntem
Code eingefügt habe, gefragt werde: "Dieses Dokument enthällt Verknüpfungen, die möglicherweise auf andere Dateien verweisen. Möchten sie [...] ?" ). Nein.. ich möchte es nicht.. niemals.. nie wieder ;)

Mein Problem mit dieser Lösung:

Wenn ich die Kalkulation so in das Dokument einfüge wirds hässlich. Meine Kalkulationsdatei "Kalk.xls" hat 130Zeilen und 10 Spalten die ich zur Bereichnung leider Brauche.
Ich will jedoch nur einen Teilbereich anzeigen lassen. Mit der Lösung oben werden alle Zeilen und Spalten dargestellt.. und da auf dem DinA4 Dokument nunmal zuwenig
Platz ist skaliert er es unlesbar klein. Ich will also wenn ich einen Doppelklick auf das Objekt inerhalb des Worddokuments Werte verändern können.. er soll mir aber bitte
nur den kleinen Bereich anzeigen wo drin steht was mich interessiert ;-)
Naja und ... Rechtsklick -> Objekt formatieren.. -> Layout -> Hinter den Text .. ich mach es nicht gern.


Halb akzeptierte Lösung mit Kompromissen 2:
Code:
Sub kalkulation_anzeigen()
'
' kalkulation Makro
'
    Selection.Fields.Add Range:=Selection.Range, _
        Text:="LINK Excel.Sheet.12 ""c:\\Kalk.xls"" ""Test"" \a \p"
   
    Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
End Sub

Was an dieser Lösung gut ist im Vergleich zur anderen Lösung:

Juhu.. ich kann den Anzeigebereich festlegen... hübsch hübsch hübsch :-)


Mein Problem mit dieser Lösung:

"Dieses Dokument enthällt Verknüpfungen, die möglicherweise auf andere Dateien verweisen. Möchten sie [...] ?" ). Nein.. ich möchte es nicht.. niemals.. nie wieder ;)
Naja und ... Rechtsklick -> Objekt formatieren.. -> Layout -> Hinter den Text .. ich mach es nicht gern.


Warum ich bereit bin dafür zu bezahlen?

  • Weil ich genervt bin
  • Weil ich weiß, dass es möglich ist es per Makro machen zu können
  • Weil ich jemanden ein paar $ reicher machen möchte der es kann

Grüße.
 
Hallo Christoph,

kannst du mal eine fertige Datei mit Beispieldaten hier einstellen. Mich würde vor allem mal interessieren wie du dir die Positionierung genau vorstellst.

Gruß Thomas
 

Neue Beiträge

Zurück