Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Word-Marko: ein Bild aus einem festgelegten Ordner in ein Dokument einbinden

Frage Entwicklung

Mitglied: Mediamatik.Joshua

Mediamatik.Joshua (Level 1) - Jetzt verbinden

17.01.2014, aktualisiert 24.01.2014, 2818 Aufrufe, 11 Kommentare

Hallo zusammen,

Ich hoffe ihr könnt mir bei meinem Problem helfen. Es sieht folgender massen aus:


Die Ingenieure bei uns im Geschäft haben eine Webcam mit der sie immer ein Produktaufkleber fotografieren. Dieses Foto(.jpg), so habe ich es eingestellt, landet immer im gleichen Ordner und zwar immer unter anderem Namen "Image1 , Image2, Image3, Image4, ...".

Im Moment noch fügen Sie das entstandene Foto manuell in eine erstellte Wordvorlage (immer die gleiche) ein und formatieren es entsprechend (etwa 5cm von oberem Rand und 3 cm von dem unteren Rand). Das Bild wird nach dem Einfügen in das Worddokument wieder von ihnen aus dem "Webcamordner" gelöscht, sodass man sicher ist das man immer das richtige Foto verwendet und zwar dass, das man fotografiert hat.

Da nun immer nur ein Bild auf dem "Webcamordner" vorhanden ist, habe ich mir gedacht, dass man ein Makro in die Wordvorlage/-dokument einbettet. Und zwar dass das Makro bei der Aktivierung sofort das eine Bild aus dem "Webcamordner" ausschneidet und es mit dem oben genannten Abstand in das Dokument einfügt.

Ich wäre extrem froh wenn ich von ein paar Experten ein paar nützliche Antworten bekommen könnte.

Danke schon einmal im voraus.

Gruss
Joshua

Mitglied: colinardo
LÖSUNG 17.01.2014, aktualisiert 24.01.2014
Hallo Joshua, lust auf ein Spiel
Das was du möchtest ist kein Problem. Du erstellst in Word eine Vorlage (*.dotm), und fügst folgenden Code im VBA-Editor in ThisDocument im Vorlage-Dokument ein:
01.
Private Sub InsertWebCamImage() 
02.
    strPath = "E:\webcam-bilder" 
03.
    strImage = Dir(strPath & "\*.jpg") 
04.
    If strImage <> "" Then 
05.
        Dim shpCanvas As Shape 
06.
        imagePath = strPath & "\" & strImage 
07.
        posLeftMM = 20 
08.
        posTopMM = 50 
09.
        wCanvasMM = 200 
10.
        hCanvasMM = 150 
11.
        Set shpCanvas = ActiveDocument.Shapes.AddCanvas(mmToPoint(posLeftMM), mmToPoint(posTopMM), mmToPoint(wCanvasMM), mmToPoint(hCanvasMM)) 
12.
        shpCanvas.WrapFormat.Type = wdWrapSquare 
13.
        shpCanvas.CanvasItems.AddPicture imagePath, False, True, 0, 0, shpCanvas.Width, shpCanvas.Height 
14.
        'Bild im Verzeichnis löschen 
15.
        Kill imagePath 
16.
    End If 
17.
End Sub 
18.
 
19.
Private Sub Document_New() 
20.
    InsertWebCamImage 
21.
End Sub 
22.
 
23.
Private Function mmToPoint(ByVal length As Double) 
24.
    pointInMM = 0.352777778 
25.
    mmToPoint = Round(length / pointInMM, 0) 
26.
End Function
Dann musst du noch den Pfad zum Ordner in dem das WebCam-Bild liegt in Zeile 2 des Codes anpassen (ohne Backslash am Ende). Im Script gehe ich davon aus das dein WebCam-Bild die Endung *.jpg besitzt (Zeile 3). Dann das ganze speichern. Wenn man jetzt auf diese Vorlage einen Doppelklick im Explorer macht, wird automatisch ein neues Dokument von der Vorlage erstellt, das WebCam-Bild eingefügt und im WebCam-Ordner gelöscht. Leider geht aus deiner Beschreibung kann nicht genau hervor wie das Bild positioniert sein soll (Seite Quer- oder Hochformat?, Größe des Bildes?); habs mal grob positioniert und eine Größe festgelegt (s.Code)

Grüße Uwe
Bitte warten ..
Mitglied: Mediamatik.Joshua
20.01.2014 um 07:51 Uhr
Hallo Uwe,

DANKE DANKE DANKE!! Tolle Antwort!

Ich bin leider erst wieder ab Mittwoch im Geschäft. Aber ich werde dir natürlich sofort bescheid sagen ob es funktioniert hat.

Nochmal danke und Gruss
Joshua
Bitte warten ..
Mitglied: Mediamatik.Joshua
24.01.2014 um 15:20 Uhr
Hallo Uwe,

Nochmal danke für die tolle Antwort. Es hat wunderbar funktioniert!!! Ich habe das Bild im Code gut formatieren können und alles hat wunderbar geklappt.

Es gibt jetzt nur ein Problem und ich hoff du kannst mir helfen. Ich habe in das Dokument noch ein paar Steuerelemente in die Vorlage eingebaut. Ich habe dann das Dokument so geschützt, das man die Steuerelemente gut bedienen konnte.

Nur funktioniert aufgrund des Schutzes, dass Makro nichtmehr.

Wenn ich auf Debuggen klicke hebt es mir die Zeile 12 (shpCanvas.WrapFormat...) gelb hervor.

Hättest du eine Lösung für dieses Problem ?

Danke Danke für die Antwort und Gruss
Josh
Bitte warten ..
Mitglied: colinardo
LÖSUNG 24.01.2014, aktualisiert um 17:02 Uhr
Hallo Josh,
kein Problem, dazu musst du für das Dokument im Code vor dem Einfügen des Bilder kurzzeitig den Schutz ausschalten und danach wieder einschalten: (Im Code wird jetzt davon ausgegangen das du kein Kennwort für den Schutz angelegt hast)
01.
Sub InsertWebCamImage() 
02.
 
03.
    ' Hier wird der Dokumentenschutz aufgehoben falls er eingeschaltet ist 
04.
    If ActiveDocument.ProtectionType <> wdNoProtection Then 
05.
        ActiveDocument.Unprotect 
06.
    End If 
07.
 
08.
    strPath = "E:\webcam-bilder" 
09.
    strImage = Dir(strPath & "\*.jpg") 
10.
    If strImage <> "" Then 
11.
        Dim shpCanvas As Shape 
12.
        imagePath = strPath & "\" & strImage 
13.
        posLeftMM = 20 
14.
        posTopMM = 50 
15.
        wCanvas = 200 
16.
        hCanvas = 150 
17.
        Set shpCanvas = ActiveDocument.Shapes.AddCanvas(mmToPoint(posLeftMM), mmToPoint(posTopMM), mmToPoint(wCanvas), mmToPoint(hCanvas)) 
18.
        'shpCanvas.WrapFormat.Type = wdWrapSquare 
19.
        shpCanvas.CanvasItems.AddPicture imagePath, False, True, 0, 0, shpCanvas.Width, shpCanvas.Height 
20.
        'Bild im Verzeichnis löschen 
21.
        Kill imagePath 
22.
    End If 
23.
 
24.
    ' Hier wird der Schutz wieder eingeschaltet und nur das Ausfüllen von Formularfeldern erlaubt 
25.
    ActiveDocument.Protect wdAllowOnlyFormFields 
26.
 
27.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: Mediamatik.Joshua
24.01.2014 um 15:43 Uhr
Hallo,

Doch ich musste das Passwort 123 einsetzen.

Bis jetzt sieht mein Code folgendermassen aus:

Private Sub InsertWebCamImage()
If ActiveDocument.ProtectionType <> wdNoProtection Then
ActiveDocument.Unprotect
End If

strPath = "T:\Informatik\Uebungsordner\bilder"
strImage = Dir(strPath & "\*.jpg")
If strImage <> "" Then
Dim shpCanvas As Shape
imagePath = strPath & "\" & strImage
posLeftMM = 120
posTopMM = 40
wCanvasMM = 60
hCanvasMM = 45
Set shpCanvas = ActiveDocument.Shapes.AddCanvas(mmToPoint(posLeftMM), mmToPoint(posTopMM), mmToPoint(wCanvasMM), mmToPoint(hCanvasMM))
shpCanvas.WrapFormat.Type = wdWrapFront
shpCanvas.CanvasItems.AddPicture imagePath, False, True, 0, 0, shpCanvas.Width, shpCanvas.Height
'Bild im Verzeichnis löschen
Kill imagePath
End If
ActiveDocument.Protect wdAllowOnlyFormFields
End Sub

Private Sub Document_New()
InsertWebCamImage
End Sub

Private Function mmToPoint(ByVal length As Double)
pointInMM = 0.352777778
mmToPoint = Round(length / pointInMM, 0)
End Function


----> wo muss ich jetzt das PW einschreiben?

Danke für deine Geduld
Bitte warten ..
Mitglied: colinardo
LÖSUNG 24.01.2014, aktualisiert um 17:02 Uhr
hier:
ActiveDocument.Unprotect "123"
und hier fürs erneute schützen mit dem selben Password hier:
ActiveDocument.Protect wdAllowOnlyFormFields, Password:="123"
sei dir aber bewusst das wenn einer den Code einsieht das Passwort sehen kann, außer du verpasst dem VBA-Projekt zusätzlich ein Password.
Bitte warten ..
Mitglied: Mediamatik.Joshua
24.01.2014 um 16:56 Uhr
Da wird niemand ins VBA-Projekt schauen Ist auch kein Dokument von strengster Geheimhaltung.

OK !! Ich kann dir garnicht genug danken! Das war eine echte Hilfe!!!

Freundliche Grüsse
Josh
Bitte warten ..
Mitglied: colinardo
LÖSUNG 24.01.2014, aktualisiert um 17:11 Uhr
Keine Ursache.
Beitrag bitte noch auf gelöst setzen. Merci.

Viel Erfolg weiterhin...
Grüße Uwe
Bitte warten ..
Mitglied: EddyCurrent
01.06.2017 um 19:17 Uhr
Hallo,
ich stehe momentan vor einem ganz ähnlichen Problem, wie oben beschrieben. Der Code den ihr hier stehen habt funktioniert soweit einwandfrei. Das Problem ist nur, wenn ich weitere Bilder über meinen Button einfüge, werden die alten nur überlappt und die Datei immer größer. Was muss ich machen dass das vorhergehende Bild aus meinem Dokument entfernt wird, bevor ein neues Bild eingefügt wird. Hab leider Null Erfahrung was VBA betrifft und wäre sehr dankbar für eure Hilfe.

Gruß
Bitte warten ..
Mitglied: colinardo
02.06.2017, aktualisiert um 10:02 Uhr
Zitat von EddyCurrent:

Hallo,
ich stehe momentan vor einem ganz ähnlichen Problem, wie oben beschrieben. Der Code den ihr hier stehen habt funktioniert soweit einwandfrei. Das Problem ist nur, wenn ich weitere Bilder über meinen Button einfüge, werden die alten nur überlappt und die Datei immer größer. Was muss ich machen dass das vorhergehende Bild aus meinem Dokument entfernt wird, bevor ein neues Bild eingefügt wird. Hab leider Null Erfahrung was VBA betrifft und wäre sehr dankbar für eure Hilfe.
Servus @EddyCurrent, willkommen auf Administrator.de.
Das nächste mal kontktiere mich direkt via PM oder mach für sowas einen neuen Thread auf. Fremde Fragen-Threads zu übernehmen sehen wir hier nicht so gerne. Merci.
01.
Private Sub InsertWebCamImage() 
02.
    strPath = "A:\images" 
03.
    strImage = Dir(strPath & "\*.jpg") 
04.
    If strImage <> "" Then 
05.
        Dim shpCanvas As Shape 
06.
        imagePath = strPath & "\" & strImage 
07.
        posLeftMM = 20 
08.
        posTopMM = 50 
09.
        wCanvasMM = 200 
10.
        hCanvasMM = 150 
11.
        For Each shp In ActiveDocument.Shapes 
12.
            If shp.Title = "mytag" Then 
13.
                shp.Delete 
14.
                Exit For 
15.
            End If 
16.
        Next 
17.
        Set shpCanvas = ActiveDocument.Shapes.AddCanvas(mmToPoint(posLeftMM), mmToPoint(posTopMM), mmToPoint(wCanvasMM), mmToPoint(hCanvasMM)) 
18.
            shpCanvas.Title = "mytag" 
19.
        shpCanvas.WrapFormat.Type = wdWrapSquare 
20.
        shpCanvas.CanvasItems.AddPicture imagePath, False, True, 0, 0, shpCanvas.Width, shpCanvas.Height 
21.
        'Bild im Verzeichnis löschen 
22.
        Kill imagePath 
23.
    End If 
24.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: EddyCurrent
02.06.2017 um 10:26 Uhr
Hey, erstmal danke für die herzliche Begrüßung und natürlich auch für die schnelle Hilfestellung.

Upps, das wusste ich nicht.. Sorry.. Ich werde es beim nächsten mal beherzigen.

Grüße
Bitte warten ..
Ähnliche Inhalte
Visual Studio
Alle Word-Dokumente in einem Ordner drucken u Fehler ignorieren
gelöst Frage von ahstaxVisual Studio4 Kommentare

Hallo, ich würde gerne alle Word-Dokumente in einem Ordner (aus FolderBrowserDialog1.ShowDialog() = DialogResult.OK) drucken. Dabei sollen Meldungen wie "Der ...

Backup
Backup von WORD dokument
gelöst Frage von justdanBackup9 Kommentare

Hallo, Ein WORD Dokument wurde überschrieben! Kann ich irgendwie dieses DOC Backupen von gestern oder vorgestern machen? Also Veritas ...

Microsoft Office
Word Dokumente öffnen sich nicht
Frage von xbast1xMicrosoft Office5 Kommentare

Hallo zusammen, ein MA hat das Problem, dass wenn mehrere Word Dokumente geöffnet sind sich keine zusätzlichen öffnen lassen. ...

Microsoft Office
Formatierung in Word-Dokument verändert sich
Frage von CorrbenMicrosoft Office4 Kommentare

Hallo zusammen, ich habe bei einigen Nutzern ein komisches/nicht reproduzierbares Problem. Es existiert eine Word-Vorlage, die wohl mit Word ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 14 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 17 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 17 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 21 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...