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

Mitglied: Mediamatik.Joshua

Mediamatik.Joshua (Level 1) - Jetzt verbinden

17.01.2014, aktualisiert 24.01.2014, 3472 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
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
Saubere HTML aus Word-Dokument
Frage von peterpaMicrosoft Office19 Kommentare

Hallo, kennt jemand eine Möglichkeit ein Word-Dokument in eine "saubere" HTML-Seite zu wandeln? Ja es gibt die Möglichkeit diese ...

Microsoft Office

Word-Dokument ändert automatisch Formatierung

gelöst Frage von HertieMicrosoft Office3 Kommentare

Guten Morgen Gemeinde, ich stehe gerade vor einem Problem, das ich nicht verstehe und wende mich daher an euch! ...

Windows Server

Word-Dokument mit Powershell bearbeiten

gelöst Frage von Peter0816Windows Server5 Kommentare

Hallo, ich würde gerne ein Worddokument, welches ich mit Variablen versehen habe, durch Werte mit Powershell ersetzten. Hatte mir ...

Neue Wissensbeiträge
LAN, WAN, Wireless
OPNsense Captive Portal mit vordefnierten Voucher
Tipp von Crusher79 vor 7 StundenLAN, WAN, Wireless

Hallo, Ziel war es vorhandene Klienten-Daten (Nummer im System) und Kennwörter anzulegen. Voucher werden durch externes Programm in Papierform ...

Administrator.de Feedback
Entwicklertagebuch: Die nächste Version
Information von admtech vor 1 TagAdministrator.de Feedback6 Kommentare

Hallo Administrator User, vielleicht haben es einige User schon mitbekommen: Wir arbeiten aktuell an einer komplett neuen Version von ...

Windows Server

Active Directory ESE Version Store Changes in Server 2019

Information von Dani vor 4 TagenWindows Server

Moin, Last month at Microsoft Ignite, many exciting new features rolling out in Server 2019 were talked about. But ...

Exchange Server

Microsoft Extending End of Support for Exchange Server 2010

Information von Dani vor 4 TagenExchange Server5 Kommentare

Moin, After investigating and analyzing the deployment state of an extensive number of Exchange customers we have decided to ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Zukunftsicheres Heimnetzwerk aufbauen
Frage von CRO-WarriorNetzwerkgrundlagen16 Kommentare

Hallo Leute. Ich bin dabei das Haus in Kroatien zu renovieren. Da hab ich jetzt die Möglichkeit alles so ...

Router & Routing
Anmeldung am Router von einer ext. IP?
Frage von BigSnakeyeRouter & Routing14 Kommentare

Hallo, ich habe gerade seltsames in meiner Fritzbox entdeckt. Plötzlich war die Verbindung unterbrochen - kein Internet. Also habe ...

Windows Server
Windows Domäne, SBS 2011, Anmeldung als Admin nicht mehr möglich
Frage von big-dummyWindows Server14 Kommentare

Hallo, vorab: ich habe nun leider keine Grundruhe mehr - die Folgen wären katastrophal. Was ist das Problem: Ich ...

KVM
Performance Verlust durch Virtualisierung
Frage von RalleoniusKVM12 Kommentare

Hallo zusammen, ich überlege meinen Server mit Debian, der als Webserver dient zu virtualisieren um eine 2te Maschine auf ...