Hallo zusammen,
kann man eine Grafik in ein Excelformular per VBA einfügen und in Word an eine Variable Stelle?
Das Excelformular wird wie folgt bearbeitet:
Dim DatName As String
DatName = dok2
Dim oXcl As New Excel.Application, ws As Excel.Worksheet
With oXcl
.Visible = True
.Workbooks.Open FileName:=DatName
.Cells(8, 9).Value = txtDatum
.Cells(9, 5).Value = txtAbteilung
.Cells(9, 7).Value = txtName
...
.ActiveWorkbook.PrintOut
.Quit
Bei Word sieht das folgendermaßen aus:
Dim objWord As Word.Application
Set objWord = CreateObject("Word.Application")
With objWord
.Visible = True
.Documents.Open (dokLS)
.ActiveDocument.FormFields("Abteilung").result = txtAbteilung.Value
.ActiveDocument.FormFields("Kurzzeichen").result = txtKurzzeichen.Value
.ActiveDocument.FormFields("Telefon").result = txtTelefon.Value
.ActiveDocument.FormFields("Telefax").result = txtFax.Value
End With
Vielen Dank!
Gruß Christoph
Hallo,
hab ich noch nie gemacht. Habe aber folgenden Link für dich gefunden:
http://www.office-loesung.de/ftopic292153_0_0_asc.php
Für die zweite Frage findest du sicherlich auch eine Lösung via Google.
Denke bei so was speziellem wird es ansonsten wenige Antworten nur geben.
Andreas
Vielen Dank!
Recherchiere dann mal weiter und probiere deinen Link aus.
Gruß Christoph
Hallo Christoph,
hier ein Codeschnipsel für Excel
' Excel Application setzen
Set objExcel = New Excel.Application
' öffnen: in Pfaddatei steht der vollständige Pfad und der Dateiname
' vorher habe ich mit DIR geprüft ob die Datei bereits vorhanden ist.
objExcel.Workbooks.Open Pfaddatei
' mappe aktivieren
objExcel.ActiveWorkbook.Activate
' Aktionen sichtbar machen, wenn auf false dann läuft Excel im Hintergrund
objExcel.Visible = True
' wsheet als Worksheet
Set wsheet = objExcel.Worksheets(1)
With wsheet.Pictures.Insert("c:\logo.bmp")
.Left = wsheet.Range("AI10").Left
.Top = wsheet.Range("A1").Top
End With
Hier eine bmp-Datei als Logo eingefügt.
Mit Left die Linke Position und mit Top die Postion von oben bestimmt.
Gruß
Johann
Hallo,
ich habe es erst jetzt geschafft das in Excel einzubauen.
Habe aber noch Probleme mit der Positionierung.
Wie kann ich die Grafik absolut positionieren. Aber nicht anhand einer Zelle; das passt nämlich nicht ganz und ich kann die Zellen aufgrund des Inhalts nicht anpassen.
Dim oXcl As New Excel.Application, ws As Excel.Worksheet
With oXcl
.Visible = True
.Workbooks.Open FileName:=DatName
.ActiveSheet.Pictures.Insert("bild.jpg").Select
.Quit
End With
Gibts hier eine Möglichkeit?
danke
gruß Christoph
Hallo,
ich die so gemacht:
Dim DatName As String
DatName = dok2
Dim oXcl As New Excel.Application, ws As Excel.Worksheet
With oXcl
.Visible = True
.Workbooks.Open FileName:=DatName
.ActiveSheet.Pictures.Insert("H:\test.jpg").Select
.ActiveSheet.Selection.ShapeRange.Top = Cells(44, 3).Top
.ActiveSheet.Selection.ShapeRange.Left = Cells(44, 3).Left
.ActiveSheet.Selection.ShapeRange.IncrementLeft 17
.ActiveSheet.Selection.ShapeRange.IncrementTop 6
.ActiveWorkbook.Close False
.Quit
End With
Leider funktioniert das nur, wenn ich in VBA mit Einzelschrift durchgehe. Wenn ich die Funktion automatisch ablaufen lassen kommt bei der Positionierung der Fehler: "objekt unterstützt diese Eigenschaft oder Methode nicht".
Woran kann das liegen? Habe es auch schon ohne "activeSheet" bei der Positionierung probiert.
Danke
gruß Christoph
Hallo,
versuch da mal so:
Dim oXcl As New Excel.Application, ws As Excel.Worksheet
oXcl.Visible = True
Set ws =oXcl.Workbooks.Open FileName:=DatName
With ws
.Pictures.Insert("H:\test.jpg").Select
.Selection.ShapeRange.Top = Cells(44, 3).Top
.Selection.ShapeRange.Left = Cells(44, 3).Left
.Selection.ShapeRange.IncrementLeft 17
.Selection.ShapeRange.IncrementTop 6
.Close False
End With
oXcl.Quit
Evtl auch mit dem Range-Objekt explizit arbeiten.
Hallo,
habe das so probiert. Bekomme dann aber einen Syntaxfehler bei .Workbooks.Open FileName:=DatName
Speziell bei "FileName"
Dim DatName As String
DatName = dok2
Dim oXcl As New Excel.Application, ws As Excel.Worksheet
oXcl.Visible = True
set ws = oxcl.Workbooks.Open fileName:=DatName
With ws
...
Gruß Christoph
Hallo,,
da mußt Du halt mal nachsehen, was da nun in Datname drinsteht.
Mit
.
.
DatName = dok2
.
.
kann ich nicht viel anfangen....
Hi,
daran kann es nicht liegen, da es zuvor auch funktioniert hat. Ist eine absolute Pfadangabe.
Muss ein Syntaxfehler sein. Beim Debugger wird der Begriff "FileName" angezeigt und nicht die dahinterstehende Variable.
Gruß Christoph