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

Macro starten op bepaalde computer ?

Status
Niet open voor verdere reacties.

MrBob

Gebruiker
Lid geworden
3 aug 2013
Berichten
218
Is het mogelijk om op een bepaalde computer een bepaalde macro wel te laten starten en op een andere computer niet met dezelfde file terwijl andere macro's wel op alle computers starten ?
 
Dat kan, als je (bijvoorbeeld) de naam van de computer weet. Die kun je met VBA.Environ("COMPUTERNAME") uitlezen.
 
Precies. Waarbij je dan het VBA. gedeelte weg mag laten ;)
 
Dit gaat me even te snel :S

Kunnen jullie voorbeelden geven hoe het een en ander werkt en een voorbeeld macro code hoe het eruit moet zien uiteindelijk om een bepaalde macro aan de gang te krijgen.
 
Aan het begin van je Sub:
Code:
If Environ("COMPUTERNAME") = "NIETGOED" Then Exit Sub

Of:
Code:
If Environ("COMPUTERNAME") <> "WELGOED" Then Exit Sub
 
Laatst bewerkt:
Dit laatste snap ik, ga daar mee aan de slag maar hoe kan ik de computer naam uitlezen precies ? Hoe gaat dit in zijn werk ?
 
Precies zoals het daar staat. Het woord COMPUTERNAME is een zgn. environment variabele. Die kun je uitlezen met de Environ functie.
Open eens een command box en tik daar het command SET in. Je krijgt dan een heel lijstje met variabelen in hoofdletters en hun waarde er achter. Al die variabelen kun je in VBA uitlezen met de Environ functie. COMPUTERNAME is er daar 1 van.
 
Het is me nu helemaal duidelijk ga ff nog wat testen met de eerste regels in macro. Heb de "set computername" al uitgevoerd en werkt ook. Mag ik jullie danken voor de snelle hulp. :thumb: Tot de volgende vraag. ;)
 
Graag gedaan en succes :)
 
Een alternatief is om de macro in je 'personal.xlsb' te zetten
 
Als het alleen op de eigen computer mag draaien is dat inderdaad mogelijk. Als het op meerdere computers mag draaien en op meerdere anderen niet kan je dit doen om de PC's waar het niet op mag draaien uit te sluiten:
Code:
    Select Case Environ("COMPUTERNAME")
        Case "COMPUTER01", "COMPUTER02", "COMPUTER03"
            Exit Sub
    End Sub
 
Ik wil het dus dat het op 1 computer wel opstart en op de andere computers niet ! Dus hoe zit het met "Een alternatief is om de macro in je 'personal.xlsb' te zetten" hoe krijg ik dat aan het werk dan en waar moet dat dan neergezet worden ?
 
Ik heb nu het volgende:

Sub FullScreen()
If Environ("BREWWKS019") = "NIETGOED" Then Exit Sub
With Application
.ScreenUpdating = False
.DisplayFullScreen = True
'.WindowState = xlMaximized
.ScreenUpdating = True
End With
End Sub

Ik wil nu dat deze sub alleen op computer BREWWKS019 opstart en dan op de pagina waar hij op opend dat a1 is geselecteerd dus niet op sheet 1, maar op elke willekeurige sheet die het laatst is gesaved. Wat moet ik aanpassen om dit voor mekaar te krijgen ??
 
Nee. Je moet het woord "COMPUTERNAME" niet veranderen!
Het is dus letterlijk:
If Environ("COMPUTERNAME") <> "BREWWKS019" Then Exit Sub
Als BREWWKS019 jouw computer is.
 
Ok bedankt voor je reactie, vond het al vreemd dat het niet werkte zo ik wilde. En weet je toevallig ook hoe excell dan te beginnen met cel a1 geselecteerd.
 
stond voorheen .Goto Sheets(1).Range("A1"), True tussen maar die maakt ook sheet 1 open en dat wil ik niet, de sheet die door een andere macro geopend word die moet op a1 worden geopend.
 
Als volgt:
Sheets("Blad1").Range("A1").Activate

Waarbij je voor Blad1 de naam van het blad invult waar je wilt beginnen.
 
Ok maar nu wil ik geen sheet selecteren maar dit moet gebeuren die excell opend. krijg ik dan .Goto .Range("A1"), True ??
 
Ik denk niet dat je begrijpt wanneer een object met een punt (.) moet beginnen.
Waarom wil je het niet gewoon doen zoals ik zei?
Als je een reactie in twijfel trekt kun je net zo goed de vraag niet stellen.

Het maken van een VBA functie luistert erg nauw. Dat bekend ook dat je erg precies moet zijn in de uitleg van wat je wilt dat er gebeurt. Het beste is daarnaast nog een voorbeeld document.

Je wilt dat het document wordt geopend op het blad dat actief was tijdens het sluiten van het document maar dat daar dan Cel A1 wordt geselecteerd?
Dan laat je dat gedeelte gewoon weg en maak je er dus dit van:
Range("A1").Activate

Dat zet je dan in de Open sectie van ThisWorkbook.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan