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, 3434 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
Windows 10

"Windows 10 Pro V1903: Gruppenrichtlinie "Telemetrie zulassen" aktivierbar?"

Tipp von Snowbird vor 8 StundenWindows 101 Kommentar

Sicherheits-Tools

TrendMicro Worry-Free Business Security 10.0 SP1 - Jetzt in Deutsch verfügbar! (Windows 10 1903 Support)

Tipp von TrinXx vor 1 TagSicherheits-Tools1 Kommentar

Moin! Nach wochenlangem Warten wird Trend Micro das SP1 für WFBS 10 voraussichtlich am 26.08.19 veröffentlichen. Ich habe das ...

Hyper-V
Setup VM W2016 startet nicht in Hyper-V 2016
Erfahrungsbericht von keine-ahnung vor 3 TagenHyper-V7 Kommentare

Moin, sitze gerade über meinem neuen Server und versuche, die VM auf den Host zu prügeln. Jetzt wollte ich ...

Server-Hardware

HPE Proliant ML350P Gen8 Probleme mit Zugriff auf Raid-Volumes

Erfahrungsbericht von goscho vor 3 TagenServer-Hardware1 Kommentar

Hallo Leute, das Problemgerät: HPE ML350P G8 Windows Server 2012R2 HyperV-Host 8 x 300 GB 10K SAS HDD (1 ...

Heiß diskutierte Inhalte
Server
Ein Server ins Haus stellen. Was brauche ich dafür?
Frage von JoschiTomServer15 Kommentare

Hallo Community, ich spiele mit dem Gedanken eine Server mir zu holen. Was brauche ich dafür? Und wie sind ...

LAN, WAN, Wireless
Mikrotik Gast-Wlan keine Verbindung zum Internet?
Frage von dirkschwarzLAN, WAN, Wireless11 Kommentare

Guten Morgen, habe ein wahrscheinlich einfaches Problem, bei dem ich aber nicht wirklich weiter komme Ich möchte ein Gast-Wlan ...

Batch & Shell
Mittels SED Text ersetzen in Anführungszeichen
gelöst Frage von nekronBatch & Shell9 Kommentare

Moin … bin nicht wirklich der SED/regex Mensch, vielleicht kann mir jemand auf die Schnelle Helfen :) ich habe ...

Router & Routing
Eu-Domain von Rechnern nicht, vom Handy aber (im selben Netzwerk) schon erreichbar
gelöst Frage von mary-louRouter & Routing6 Kommentare

Hallo! Für ein gemeinnütziges StartUp haben wir zwei Domains, beide liegen bei whois.com: - unseredomain.eu - unseredomain-europe.org Bislang wurde ...