• 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.

VBA aanpassen met VBA

Status
Niet open voor verdere reacties.

longron

Gebruiker
Lid geworden
2 apr 2007
Berichten
361
Beste alle,

ik wil graag, maar weet niet of het uberhaupt kan. middels VBA een VBA routine aanpassen.
dus..
ik heb een excel bestand met daarin een aantal routines in VBA,
Ik wil een van deze routines aanpassen middels VBA.
Dit zodat ik met een ander excelbestand een bestaand bestand kan aanpassen.
Hoop dat mijn vraag duidelijk is.

alvast bedankt,

Groet,
Ronald
 
Ik denk dat wanneer je het eigenlijke probleem hier voorlegt er een veel simpeler oplossing geboden gaat worden.
 
oke,
even een eenvoudig voorbeeld.
2 bestanden. eerste: map1, tweede aanpassen.
map1 is mijn werkbestand. in bestand aanpassen wordt map1 geopend. dan wil ik via vba de macro in map1 aanpassen.

hoop dat het duidelijk is wat de bedoeling is.

alvast bedankt,

Ronald
 

Bijlagen

  • Map1.xlsm
    13,6 KB · Weergaven: 43
  • aanpassen.xlsm
    12,4 KB · Weergaven: 45
Dat was al duidelijk maar niet waar ik op doelde.
Maar kijk eerst eens naar de link die snb plaatste.
 
ooo, waarop doelde je dan?

ik ga zeker, ben al aan het kijken naar wat SNB plaatste.

groet,
Ronald
 
Dat lijkt me 100% overbodig.
Je kunt met de macro uit het ene werkboek alle macrobewerkingen die mogelijk zijn in het 2e werkboek uitvoeren.

De aanname dat je met een macro alleen maar iets kunt doen in het werkboek dat de macro bevat is onjuist.
 
Laatst bewerkt:
Daarom wilde ik graag weten wat exact de bedoeling is.

@snb:
Ik vind wel dat je er een heel mooi stuk aan hebt gewijd op je website.
 
wat de bedoeling is:

ik ben, zoals je weet ( denk ik) bezig met een roosterprogramma, nu wordt dat al door een paar mensen gebruikt. op hun eigen account.
Nu wil ik binnen het bestaande roosterprogramma via een andere excel bestand een aanpassing maken. dat kan zijn in de layout, in de telling maar ook in de VBA zelf.
door gebruik te maken van een versienummer. wordt gekeken als het aanpassingsprogramma wordt gestart of er een aanpassing nodig is.
Is het versie nummer lager ( dat het ik al draaiend) dan volgt een routine met aanpassingen.
 
Dan kan je beter een invoegtoepassing maken. Die hoeft maar op 1 plek te staan en als je die vervangt door een nieuwe versie hebben alle gebruikers die meteen.
 
Is zeker een mogelijkheid om dat te doen maar dan moeten alle gebruikers wel weten hoe ze bij die plek komen en ander weer niet. Die mogelijkheid heb ik niet.
ik wilde het nu door door de het aanpassingsprogramma via de mail te versturen, wordt het vanuit mail geopend dan wordt de aanpassing gemaakt.
 
Dat is eenmalig aan de gebruikers vertellen. Daarnaast kan dat eenvoudig met een .reg bestandje waar ze eenmalig op dubbelklikken en hebben ze de invoegtoepassing beschikbaar.
 
Helaas gaat dat hem niet worden.
binnen ons netwerk, vind ICT het niet prettig om reg bestanden te laten draaien. door andere dan ICT zelf.
 
@Snb.

als ik bv een routine invoer.
bv
Sub Code_in werkboek_deels_lezen()
With ThisWorkbook.VBProject.VBComponents(2).CodeModule
c00 = .Lines(1, .CountOfLines-20)
c01 =.Lines(10,.CountOflines-10)
c02 =.Lines(15,30)
c03 =.Lines(1,.CountOfDeclarationLines)
End With
End Sub

en ik start die dan krijg ik de meldingen Fout 1004, tijdens uitvoering. Toegang tot Visual-basic projecten op programmeerniveau is niet betrouwbaar.

enig idee waardoor dat komt en of dat aan te passen is?

thanks,

Ronald
 
Helaas gaat dat hem niet worden.
binnen ons netwerk, vind ICT het niet prettig om reg bestanden te laten draaien. door andere dan ICT zelf.
Ik gaf dat ook als mogelijkheid.
Die is niet nodig als de gebruiker de invoegtoepassing zelf toevoegt en dat is een handleiding van een paar regeltjes.
 
Toegang tot Visual-basic projecten op programmeerniveau is niet betrouwbaar.

Kijk in de instellingen voor het vertrouwenscentrum bij Macro instellingen.
Dat zal met jouw methode ook bij iedere gebruiker moeten gebeuren.
Of via een instelling in de group policy.
 
Oke,

en dan bedoel je dat de invoegtoepassing in Excel wordt geïmporteerd. vanuit Bestand. opties?
Ik heb al die mogelijkheden uit het programma gesleuteld. zelf bij de macro komen ze niet zonder ww.
moet er goed over nadenken wat de beste oplossing is.
 
Dat is een van de beveiligingsinstellingen in het vertrouwenscentrum.

Dit lijkt me een onbegaanbare weg, want al jouw gebruikers krijgen die foutmelding ook.

De AddIn construktie is voor dit soort situaties juist ontworpen.

Je plaats een addIn op de server; bijv "S:\gevaarlijk\snb.xlam"

Nu stuur je de gebruiker een bestand met de volgende macro:

Code:
    Private Sub Workbook_open()
        AddIns.Add("S:\gevaarlijk\snb.xlam").Installed = True
        ThisWorkbook.Close 0
    End Sub

Nu is de addin geïnstalleerd.

Elke keer als jij het bestand op de server wijzigt, gebruiken de gebruikers automatisch de laatste versie.
 
En die laatste macro is dus niet nodig wanneer je de invoegtoepassing laat toevoegen via Bestand/Opties/Invoegtoepassingen/Start/Bladeren.
Blader naar het betreffende .xlam bestand, dubbelklik erop, klik Ok en klaar is de gebruiker.
De invoegtoepassing werkt dan in alle bestaande en nieuw te maken documenten, ook de .xlsx versies.

De invoegtoepassing mag met een wachtwoord beveiligd zijn.
 
Laatst bewerkt:
Oke. lijkt me het proberen waar. Wel even kijken of ik het zo kan wegzetten dat niet iedereen er toegang toe heeft die er niets mee moet.
zaterdag de nacht in dan ga ik ermee aan de slag.

thanks voor het advies. als ik er niet uitkom meld ik me weer.

groetjes,

Ronald
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan