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

popup bij cel selectie

  • Onderwerp starter Onderwerp starter DVDL
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

DVDL

Gebruiker
Lid geworden
11 dec 2002
Berichten
92
ik zit met een beveiligingsprobleempje, excel file wordt gebruikt in 2000, XP, 2003 en 2007.
cellen beveiligen via bladbeveiliging lukt niet omdat de bladnamen gewijzigd kunnen worden. (bladnamen zijn dmv VBA gekoppeld aan cellen in blad 1)

idee is nu om een popup te laten verschijnen indien men een cel met formule wil overschrijven, dit lukt me wel via een dubbelklik van de cel maar dat is niet de bedoeling, popup zou al moeten verschijnen vanaf dat men de cel selecteerd.
Is dat mogelijk?
of kan er op een of andere mannier toch een bladbeveiliging geactiveerd worden?

via deze code worden de bladnamen gecreeerd.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim wsh As Worksheet, r As Range, helerange As Range
    Set helerange = Range("A1:A70")
    If Target.Count = 1 And Not Intersect(Target, helerange) Is Nothing And Target <> "" Then
        If WorksheetFunction.CountIf(helerange, Target) > 1 Then
            MsgBox "Deze naam bestaat al." & vbCr & vbCr & _
                "Je kan geen 2 tabbladen dezelfde naam geven.", vbCritical + vbOKOnly
            Target.ClearContents
            Exit Sub
        Else
            For Each wsh In ThisWorkbook.Worksheets
                If WorksheetFunction.CountIf(helerange, wsh.Name) = 0 And wsh.Name <> "invul" Then
                    wsh.Name = Target
                    Target.Select
                    Exit Sub
                End If
            Next
        End If
    End If
End Sub
 
Om bij selectie verandering iets te doen, gebruik je de event selection change
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Het is niet nodig om met bladnamen te werken. bv.
blad1.activate
Werkt net zo goed.
Verder kun je bladen gewoon beveiligen.
Wanneer je UserInterfaceOnly gebruikt is het blad voor de gebruiker beschermt, maar heeft de macro er geen last van.
uit de help:
UserInterfaceOnly Variant, optioneel. True voor beveiliging van de gebruikersinterface, maar niet van macro's. Als u dit argument weglaat, heeft de beveiliging betrekking op zowel macro's als de gebruikersinterface.
mvg leo
 
Ik zou toch een beveiliging op bladniveau trachten in te bouwen. Je kan een sheet binnen Excel VBA op 3 manieren.

-Via zijn indexnummer (als de sheets niet van volgorde veranderen is dat een mogelijkheid)
-Via zijn naam (die steeds zal wijzigen volgens je uitleg)
-Via zijn codenaam (die kan je constant houden binnen VBA)

Verder moet je dan idd zoals mijn voorganger zei, beveiligen met userinterfaceonly=true.
 
thanks, heb al enkele problemen zo kunnen oplossen.
Nu zit ik nog met 1 sheet in de problemen, daar werk ik met samengevoegde lijnen en als de pagina beveiligd is dan kunnen deze niet opengeklapt worden, natuurlijk is dat net de pagina met de meeste formules...
 
ik heb een noodoplossing voor dit probleem d.m.v. een data validatie bericht bij selectie.
zal niet "dummy proof" zijn maar is toch al beter dan niets.
Ik zet de vraag op opgelost maar betere opties zijn natuurlijk altijd nog welkom.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan