Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: cyberchris am Dezember 16, 2011, 10:18:42

Titel: Grafik per VBA in Excel und Word einfügen
Beitrag von: cyberchris am Dezember 16, 2011, 10:18:42
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
Titel: Re: Grafik per VBA in Excel und Word einfügen
Beitrag von: Hondo am Dezember 16, 2011, 20:31:58
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
Titel: Re: Grafik per VBA in Excel und Word einfügen
Beitrag von: cyberchris am Dezember 17, 2011, 08:50:22
Vielen Dank!
Recherchiere dann mal weiter und probiere deinen Link aus.

Gruß Christoph
Titel: Re: Grafik per VBA in Excel und Word einfügen
Beitrag von: Jonny am Dezember 17, 2011, 17:31:30
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
Titel: Re: Grafik per VBA in Excel und Word einfügen
Beitrag von: cyberchris am April 02, 2012, 15:13:59
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
Titel: Re: Grafik per VBA in Excel und Word einfügen
Beitrag von: cyberchris am April 04, 2012, 12:12:56
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
Titel: Re: Grafik per VBA in Excel und Word einfügen
Beitrag von: DF6GL am April 04, 2012, 15:07:53
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.
Titel: Re: Grafik per VBA in Excel und Word einfügen
Beitrag von: cyberchris am April 10, 2012, 12:24:17
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
Titel: Re: Grafik per VBA in Excel und Word einfügen
Beitrag von: DF6GL am April 10, 2012, 18:42:11
Hallo,,
da mußt Du halt mal nachsehen, was da nun in Datname drinsteht.

Mit


.
.
DatName = dok2
.
.

kann ich nicht viel anfangen....
Titel: Re: Grafik per VBA in Excel und Word einfügen
Beitrag von: cyberchris am April 10, 2012, 21:09:31
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