Vraag


Acties:
  • 0 Henk 'm!

  • Merel Visschers
  • Registratie: September 2018
  • Laatst online: 01-01-2024
Mijn vraag
Met jullie hulp heb ik geruime tijd geleden een addin gemaakt voor een excel roosterbestand en dat werkt top. Alleen staat die addin op een bepaalde plek opgeslagen en verwijzen de formules in het excel document dus naar die addin. Waar we tegen aan lopen is dat als iemand anders het bestand opent of op een andere manier opslaat of wat dan ook, dat excel alle verwijzingen in het bestand naar die addin (foutief) aanpast en/of dat die persoon de informatie in de cellen met de formules niet ziet omdat hij het addin bestand niet kan vinden.
Nou ben ik niet echt IT begaafd, maar 'vroeger' had je bij powerpoint nog wel eens hetzelfde probleem met verwijzingen naar foto's en filmpjes. En dan had je de 'inpakken en wegwezen' wizard waarmee je al die foto's en filmjes samen met je powerpoint presentatie kon opslaan zodat je niet het gedonder had dat als je ergens een presentatie gaf, dat je koppelingen niet werkten.
Is er voor excel en addins ook een manier om die addin op de een of andere manier in te sluiten bij het excel bestand, zodat als ik het aan iemand mail of ergens anders opsla, dat er niet het gedonder is dat excel die koppeling niet kan vinden of aanpast?
(als powerpoint het tig jaar geleden kon zou dit toch ook moeten kunnen....?)

Relevante software en hardware die ik gebruik
Office 365

Wat ik al gevonden of geprobeerd heb
van alles.... :/

Alle reacties


Acties:
  • 0 Henk 'm!

  • Mar.tin
  • Registratie: Januari 2010
  • Laatst online: 15:11
[verwijderd]

[ Voor 94% gewijzigd door Mar.tin op 28-07-2022 10:51 ]


Acties:
  • 0 Henk 'm!

  • naitsoezn
  • Registratie: December 2002
  • Niet online

naitsoezn

Nait Soez'n!

Je kunt de VBA-code van de add-in toevoegen in een module van de de Excel-sheet, en deze daarna opslaan als .xlsm (Macro-enabled Workbook). Dan zouden de functies als het goed is meegestuurd worden als je het bestand verstuurd.

Nadeel van deze manier is echter wel, dat je de code niet meer 'centraal' opgeslagen hebt, waardoor je elke kopie apart moet aanpassen wanneer je een wijziging aan de macro wilt maken.

[ Voor 6% gewijzigd door naitsoezn op 12-10-2020 13:22 ]

't Het nog nooit, nog nooit zo donker west, of 't wer altied wel weer licht


Acties:
  • 0 Henk 'm!

  • sypie
  • Registratie: Oktober 2000
  • Niet online
Ik denk dat je moet gaat kijken naar "relatieve links" en "absolute links".

Acties:
  • 0 Henk 'm!

  • Merel Visschers
  • Registratie: September 2018
  • Laatst online: 01-01-2024
@AGee: er hoeven eigenlijk nooit wijzigingen in de macro gedaan te worden. Dus dat is geen probleem. En volgens mij is er in het document al een VBA code, maar toch wil hij steeds de addin hebben. Sorry, ik weet niet zoveel van excel. Zou je kunnen uitleggen hoe ik dit doe/controleer en of en hoe ik er vervolgens voor kan zorgen dat alle formules aangepast worden (de addin wordt in vele honderden cellen gebruikt, als ik het bestand nu verhuis en hij 'verliest' de addin moet ik handmatig in al die cellen de formule aanpassen. Dat is heel veel werk, dus ik hoop dat ik e.e.a. zo aan kan passen dat de inhoud van de cellen automatisch mee gaat/aangepast wordt).

@Sypie: ik snap je antwoord niet vrees ik....

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Merel Visschers schreef op maandag 12 oktober 2020 @ 13:13:
Mijn vraag
Met jullie hulp heb ik geruime tijd geleden een addin gemaakt voor een excel roosterbestand en dat werkt top.
Ik kan geen topic van je vinden over het maken van een Add-in. Waar verwijs je naar, want misschien is wat jij bedoelt met addin wel een userdefined function, en dat is iets totaal anders.

edit:

Wat me laat gokken dat mensen het bestand opslaan als xlsx en niet als xlsm, en ja, dan werkt het niet meer.

[ Voor 12% gewijzigd door Lustucru op 12-10-2020 16:08 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • sypie
  • Registratie: Oktober 2000
  • Niet online
Merel Visschers schreef op maandag 12 oktober 2020 @ 15:15:
@Sypie: ik snap je antwoord niet vrees ik....
Dat is een kwestie van zoeken op internet, genoeg over te vinden.

Om alvast een voorzetje te geven over wat het verschil is: https://www.webstix.com/k...-links-vs-absolute-links/

[ Voor 18% gewijzigd door sypie op 12-10-2020 17:13 ]


Acties:
  • 0 Henk 'm!

  • SmiGueL
  • Registratie: September 2005
  • Laatst online: 16:04
Merel Visschers schreef op maandag 12 oktober 2020 @ 13:13:
Waar we tegen aan lopen is dat als iemand anders het bestand opent of op een andere manier opslaat
Als het om DIT topic gaat dan is het inderdaad van belang om het bestand NIET als iets anders dan .xlsm (of desnoods .xls) op te slaan.

Dan ben je inderdaad de macro's (heten geen add-ins) kwijt.

Delidded 4770K 4.7GHz @ H220 || Gigabyte Z87X-UD4H || 16GB @ 2400MHz || Gigabyte GTX 760 || 2x128GB Samsung 830 @ RAID-0 & WD 3 TB || Iiyama XB2483HSU-B1 || Synology DS916+ 3x6TB + 120GB SSD Cache || Synology DS213+ 6TB backup


Acties:
  • 0 Henk 'm!

  • heuveltje
  • Registratie: Februari 2000
  • Laatst online: 09:34

heuveltje

KoelkastFilosoof

Lustucru schreef op maandag 12 oktober 2020 @ 16:03:
[...]

Ik kan geen topic van je vinden over het maken van een Add-in. Waar verwijs je naar, want misschien is wat jij bedoelt met addin wel een userdefined function, en dat is iets totaal anders.

edit:

Wat me laat gokken dat mensen het bestand opslaan als xlsx en niet als xlsm, en ja, dan werkt het niet meer.
Ik vermoed dat hij invoeg toepassing bedoeld Excel > opties > invoeg toepassingen
@Merel Visschers wat staat daar bij actieve toepassingen ?

dit is iets anders dan simpelweg een macro in een document..
En die worden inderdaad niet in het document zelf opgeslagen. dus dat is een probleem als de gebruiker niet in dat pad kan.

[ Voor 4% gewijzigd door heuveltje op 12-10-2020 17:35 ]

Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d


Acties:
  • 0 Henk 'm!

  • Merel Visschers
  • Registratie: September 2018
  • Laatst online: 01-01-2024
Hallo allen en bedankt voor de reacties!
Het gaat inderdaad om dat topic wat SmiGueL aangeeft.
Ik weet niet meer precies hoe of wat, maar ik heb die code destijds ingevoegd en inmiddels is het document verder uitgebreid. Ik weet niet helemaal hoe die addin erin gekomen is, maar ik meen dat ik ergens tegen kwam dat als ik die VBA code wilde blijven gebruiken dat ik er dan een addin van moest maken en dat heb ik volgens mij toen gedaan. In elk geval werkt het en ben ik er onwijs blij mee. Maar de addin staat dus op mijn pc en bij de actieve invoegtoepassingen. Maar het gaat om een rooster (onder meer), dus ik moet er regelmatig een nieuwe versie van rond mailen. En probleem is dan dat andere mensen de inhoud van cellen met de verwijzing als ### zien en als ze het zouden willen zien, moeten ze elke nieuwe versie die ik mail opnieuw die addin toevoegen.
Work around zou zijn dat ik het in de database van onze nieuwe teamsite opsla evenals de addin (ik weet niet of dat werkt dan), en dan kunnen ze het daar openen, maar het zou toch wel erg handg zijn dat ik het bestand gewoon kon rond mailen en dat iedereen het dan gewoon kan openen en de inhoud van alle cellen kon zien (zonder steeds de addin opnieuw toe te moeten voegen).

Dus samen gevat: het gaat inderdaad om de VBA code in het topic waar SmiGuL naar verwijst.
Daar heb ik dus volgens mij een addin van gemaakt en die staat bij de actieve addins.
In het rooster wat ik heb opgeslagen staan verwijzingen als:
=AB986-(CountEquals(Legenda!$D$22;'Rooster 2020'!F1025:W1025;6)
En dan werkt het. De addin staat in dezelfde map.

Maar soms vervangt 'hij' door mij onduidelijke oorzaken dat door zoiets (in het hele bestand):
=AB986-('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$D$22;'Rooster 2020'!F986:W986;6))

En hoewel de addin wel op die plek staat (C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns) krijg ik dan toch in alle vakjes ### en werkt het niet meer.

En dan moet ik handmatig alle formules weer aanpassen en die verwijzing naar de lokatie op de c schijf verwijderen. En dat is niet lollig omdat het om vele honderden cellen gaat.

En wat nog onhandiger is: als ik ergens nog een 'oudere versie' heb waarin het wel goed staat, en ik open die op het moment dat ik zo'n 'corrupte versie' open heb staan, dan wordt de 'oude versie' zonder ik wat doe ook corrupt. En als ik hem dan sluit zonder hem op te slaan alles sluit en weer open is (hoewel ik dus niets opgeslagen heb) die oude versie ook corrupt.

En dan heb ik dus, zoals nu, een rooster met honderden cellen met iets erin als:
=AB986-('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$D$22;'Rooster 2020'!F986:W986;6))

En dat krijg ik niet meer werkend, ook niet door een nieuwe addin toe te voegen en de enige mogelijkheid die ik tot nu toe heb gevonden om dit te repareren is door handmatig alle formules aan te passen. Maar dat is niet heel lollig, want sommige formules zien er zo uit als ze werken:

=(CountEquals(Legenda!$E$5;'Uren 2020'!G1156:G1249;7)*8)+(CountEquals(Legenda!$E$6;'Uren 2020'!G1156:G1249;7)*8,5)+(CountEquals(Legenda!$E$7;'Uren 2020'!G1156:G1249;7)*9)+(CountEquals(Legenda!$E$8;'Uren 2020'!G1156:G1249;7)*9)+(CountEquals(Legenda!$E$9;'Uren 2020'!G1156:G1249;7)*9)+(CountEquals(Legenda!$E$10;'Uren 2020'!G1156:G1249;7)*9)+(CountEquals(Legenda!$E$11;'Uren 2020'!G1156:G1249;7)*8,5)+(CountEquals(Legenda!$E$12;'Uren 2020'!G1156:G1249;7)*8,5)+(CountEquals(Legenda!$E$13;'Uren 2020'!G1156:G1249;7)*8)+(CountEquals(Legenda!$E$14;'Uren 2020'!G1156:G1249;7)*8)+(CountEquals(Legenda!$E$15;'Uren 2020'!G1156:G1249;7)*8)+(CountEquals(Legenda!$G$16;'Uren 2020'!G1156:G1249;7)*8,5)+(CountEquals(Legenda!$G$17;'Uren 2020'!G1156:G1249;7)*8,5)

En dat wordt dan zoiets als ze 'corrupt' worden:

=('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$E$5;'Uren 2020'!G1029:G1122;7)*8)+('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$E$6;'Uren 2020'!G1029:G1122;7)*8,5)+('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$E$7;'Uren 2020'!G1029:G1122;7)*9)+('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$E$8;'Uren 2020'!G1029:G1122;7)*9)+('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$E$9;'Uren 2020'!G1029:G1122;7)*9)+('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$E$10;'Uren 2020'!G1029:G1122;7)*9)+('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$E$11;'Uren 2020'!G1029:G1122;7)*8,5)+('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$E$12;'Uren 2020'!G1029:G1122;7)*8,5)+('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$E$13;'Uren 2020'!G1029:G1122;7)*8)+('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$E$14;'Uren 2020'!G1029:G1122;7)*8)+('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$E$15;'Uren 2020'!G1029:G1122;7)*8)+('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$G$16;'Uren 2020'!G1029:G1122;7)*8,5)+('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$G$17;'Uren 2020'!G1029:G1122;7)*8,5)

En ik ben (en moet nu ook weer tenzij jullie een oplossing hebben) dagen aan de slag om ze allemaal weer te vervangen.

Dus ik hoop heel erg dat jullie me kunnen helpen bij dit probleem. Het treedt niet op zolang ik het bestand alleen open vanaf de vaste plek op mijn pc en er dan in werk. Maar waag ik het een keer elders op te slaan danwel hetzelfde document te openen als het elders opgeslagen is of vanuit een mail dan gebeurt er dus bovenstaande, niet alleen in het geopende document, maar in alle versies die er op dat moment open staan of die ik open.

Acties:
  • 0 Henk 'm!

  • Merel Visschers
  • Registratie: September 2018
  • Laatst online: 01-01-2024
Dus eigenlijk heb ik meer vragen inmiddels (toen ik het eerste ericht poste had ik nog een 'goed' werkkend bestand, maar toen ik wat dingen ging checken om hier iets te posten zijn alle versies die ik had en die nog een beetje up to date waren dus ook 'corrupt' geworden en heb ik niets meer wat ik nog kan gebruiken :(

- kan ik het probleem in mijn huidige bestand oplossen zonder alle formules opnieuw in te moeten voeren?
- hoe kan ik voorkomen dat dit bij mij gebeurt?
- kan ik ervoor zorgen dat het anderen niet gebeurt, kan ik het bestand mailen en dat iemand het kan openen, zonder dat ik de addin mee moet mailen en een instructie oevr hoe die in te voegen.

Sorry voor de vele vragen, maar jullie hebben me de vorige keer zo ontzettend goed geholpen. Het is niet zo dat ik zelf niet gezocht heb, ik heb de afgelopen jaren al vele uren gespendeerd aaan het rond zoeken op internet (handleidingen voor excel, google, forums, ....) en ook onze ITS afdeling om advies gevraagd, maar er is nog geen oplossing. Dus ik hoop dat jullie me wat verder willen/kunnen helpen.

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Dit riekt naar een halfbakken oplossing voor een bekend beveiligingsprobleem.

* de makkelijkste manier om VBA code te verspreiden is om die gewoon in het bestand te plaatsen en het bestand te verspreiden als xlsm. Maar:
- veel bedrijven hanteren als standaardpolicy dat macro's in Excel-bestanden uitgeschakeld zijn en blijven
- veel mailfilters blokkeren xlsm bestanden.

Als je tegen die beperkingen aanloopt gaat het feest niet door. Je kunt je code certificeren en/of afzien van verspreiding per mail door het bestand op te slaan op het netwerk. Als dat ook niet werkt ga je idd de code verspreiden als add-in. Hier is het mis gegaan.

Een add-in moet door iedere gebruiker geinstalleerd worden. Dat is een eenmalige exercitie. Een add-in is namelijk een uitbreiding op Excel, niet op een excelbestand. Eventueel kan IT de addin installeren op alle pc's onder hun beheer. Dit geldt ook voor jou: je moet de addin geinstalleerd hebben voordat je gebruik maakt van de functies in die add-in. Doe je dat niet, dan neemt Excel gewoon de verwijzing naar het bestand op en niet naar de geinstalleerde add-in. Als je het op de juiste manier doet zal Excel bij het openen in een Excel zonder die add-in gewoon #naam? als foutmelding geven.

Dus... installeer op je 'ontwikkel'-pc de add-in. Haal met zoek en vervang alle bestandsverwijzingen in de formules weg. Verspreid de add-in met installatieinstructie of laat IT dat doen. Vervolgens kun je gewoon je Excelbestand zonder code verspreiden.

[ Voor 5% gewijzigd door Lustucru op 13-10-2020 21:21 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • sypie
  • Registratie: Oktober 2000
  • Niet online
Merel Visschers schreef op dinsdag 13 oktober 2020 @ 15:59:
=AB986-('C:\Users\vissc110\surfdrive\Merel werk\Personele zaken\Roosters\AddIns Rooster.xlam'!CountEquals(Legenda!$D$22;'Rooster 2020'!F986:W986;6))
Het dikgedrukte is een absolute link. Op de computer van iemand anders werkt het al niet mer omdat jij daar niet ingelogd bent als "vissc110". Een ander systeem kan dat bestand dus niet vinden.

Acties:
  • 0 Henk 'm!

  • Merel Visschers
  • Registratie: September 2018
  • Laatst online: 01-01-2024
Wederm bedankt voor de reacties....
Ik weet dus niet meer waarom er een addin van is gemaakt, maar (ik weet niet of ik dat goed begrijp uit jullie reacties) kan het bestand ook gebruikt worden met alleen de VBA code erin (en dus niet de addin)?
En zo ja: hoe zou ik het huidige bestand zo kunnen aanpassen dat hij zonder de addin werkt?
Pagina: 1