Excel afbeelding vergrendelen, maar wel kunnen ctrlC & ctrlV

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Kroesjeluc
  • Registratie: Maart 2024
  • Laatst online: 26-03-2024
Mijn vraag:
Ik ben werkzaam als docent Lichamelijke opvoeding. Ter voorbereiding van lessen heb ik vaak een organisatie tekening/plattegrond nodig met de specifieke materialen. Ik heb via Excel een plattegrond maker gebouwd. In dit werkblad staan verschillende afbeeldingen. Het doel is om de verschillende afbeeldingen te kopiëren en te plakken. Dit creëert een kopie van de afbeelding. Deze kopie kan dan worden verplaatst in de plattegrond.

Mijn wens zou zijn dat de huidige afbeeldingen (in het materialenhok) niet verplaatst kunnen worden (geblokkeerd dus), maar wel gekopieerd en geplakt kunnen worden.

Is dit binnen Excel mogelijk om alles te blokkeren (geen wijzigingen mogelijk), maar wel ctrl c en ctrl v gebruiken om de kopie van een afbeelding te plaatsen?

Afbeeldingslocatie: https://tweakers.net/i/dNOksYoRFHCDJaQq8XKr7BiHPuY=/800x/filters:strip_exif()/f/image/3GP62oXvdTJVLkTRGZgnl7NH.png?f=fotoalbum_large

Relevante software en hardware die ik gebruik
Excel

Wat ik al gevonden of geprobeerd heb
Ik krijg via google of Tweakers geen antwoord op mijn vraag gevonden.,

Beste antwoord (via Kroesjeluc op 14-03-2024 16:06)


  • dixet
  • Registratie: Februari 2010
  • Laatst online: 17:13
↑ wat Teun zegt :)

Maar als je het écht in Excel wilt kan dit alleen met VBA macro's. Maak een macro die op het klikken op een afbeelding wordt aangeroepen.
  • Zorg dat alle afbeeldingen als eigenschap "Locked" aan hebben staan zodat ze niet veplaatst kunnen worden
  • Maak een macro die achter iedere afbeelding gehangen wordt die
    1. de sheet unlockt
    2. deze afbeelding dupliceert
    3. van de gedupliceerde afbeelding het aanroepen van diezelfde macro verwijderd en de "locked" eigenschap uit zet
    4. de sheet weer lockt
  • Zorg dat je sheet in Protect status staat
Resultaat is een kopie van de afbeelding die vrij te verplaatsen is.

voorbeeldcode (alleen proof of concept, je kan deze zelf netter maken en herbruikbaar voor iedere afbeelding)
code:
1
2
3
4
5
6
7
8
9
10
Sub DupliceerAfbeelding()
    Dim s As Worksheet
    Dim p As Shape
    Set s = ActiveSheet
    s.Unprotect
    Set p = s.Shapes("Rectangle 1").Duplicate
    p.OnAction = ""
    p.Locked = False
    s.Protect
End Sub

Alle reacties


Acties:
  • +2 Henk 'm!

  • Teun_2
  • Registratie: Oktober 2003
  • Laatst online: 08-05 16:57
Excel lijkt me hier echt niet de juiste tool voor.
Als je excel hebt, neem ik aan dat je ook Visio kan gebruiken in je licentie?
Een plattegrond maken in Visio - Microsoft Ondersteuning

Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 17:13
↑ wat Teun zegt :)

Maar als je het écht in Excel wilt kan dit alleen met VBA macro's. Maak een macro die op het klikken op een afbeelding wordt aangeroepen.
  • Zorg dat alle afbeeldingen als eigenschap "Locked" aan hebben staan zodat ze niet veplaatst kunnen worden
  • Maak een macro die achter iedere afbeelding gehangen wordt die
    1. de sheet unlockt
    2. deze afbeelding dupliceert
    3. van de gedupliceerde afbeelding het aanroepen van diezelfde macro verwijderd en de "locked" eigenschap uit zet
    4. de sheet weer lockt
  • Zorg dat je sheet in Protect status staat
Resultaat is een kopie van de afbeelding die vrij te verplaatsen is.

voorbeeldcode (alleen proof of concept, je kan deze zelf netter maken en herbruikbaar voor iedere afbeelding)
code:
1
2
3
4
5
6
7
8
9
10
Sub DupliceerAfbeelding()
    Dim s As Worksheet
    Dim p As Shape
    Set s = ActiveSheet
    s.Unprotect
    Set p = s.Shapes("Rectangle 1").Duplicate
    p.OnAction = ""
    p.Locked = False
    s.Protect
End Sub

Acties:
  • 0 Henk 'm!

  • Kroesjeluc
  • Registratie: Maart 2024
  • Laatst online: 26-03-2024
dixet schreef op donderdag 7 maart 2024 @ 15:29:
↑ wat Teun zegt :)

Maar als je het écht in Excel wilt kan dit alleen met VBA macro's. Maak een macro die op het klikken op een afbeelding wordt aangeroepen.
  • Zorg dat alle afbeeldingen als eigenschap "Locked" aan hebben staan zodat ze niet veplaatst kunnen worden
  • Maak een macro die achter iedere afbeelding gehangen wordt die
    1. de sheet unlockt
    2. deze afbeelding dupliceert
    3. van de gedupliceerde afbeelding het aanroepen van diezelfde macro verwijderd en de "locked" eigenschap uit zet
    4. de sheet weer lockt
  • Zorg dat je sheet in Protect status staat
Resultaat is een kopie van de afbeelding die vrij te verplaatsen is.

voorbeeldcode (alleen proof of concept, je kan deze zelf netter maken en herbruikbaar voor iedere afbeelding)
code:
1
2
3
4
5
6
7
8
9
10
Sub DupliceerAfbeelding()
    Dim s As Worksheet
    Dim p As Shape
    Set s = ActiveSheet
    s.Unprotect
    Set p = s.Shapes("Rectangle 1").Duplicate
    p.OnAction = ""
    p.Locked = False
    s.Protect
End Sub
Heel prettig dat jullie zo meedenken. Het idee is echter dat ik en anderen steeds zelf het "drag en drop" principe hanteren. Helaas heb ik geen Visio licentie erbij zitten, alleen de web versie.

Nu probeer ik uw tip omtrent de Macro's, maar als ik de code kopieer en plak bij de desbetreffende groep (gegroepeerde shapes) of afbeelding, dan krijg ik steeds verschillende foutmeldingen.

Helaas beheers ik die code taal niet. Heeft u toevallig tips waar ik kan vinden hoe ik dit op de juiste manier kan typen?

Acties:
  • 0 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 09-05 21:40

Belindo

▶ ─🔘─────── 15:02

VBA is even een leercurve. Maar je kan er mooie dingen mee doen. @dixet had al een mooie suggestie. Zelf zou ik een userform maken met de afbeeldingen erin, en dan via een knop 'materiaal toevoegen' het userform tonen zodat een plaatje geklikt kan worden die dan wordt toegevoegd in het veld en verplaatst kan worden.

Als je het bestand ergens uploaden kan, en via DM de link stuurt, wil ik in het weekend best wel even een opzetje maken. Ik hou van dit soort tooltjes.
maken.

Geen harde belofte dat het lukt. En of het in een weekend gedaan is though. Dus pin me er niet op vast.

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • Kroesjeluc
  • Registratie: Maart 2024
  • Laatst online: 26-03-2024
Belindo schreef op vrijdag 8 maart 2024 @ 15:31:
VBA is even een leercurve. Maar je kan er mooie dingen mee doen. @dixet had al een mooie suggestie. Zelf zou ik een userform maken met de afbeeldingen erin, en dan via een knop 'materiaal toevoegen' het userform tonen zodat een plaatje geklikt kan worden die dan wordt toegevoegd in het veld en verplaatst kan worden.

Als je het bestand ergens uploaden kan, en via DM de link stuurt, wil ik in het weekend best wel even een opzetje maken. Ik hou van dit soort tooltjes.
maken.

Geen harde belofte dat het lukt. En of het in een weekend gedaan is though. Dus pin me er niet op vast.
Ik heb u een privé bericht gestuurd.

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Op die manier kunnen anderen niet meedenken, en kunnen anderen er niet van leren. Zonde :Y)

Ook, andermans VBA-code gebruiken zonder de taal goed te kennen is een slecht idee. Op apparatuur van de werkgever een heel slecht idee.

Belangrijker: met heel veel moeite kan je met een schroevendraaier een plank doorzagen. Het blijft een heel slecht idee. Het kan vast (al is VBA niet Turing complete), maar ga hier ajb geen Excel + VBA voor gebruiken. Vraag dan liever naar wat voor (gratis) software wel zou kunnen.

offtopic:
Huh, als ik het zo zie was precies dit (ergens begin 18e eeuw, ik ben oud) een van mijn eerste opdrachten bij het leren van C++.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 19:08

The Eagle

I wear my sunglasses at night

Gewoon draw.io gebruiken en dan een eigen library maken, net zo makkelijk.
Zie https://drawio-app.com/bl...-your-own-custom-library/ :)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)

Pagina: 1