• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Afbeeldig in cel centreren

Status
Niet open voor verdere reacties.

schuurar

Gebruiker
Lid geworden
15 aug 2009
Berichten
417
Beste Forum,

Is het mogelijk om een afbeelding te centreren in een cel ???
Zo ja hoe doe je dat ? ik gebruik office 2010
 
iets meer informatie is inderdaad misschien wel handig. Als je bedoeld wat ik denk dat je bedoeld kan het in ieder geval via VBA.
 
Normaal gesproken zijn plaats en formaat van een afbeelding niet gerelateerd aan de grootte van een cel. Een afbeelding "zweeft" boven je werkblad, los van de cellen. Maar misschien dat het met VBA wel kan...
 
Ik wil een aantal cellen vierkant maken. zeg bv 100 bij 100 pixels.
Nu wil ik in elke cel het zelfde plaatje krijgen precies in het midden van de cellen.
Dit heb ik nodig op een schildje te maken. Ik print het dan uit en als ik het dan snij dan staan alle plaatjes recht onder elkaar.

Is dit genoeg informatie ???
 
Ik heb een variant die ik gebruik voor iets dergelijks die je makkelijk aan kan passen. Daar we niet wten hoe je sheet er verder uit ziet is er geen exact voorbeeld te maken:

Code:
Sub addpics()
For Each cell In Range("a1", Range("a65000").End(xlUp))
    where = cell.Value
    Set pic = ActiveSheet.Pictures.Insert(where)
        breedte = (cell.Height / pic.Height) * pic.Width
        pic.Height = cell.Height
        pic.Width = breedte
        pic.Top = cell.Top
        pic.Left = cell.Left
Next cell

End Sub

deze code kijkt naar de filename in de cell, haalt het plaatje op van de aangegeven locatie en plaatst deze in de cel met de exacte grootte van de cel. Zo'n oplossing kun je aanpassen om ook in het midden van cel te plaatsen e.d.
 
Bekijk bijlage treuren.xlsx
Het is niet zo heel spannende sheet verder. (zie voorbeeld)
Het zou het voor mij veel makkelijker maken als de afbeeldingen automatisch in het midden komen.
Wat natuurlijk nog makkelijker zou zijn (maar dan ga ik heel ver denk ik) als ik in "A1" 1 keer een afbeelding plaats en dat hij dan automatisch in de aangegeven cellen gekopieerd word.

Nu heb ik elk plaatje stuk voor stuk zitten centreren
 
Dat kan wel, maar dan hoef je ook niet meer met de cell te "klooien" je kunt dan gewoon je eerste plaatje netjes verdelen over de pagina zonder de cellen aan te passen (kan overigens wel, maar is in principe niet meer nodig.

Hoeveel moeten de plaatje uit elkaar (in punten) en hoeveel naast en onder elkaar?
 
dat is helaas elke keer anders.
Soms maak ik plaatjes van 3x3 maar ook wel een 5x9.
De tussen ruimte maakt niet uit. met een paar punten er tussen is genoeg. (Hoe meer op een vel hoe beter het is)
 
Plak het plaatje ergens op een leeg sheet en run vervolgens deze code (aanpassen naar wens) Input kan eventueel ook via invoerboxen:

Code:
Sub c()
    
    Naastelkaar = 4
    OnderElkaar = 3
    AfstandTussen = 20
    
    Set pic = ActiveSheet.Shapes(0)
    
    For j = 0 To Naastelkaar - 1
        For i = 0 To OnderElkaar - 1
            Set extra = pic.Duplicate
            extra.Top = (extra.Height + AfstandTussen) * i
            extra.Left = (extra.Width + AfstandTussen) * j
        Next i
    Next j
    
    pic.Delete
End Sub
 
omdat ik denk dat excel meer kan dan word met automatisch dingen laten doen. Maar misschien heb ik het mis ?!
 
Even de variant met invoerboxen toevoegen voor de volledigheid.

Code:
Sub c()
    
    Naastelkaar = Val(InputBox("hoeveel naast elkaar?"))
    OnderElkaar = Val(InputBox("hoeveel onder elkaar?"))
    AfstandTussen = Val(InputBox("hoeveel punten tussen de plaatjes?"))
    
    Set pic = ActiveSheet.Shapes(0)
    
    For j = 0 To Naastelkaar - 1
        For i = 0 To OnderElkaar - 1
            Set extra = pic.Duplicate
            extra.Top = (extra.Height + AfstandTussen) * i
            extra.Left = (extra.Width + AfstandTussen) * j
        Next i
    Next j
    
    pic.Delete
End Sub

Overigens is Word ook een mogelijkheid als het puur om alleen de plaatjes gaat, maar ik zou ook voor excel kiezen, puur omdat je zo makkelijk een "schone" oplossing kunt schrijven in VBA ;) Ik begrijp dat dat echter niet voor iedereen van toepassing is.
 
omdat ik denk dat excel meer kan dan word met automatisch dingen laten doen. Maar misschien heb ik het mis ?!

Wat wil je dan automatisch doen. Wat ik zo hoor is dat je contactsheets voor je foto's wil maken. In Word kan je met een tabel de plaatjes heel erg makkelijk netjes onder elkaar krijgen. En als het om alleen het afdrukken van de plaatjes gaat dan kan je ook het gratis easy photoprint gebruiken; klik.

Ron
 
puur omdat je zo makkelijk

:D:D Dat vind ik nou altijd zo geweldig aan Helpmij!!

Jullie experts zijn zo goed met excel dat het "gewoon"makkelijk is.
Ik kan de code die je gemaakt hebt wel invoegen en het aan een knop hangen maar daar houd het me op bij mij. Kan aardig knippen en plakken en lezen wat er gebeurt maar verder niet.
Als ik dus nu die code in een blad kopieer krijg ik natuurlijk een foutmelding. :p (de parameter is onjuist)

Ik vind excel ook gewoon erg leuk om mee te spelen dus vandaar dat ik het graag in excel doe.
Heb al zo veel mooie dingen gezien dus wil het gewoon ook graag leren.
 
Open je voorbeeld bestand, druk op ALT-F11 om in de VBA editor te komen. Invoegen -> module. vervolgens plak je daar mijn code in.

ga naar je werkblad en voeg een nieuw werkblad in. knip een plaatje van de eerste pagina en plak dat op je nieuwe werkblad.

Ga vervolgens terug naar vba en run (f5 of het groene pijltje) terwijl je in de routine staat en het zou moeten werken.
 
Wampier Dank tot zover.
Was ff weekend weg.

Als ik de stappen volg die jij mij geeft krijg ik een foutmelding.
---------------------------------

Fout -2147024809(80070057) tijdens uitvoering:

De index van de opgegeven verzameling valt buiten het bereik..
-------------------------------------

Wat doe ik fout ??

** EDIT **
Ik krijg wel eerst : "hoeveel naast elkaar?"
"hoeveel onder elkaar"
"hoeveel punten tussen de plaatjes
 
Laatst bewerkt:
In principe zou dat alleen moeten gebeuren als je de code loslaat op een sheet zonder een plaatje daarop. Ik heb het nogmaals getest op je voorbeeld en het werkt met die instructies.

staat er minstens 1 plaatje op je nieuwe werkblad? is dat werkblad actief op het moment dat je de code draait?

edit:

draait de code wel vanuit een neutrale module en niet in een werkblad?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan