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

Waarom werkt het niet

Status
Niet open voor verdere reacties.

longron

Gebruiker
Lid geworden
2 apr 2007
Berichten
361
Beste,

ik wil in een excel bestand via VBA bepalen dat ik wel cellen mag kopieren en plakken maar andere niet.

Dus afhankelijk van loginnaam

ik gebruik hiervoor
:
Code:
 Public Sub blokeer_Kopie()
 'Application.CutCopyMode = False
 'MsgBox Environ("UserName")
    If Environ("UserName") = "RonaldS" Then
    Application.CutCopyMode = True
    Else
    Application.CutCopyMode = False
    End If
  
    On Error Resume Next
    On Error GoTo 0
 End Sub

Deze routine wordt aangeroepen vanaf

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)

Het werkt niet.

Hoe moet ik dit invliegen?

thanks
 
Wat ik inmiddels heb geleerd is dat de username soms met kleine letters kan worden ingevoerd en het dan niet matched met de invoer die je verwacht.

Dus misschien dat dit helpt:

Code:
If UCase(Environ("UserName")) = "RONALDS" Then
 
Vrees dat dit niet helpt.

het lijkt erop dat zodra ik Application.CutCopyMode = False of Application.CutCopyMode = true in de routine zet hij niet meer kan plakken ongeacht of ik er wel of niets voor zet zoals environ..
 
Maar waarop loopt de code fout dan?

Die regel is cruciaal voor de oplossing.
 
Daarnaast is 1 regel voldoende:
Code:
Public Sub blokeer_Kopie()
    Application.CutCopyMode = UCase(Environ("Username")) = "RONALDS"
End Sub

Maar wat probeer je precies te bereiken en op welk moment?
 
Laatst bewerkt:
Hai Edmoor,

de routine ( heel groot woord voor dit ) moet voorkomen dat collega's binnen het bestand de layout verstoren en cellen doorkopieren.
dit om te voorkomen dat er fouten ontstaan.
Ikzelf moet dit wel kunnen.
Vanuit een andere macro wordt de gehele layout opgebouwd waarbij ook veel wordt gekopiereerd.

Hoop da je me begrijpt.

Groetjes
Ronald
 
Dus als ze naar een ander tabblad gaan wil je dat een eventueel gestarte Knip of kopieer actie wordt uitgeschakeld?

Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Application.CutCopyMode = UCase(Environ("Username")) = "RONALDS"
End Sub
 
Laatst bewerkt:
Eigenlijk wil ik voorkomen dat ze op welk tabblad dan ook kunnen knippen. plakken en verschuiven.
Alleen ik mag de layout aanpassen en de ook kopieren en plakken.
 
Dus je hebt al getest wat ik in #7 liet zien?
 
Zeker gezien en geprobeert.

gekke is alleen dat ik dan niet kan kopieren. dus niemand meer.

enig idee.
 
En wat levert dit dan op?
Code:
Msgbox UCase(Environ("Username"))
 
Het werkt inderdaad niet.
Ik ga eens kijken.
 
Laatst bewerkt:
Ok, doe het zo:
Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Not UCase(Environ("Username")) = "RONALDS" Then Application.CutCopyMode = False
End Sub
 
super, wel even op opgelost zetten graag.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan