Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Grafik per VBA in Excel und Word einfügen

Begonnen von cyberchris, Dezember 16, 2011, 10:18:42

⏪ vorheriges - nächstes ⏩

cyberchris

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

Hondo

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

cyberchris

Vielen Dank!
Recherchiere dann mal weiter und probiere deinen Link aus.

Gruß Christoph

Jonny

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

cyberchris

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

cyberchris

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

DF6GL

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.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

cyberchris

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

DF6GL

Hallo,,
da mußt Du halt mal nachsehen, was da nun in Datname drinsteht.

Mit


.
.
DatName = dok2
.
.

kann ich nicht viel anfangen....
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

cyberchris

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