Bild in Formular unter Word einfügen

Hallo!

Ich möchte gerne ein Formular erstellen, bei dem, wenn „Dokument schützen“ aktiviert worden ist, es jedem Verwender möglich ist ein Foto einzufügen (z.B. Bild von sich selbst), nachdem einfügen des Bildes soll der Button oder der Hinweid entfallen. Einige Sachen hab ich schon probiert, aber es klappt einfach nicht. Kann mir jemand weiter helfen?

LOL, hab aehnliches Problem, was ein Zufall :smile:

Folgendes Problem hab ich:

Ich moechte gerne eine Dokumentenvorlage mit Word (Word 2002 SP3)
erstellen, die nachdem sie geschuetzt wird dem User trotzdem die
Moeglichkeit gibt ein Bild an einer bestimmten Stelle einzufuegen.

Bisher waren alle Versuche vergeblich, doch das muesste gehen mit
Insert->Fields… (Sorry, hab nur die englische Version) und/oder
Macros.

Es ist an sich ein ganz einfaches Artikel-Detail-Blatt, auf dem oben
rechts das Artikel-Bild vom User eingefuegt werden soll. Dies soll
natuerlich, falls groesser, auf die Maximal-Groesse geschrumpft
werden. Die restlichen Details sind Texte und Zahlen, die per Hand in
Formular-Felder eingetragen werden sollen. Wie gesagt, das Dokument
ist aber geschuetzt, um unnoetigen Veraenderungen vorzubeugen.

Das Einfuegen des Bildes kann dann entweder ueber Copy&amp:stuck_out_tongue_winking_eye:aste oder als
klassisches Einfuegen funktionieren. Oder sogar noch anders?! Ist an
sich egal.

Also, in Kurzform:

  1. will eine .dot machen
  2. in der soll ein Feld fuer ein Bild reserviert werden
  3. .dot wird per Formular-Funktionen geschuetzt
  4. User soll Bild in die .doc einfuegen koennen (copy&paste oder ueber Datei-Manager hin „huepfen“)
  5. Bild soll, wenn groesser als das Feld in Proportion geschrumpft werden

Hoffe es kann jemand helfen

Gruesse

Mark-Oliver

Genau das Problem wurde jetzt ausführlich beschrieben! Schön das es noch andere gibt, die die Probleme haben *g*. Hoffe wir erhalten bald hilfe!!!

  1. Entweder vor und nach dem Bereich, wo ein Bild eingefügt werden soll, einen Abschnittswechsel - fortlaufend - einfügen und über Extras - Dokument schützen - Formulare - hier den Abschnitt mit Bild vom Schutz ausnehmen.

  2. Mit Makro
    Public Sub ProtectedInsertPicture()
    Dim ilsPicture As InlineShape
    Dim strFileName As String
    Dim sngRatio As Single
    Const max_width = 216 ’ = 3 inches (in points)

’ temporarily unprotect
ActiveDocument.Unprotect

’ show Insert Picture dialog
With Dialogs(wdDialogInsertPicture)
If .Display = 0 Then Exit Sub
strFileName = .Name
End With

’ remove macrobutton
Selection.Delete

Set ilsPicture = ActiveDocument.InlineShapes _
.AddPicture( _
FileName:=strFileName, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Range:=Selection.Range)

’ limit size of picture to max_width (optional)
With ilsPicture
If .Width > max_width Then
sngRatio = CSng(max_width) / .Width
.Width = max_width
.Height = .Height * sngRatio
End If
End With

’ reprotect, keeping form field contents intact
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, _
NoReset:=True

’ show Insert Picture dialog
With Dialogs(wdDialogInsertPicture)
If .Display = 0 Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, _
NoReset:=True
Exit Sub
End If
strFileName = .Name
End With

End Sub

öffne mit Alt+F11 den Visual Basic Editor und klicke links bei Projekt Deine Formularvorlage an - dann Menue Einfügen - Modul - dann im rechten Fenster obiges Makro reinkopieren und schliessen. Dann im Formular (Vorlage) einen Makrobutton einfügen - Einfügen - Feld - Makrobutton - anklicken und in die Zeile hinter Macrobutton einen Text einfügen, den der Benutzer sehen soll z.B. („hier klicken und Bild einfügen“ - dann auf Optionen klicken - das Makro mit Namen ProtectedInsertPicture suchen - anklicken - Hinzufügen - ok. Im geschützten Formular kann der Benutzer nun die Aufforderung anklicken und ein Bild einfügen, danach ist das Dokument wieder geschützt.

Gruß Lisa

RE: ES KLAPPT!!! (fast perfekt) :smiley:
Hallo Lisa!

Super! Vielen Dank!

Das mit den Abschnitt-Wecheln hab ich einfach nicht geschnallt (scheiss englische version :smile:), aber das mit dem Macro hat gut funktioniert.

JEEEEEDOOOOOCH:

Gibt direkt nach dem Einfuegen des Bildes einen Run-time Errror (4605) und im Debuger wird „With Dialogs(wdDialogInsertPicture)“ gelb markiert.

Das Bild wird eingefuegt, aber auf Dauer so ne Fehlermeldung wegclicken zu muessen ist irgendwie doof :smile:

Alos, Macro klappt, jedoch mit nerviger Fehlermeldung! Vielleicht kriegst du die ja noch weg?! :smile:

Danke erstmal bis hierher!

Mark-Oliver

Hallo Lisa,

das sieht bei mir schon sehr gut aus, dennoch habe ich zwei Probleme:

  1. wenn das Bild eingefügt wird, dann kommt die Meldung
    ==> Laufzeitfehler 4605
    Dieser Befehl ist nicht verfügbar
    wenn ich dann aud Debuggen klicke, kommt eine gelb hinterlegte Schrift: With Dialogs(wdDialogInsertPicture)
    Da stimmt etwas nicht.

Und wie und wo kann ich das Makro erweitern, das das bild geändert werden kann und alle bilder die gleiche größe haben?

Gruß von einem ratlosem

Public Sub ProtectedInsertPicture()
Dim ilsPicture As InlineShape
Dim strFileName As String
Dim sngRatio As Single
Const max_width = 216 ’ = 3 inches (in points)

’ temporarily unprotect
ActiveDocument.Unprotect

’ show Insert Picture dialog
With Dialogs(wdDialogInsertPicture)
If .Display = 0 Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, _
NoReset:=True
Exit Sub
End If
strFileName = .Name
End With

’ remove macrobutton
Selection.Delete

Set ilsPicture = ActiveDocument.InlineShapes _
.AddPicture( _
FileName:=strFileName, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Range:=Selection.Range)

’ limit size of picture to max_width (optional)
With ilsPicture
If .Width > max_width Then
sngRatio = CSng(max_width) / .Width
.Width = max_width
.Height = .Height * sngRatio
End If
End With

’ reprotect, keeping form field contents intact
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, _
NoReset:=True

End Sub

Fehler von mir beim kopieren - nimm bitte das Macro (ist von Jay Freedman Microsoft Word MVP)

Gruß Lisa

Setze den Makrobutton doch in einen Positionsrahmen mit fester Größe (genau).

Gruß Lisa

Hey Lisa, du hilfst mir echt gut, aber wenn ich so einen Positionsrahmen setze, dann passt er das Bild in der Breite an, aber nicht in der Länge. Kann man in das Makro nicht eine einheitliche Größe definieren. (Pixel mal Pixel) ??
Gruß Xadi

Du musst in den Eigenschaften des Positionsrahmens die Höhe und Breite „genau“ einstellen - nicht mindestens, bei mir klappt es.

Gruß Lisa

*lisa knuddel!!!*

Vielen Dank!

Klappt einwandfrei!!!