Macro in Word om ingevoegde photo's te bewerken...

Status
Niet open voor verdere reacties.

yvessenior

Gebruiker
Lid geworden
15 jan 2023
Berichten
14
Hallo allemaal,
Ik heb een probleem met het heraanmaken van een macro welke ik verloor na een volledige crash van mijn PC...
Wat ik wou doen is het volgende:
Ik heb een grote file (boek) waarin enkele honderden scans : bij het invoeren van nieuwe afbeeldingen wou ik gewoonweg graag telkens (met een klik op de macro) de afmetingen daarvan beperken tot eenzelfde hoogte = 3,50 cm...
Eenvoudig waarschijnlijk maar té voor een 80-plusser...
Wie kan me aub helpen ?
Bij voorbaat van harte dank !
 
Afbeeldingen die je invoegt via een macro zijn inderdaad nogal vreemd gecodeerd, want de grootte wordt hard in de macro gezet. Een andere afbeelding die je met dezelfde macro inleest kan er dus heel anders uitzien. Ik heb daarom zelf een macro gemaakt die op basis van de hoogte (in dit geval) van de originele afbeelding en de gewenste hoogte een verkleiningsfactor uitrekent, en daarmee de breedte kan instellen. Werkt als een zonnetje. Maar omdat afbeeldingen meer eigenschappen hebben, moet ik wel weten hoe de uitlijning is van de afbeeldingen. Een voorbeeldje zou dus helpen :).
 
Bedankt Octafish voor je hulp !

Ik gebruik een perssonlijk bladformaat waarin de marges zijn: Boven 5,2cm, onder 5cm en links en rechts 4,25cm
daarin komen telkens 2 afbeeldingen (jpg scans) naast mekaar met 10 tussenspaties van letterhoogte 10...
zie uittreksel in bijlage

Ik voer telkens slechts (gecenterd) 1 scan in en zet ze meteen op gewents formaat met de macro; dan daarnaast de 2de, op formaat brengen en dan de spaties er tussen...

Dus enkel het op formaat brengen h=3,5cm is gewenst; de rest doe ik handmatig want niet alle scans hebben hetzelfde formaat !
 

Bijlagen

  • voorbeeld.docx
    197,9 KB · Weergaven: 25
Ik kijk er dit weekend wel even naar. Ik verbaas me een beetje over je marges; je geeft in mijn ogen waanzinnig veel ruimte weg :). Ik vermoed dat je dat doet om de bladspiegel van je boek aan te houden, maar dan lijkt het mij veel slimmer om een blad instelling te maken die overeenkomt met de boekmaat, zodat je de lay-out identiek houdt. Dan heb je een veel beter inzicht in hoe het boek er uit gaat zien.

Ik snap de werkwijze niet helemaal; waarom zou je één afbeelding inlezen, centreren en dan de volgende ernaast zetten? Wellicht dat ik het snap als ik het zie :).

Dus enkel het op formaat brengen h=3,5cm is gewenst; de rest doe ik handmatig want niet alle scans hebben hetzelfde formaat !
Dit snap ik dus ook niet; elke afbeelding heeft een hoogte en een breedte. Als je handmatig één van de twee verandert, verandert de andere ook. Met een macro is het mogelijk om één van de twee te veranderen zónder de ander. Dan kun je dus de hoogte instellen op 3,5 cm, zonder dat je de breedte aanpast. Dat ziet er echt niet uit, en waarom zou je dat handmatig doen als de macro het veel beter kan? Ik dacht dat dat ook je vraag was?

Zelf zet ik afbeeldingen bij voorkeur in een tabel. Als er twee afbeeldingen naast elkaar komen, dan heb je een tabel nodig met één rij en twee kolommen. De uitlijning van die tabel (en de cellen) en de vaste hoogte kun je standaardiseren, zodat je afbeeldingen bij inlezen gelijk de goede hoogte hebben, dus 3,5 cm. Hoef je verder helemaal niks meer aan te doen. Aangezien je, zo te lezen, het inlezen van de afbeeldingen toch grotendeels handmatig doet, lijkt dit mij een veel snellere en handigere methode.
 
Het boek (catalogus) is reeds gepubliceerd sinds 2020 en ik moet nu in de 2de versie een groot aantal afbeeldingen tussenvoegen... dus met dezelfde instellingen als de originele !
Hoogte en breedte zijn natuurlijk blijvend gekoppeld en als ik de hoogte telkens op 3,5cm wens wens wordt daarmee automatisch ook de breedte aangepast...
De macro is dus zeer eenvoudig maar ik weet niet meer hoe ik ermee moet beginnen om de afbeelding te selecteren ?
 
Code:
Public Sub EenAfbeeldingInvoegenBijCursorMetEenHoogteVan35mm()
    With Application.FileDialog(msoFileDialogOpen)
        If .Show = -1 Then
            With Selection.InlineShapes.AddPicture(FileName:=.SelectedItems(1), LinkToFile:=False, SaveWithDocument:=True)
                .LockAspectRatio = True
                .Height = CentimetersToPoints(3.5)
            End With
        End If
    End With
End Sub
 
Bedankt, maar deze geeft me een foutmelding bij het uitvoeren...???
zie bijlage
 

Bijlagen

  • macro fout.jpg
    macro fout.jpg
    98,7 KB · Weergaven: 30
Code:
'
voor
Code:
'With Application.FileDialog(msoFileDialogOpen)
weghalen.

' is het teken voor een commentaar (groene tekst) in de code, deze regel wordt dan niet uitgevoerd (zwarte tekst).
 
Laatst bewerkt:
sorry alphamax, maar werkt toch NIET !!!
(zie screencopy in bijlage)
 

Bijlagen

  • foutmelding.jpg
    foutmelding.jpg
    97,7 KB · Weergaven: 24
Je hebt de hele regel
Code:
 'With Application.FileDialog(msoFileDialogOpen)
weggehaald, in plaats van alleen
Code:
'
Lees bericht#8 nog eens aandachtig.
 
Laatst bewerkt:
sorry, sorry... ik kom er toch niet uit !
als ik nu een beeld invoer en op de macro klik krijg ik weer een andere foutmelding... >> bijlage
 

Bijlagen

  • foutmelding 2.jpg
    foutmelding 2.jpg
    66,9 KB · Weergaven: 23
nadat ik in de uitgebreide veiligheidsparameter settings 'Alle macro's toelaten' aangevinkt heb (alhoewel afgeraden door Word) en het prog weer opgestart werkt je macro perfect !!!

Van harte dank voor je uitgebreide hulp !

:thumb::thumb::thumb:
 
Veel succes met je boek.
 
Hallo alphamax,
... na enkele weken onderbreking bij het aanpassen van mijn boek heb ik nu plotseling weer een probleem met de macro welke nogtans perfect werkte!...
... als ik nu Word opstart is die macro verdwenen ! hoe is dit toch mogelijk ? Kan dit te maken hebben met updates ? Kan ik er iets aan doen ?
Graag jou idee aub.
 
Dan wachten de andere helpers zoals ik uiteraard op eerbiedige afstand tot alphamax heeft geantwoord… ik wil niet iets moois verstoren :).
 
Hi octafish,
sorry, dat je op mijn vraag aan alphamax zo sarcastisch tussenkomt maar persoonlijk vind ik het maar normaal dat ik, als ik een gesprek weer wil opnemen, ik me tot mijn laatste contactpersoon richt ...
... ter info, ik heb ondertussen de macro weer ingevoerd en ze werkt normaal; het enige wat me stoorde en ik zeer eigenaardig vond was dat ze plots, zonder enige handeling, verdwenen was uit mijn geinstalleerde Word versie en ik me afvroeg hoe dit kon ?

Antwoord of geen antwoord... wat mij betreft mag deze tread afgesloten worden.
Bedankt aan alle medewerkers !
:thumb:
 
Twee opmerkingen:
1. het is een openbaar forum, dus helpers verwachten niet dat ze persoonlijk worden aangesproken als er een antwoord is gegeven. Ik althans doe dat niet. Je hoeft dus ook nooit met een persoonlijke noot te reageren, al is een bedankje dat doorgaans wel. Dus als je alphamax bedankt voor een oplossing is dat prima, maar als je vervolgens een nieuw probleempje meld, of een andere vraag, en je doet dat specifiek aan alphamax, ja, dan kun je een wat sarcastische reactie verwachten. Want dan blijf ik er vanaf.
2. Vragen stellen doe je zelf, en vragen op <Opgelost> zetten ook. Daarvoor heb jij (als enige dus) een knop rechtsboven in de blauwe balk zitten.

Overigens is het een beetje afhankelijk van hoe je een macro opslaat of hij 'weg' is of niet. Je kunt een macro opslaan voor algemeen gebruik in de normal.dotm, maar dus óók in een specifiek document. Dan zie je de macro alleen als je dat document opent. Dat laatste is een prima oplossing als een macro specifiek voor één document is bedoelt, en je er in algemene zin dus verder niets mee doet, behalve in dat ene document.
Wat er mis zou kunnen gaan, is als je meerdere documenten (met macro's) open hebt staan, en een nieuwe macro opneemt voor een specifiek document, maar die macro opslaat in een ander macro document. Dus je hebt Document A waarin je een macro wilt opnemen, en Document B staat al open, en je neemt de macro dan op in Document B i.p.v. Document A. Dan zal de macro prima werken, maar de volgende dag, als je alleen Document A hebt geopend, zal je de macro nergens vinden, want die staat dus in Document B. Pas als je document B óók weer opent, zul je de macro zien en kunnen gebruiken. Dat is dan overigens een prima moment om de macro te verplaatsen naar het juiste document :).
 
@OctaFish
Dank je, ik had het niet beter kunnen verwoorden.

@yvessenior
Fijn dat je zelf het bestand weer hebt kunnen repareren, en met de info van octafish weet je nu ook waar je op moet letten.
Macro's verdwijnen niet zomaar ;)
Mocht je nog een vraag hebben, je bent altijd vrij deze te stellen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan