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

Een (1) werkblad voor een (1) gebruiker

Status
Niet open voor verdere reacties.

Fredemel

Gebruiker
Lid geworden
2 jun 2008
Berichten
123
Is er een manier om een werkblad PC-afhankelijk te laten zijn?
Ik wil voorkomen dat werkbladen zonder meer gekopieerd en gebruikt kunnen worden.
Tnx
 
Oeps, inderdaad.... Forumregels niet gelezen

:(
Maar,.... ik heb een (mogelijke...) oplossing gevonden en wil die graag delen.....
Vind eerst gegevens van de PC waar het werkblad op gebruikt mag worden. Deze macro in apart "dataBestand" zetten
Code:
Sub infoPCvanKlant()
    Application.Goto Reference:="R3C3"  ' mag ook andere cel zijn

    myComputername = Environ("COMPUTERNAME")
    ActiveCell.FormulaR1C1 = myComputername
    ActiveCell.Offset(1, 0).Range("A1").Select

    myProc_Ident = Environ("PROCESSOR_IDENTIFIER")
    ActiveCell.FormulaR1C1 = myProc_Ident
    ActiveCell.Offset(1, 0).Range("A1").Select
    
    myUserdomain = Environ("USERDOMAIN")
    ActiveCell.FormulaR1C1 = myUserdomain
    ActiveCell.Offset(1, 0).Range("A1").Select

    myUserName = Environ("USERNAME")
    ActiveCell.FormulaR1C1 = myUserName
    ActiveCell.Offset(1, 0).Range("A1").Select

End Sub

Deze code plaatsen binnen "ThisWorkBook" van het bestand dat je maar op een PC wilt laten (be)werken
Code:
Dim myComputername As String
Dim myProc_Ident As String
Dim myUserdomain As String
Dim myUserName As String

    
Private Sub Workbook_Open()

'Wachtwoord VAST instellen
    ActiveSheet.Unprotect Password:="wachtwoord"
    
'Data wordt gegenereerd voor autorisatie
    myComputername = Environ("COMPUTERNAME")
    myProc_Ident = Environ("PROCESSOR_IDENTIFIER")
    myUserdomain = Environ("USERDOMAIN")
    myUserName = Environ("USERNAME")

'  Let wel: de "If"-data MOET je aanpassen om het bestand te kunnen gebruiken.
    If myComputername <> "PCnaam" Or _
    myProc_Ident <> "jouwProcessorData" Or _
    myUserdomain <> "jouwDomain" Or _
    myUserName <> "jouwUsernaam" Then
       MsgBox "U heeft geen geldige autorisatie. KOOP dit product" & vbNewLine & vbNewLine & _
       "Mail naar: jouwmailadres@com.com" _
       & vbNewLine & vbNewLine & "U kunt dit bestand NIET bewerken....."
    
'Als de data niet klopt met de PC zal d.m.v. het VASTE wachtwoord het bestand geblokkeert raken.
    ActiveSheet.Protect Password:="wachtwoord"
    Range("B5").Select

    Else
        MsgBox "              Welkom  Klant." & vbNewLine _
        & "=====================================" & vbNewLine & vbNewLine _
        & "U bent de rechtmatige eigenaar van dit Excel-document." _
        & vbNewLine & vbNewLine & "Op een andere PC of laptop blokkeert dit document."

'D.m.v. het VASTE wachtwoord het bestand ONTgrendelen
    ActiveSheet.Unprotect Password:="wachtwoord"
'   Range("B5").Select
    End If
End Sub

Ik ben wel benieuwd of er andere (simpelere) oplossingen zijn.:cool:
 
Code:
Sub infoPCvanKlant()
    Dim data(4)
    data(0) = Environ("COMPUTERNAME")
    data(1) = Environ("PROCESSOR_IDENTIFIER")
    data(2) = Environ("USERDOMAIN")
    data(3) = Environ("USERNAME")
    Range("C3").Resize(4) = WorksheetFunction.Transpose(data)
End Sub

Op deze manier kan je het opvragen v/d gegevens al vereenvoudigen.
De code in ThisWorkbook gaat al lopen bij het openen, voor je de eigen gegevens ingevuld hebt, hoe ga je dit dan oplossen?
Of ga jij eerst deze gegevens aan je klant opvragen en invullen alvorens het bestand te verspreiden?
Ook verwijder je de beveiliging voor de controle, als op dat moment de code vastloopt zit je met een onbeveiligd werkblad.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan