Eingebettetes Bild und WorDoc autom. kopieren und in nächstem TAB

12/05/2010 - 14:03 von Sailor | Report spam
Ein in "Tabelle1" in Position "A6" eingebettetes kleines Worddoc mit der
Namensbezeichnung "TMB" (tàgl. Marktbericht), sowie ein ebenfalls im
gleichen Blatt eingebettes Bild in Position "A34", bilden die Basis für eine
tàgliche Preisliste die via WinFax und/oder eMail an einen augewàhlten
Kundenkreis geht. Jeder Kunde hat einen extra Tabellenblatt (TAB), welcher
durch Verweise aus Tabelle1 aktualisiert werden.

Nun müssen nur noch aus der "Tabelle1" das Worddoc (Zelle "A6") und das Bild
(Zelle "A34") in das jeweilige "Kunden-Tab" in Kopie übertragen werden. Beim
Worddoc darf es keine Verknüpfung sein, da u.U. individuelle und
kundenbezogene Textverànderungen erfolgen können/müssen. Die Kunden-Tabs
können bis zu 30 und mehr Tabs sein und der Copy&Paste-Vorgang soll
automatisch mit einem Makro ablaufen. Die individuellen Kundendaten werden
aus einer Kundenmatrix via SVerweis eingefügt.

Ich hoffe, dass ich das verstàndlich geschrieben habe.

Kann irgend jemand aus dem www-Excel-Orbit mit kurzen VBA-Codes helfen?
DANKE im voraus!

Thx
Sailor
 

Lesen sie die antworten

#1 Andreas Killer
12/05/2010 - 19:24 | Warnen spam
Sailor schrieb:

Ho ho, immer ruhig mit den Pferden, hab ein wenig Geduld. Ich sitze ja
nicht den ganzen Tag vor dem Rechner. ;-)

Ein in "Tabelle1" in Position "A6" eingebettetes kleines Worddoc mit der


Tja, das nutzt nix, weil dem Worddoc ist das wurscht wo es ist und der
Zelle ist es auch wurscht ob da was über ihr drüber ist. Anders
gesagt: Man kann nicht sagen "Liebe Zelle, sag mir mal was über Dir
drüber liegt."

Nun müssen nur noch aus der "Tabelle1" das Worddoc (Zelle "A6") und das Bild
(Zelle "A34") in das jeweilige "Kunden-Tab" in Kopie übertragen werden. Beim
Worddoc darf es keine Verknüpfung sein, da u.U. individuelle und


Dann machen wir es wie mit dem Bild, dann wird es einfach. Speicher
Dein Worddoc als richtige Datei "Word.doc" ab und zwar da wo auch
"Bild.jpg" liegt.

Dann solltest Du mal kucken wie groß das Worddoc in der Tabelle ist,
klick es an und dann lass dies Makro laufen:

Sub ErmittleBH()
Dim O As OLEObject
If Not TypeOf Selection Is OLEObject Then
MsgBox "Bitte das Word-Object nur einmal anklicken!"
Exit Sub
End If
Set O = Selection
O.Name = "Word1"
MsgBox "Width: " & O.Width & " Height: " & O.Height
End Sub

Die ermittelten Werte schreibst Du Dir auf und tràgst Sie an der
entsprechenden Stelle in der Sub InsertObj ein. (da steht ein "<=hier").

Wenn Du das gemacht hast, dann entfernst Du ggf. vorhandene Worddoc
aus den anderen Tabellen und làßt die Sub Main laufen.

Andreas.

Option Explicit

Sub Main()
Dim WS As Worksheet
'Durchlaufe alle Blàtter
For Each WS In Sheets
'Objecte einfügen
InsertObj WS
Next
End Sub

Sub InsertObj(ByVal WS As Worksheet)
Dim S As Shape, P As Picture, O As OLEObject
'In dieser Tabelle
With WS
'Fehlerbehandlung aus falls Bild nicht da
On Error Resume Next
'Bild löschen
.Shapes("Bild1").Delete
'Word-Object löschen
.OLEObjects("Word1").Delete
'Fehlerbehandlung ein
On Error GoTo 0

'Bild einfügen
Set P = .Pictures.Insert("Bild.jpg")
'Namen vergeben
P.Name = "Bild1"
'Shape-Object vom Bild holen
Set S = .Shapes("Bild1")
'Seitenverhàltnis aus
S.LockAspectRatio = msoFalse
'Größe setzen
S.Height = 210
S.Width = 470
'Positionieren
With .Range("A34")
S.Top = .Top
S.Left = .Left
End With

'Word-Object einfügen
Set O = .OLEObjects.Add(Filename:="Word.doc", _
Link:=False, DisplayAsIcon:=False)
'Namen vergeben
O.Name = "Word1"
'Shape-Object vom Word-Object holen
Set S = .Shapes("Word1")
'Seitenverhàltnis aus
S.LockAspectRatio = msoFalse
'Größe setzen
S.Height = 210 '<= hier
S.Width = 470
'Positionieren
With .Range("A6")
S.Top = .Top
S.Left = .Left
End With
End With
End Sub

Ähnliche fragen