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

bij blad beveiligen geeft code een fout

Status
Niet open voor verdere reacties.

mnemonic

Gebruiker
Lid geworden
25 mrt 2016
Berichten
114
Hallo,
In mijn project zitten nog twee fouten en ik hoop dat iemand mij hier mee kan helpen.

Bekijk bijlage test planning V1.xlsm

Ten eerste als ik de bladen maandag t/m zaterdag beveilig krijg ik een fout melding.
Excel geeft aan dat dit in Regel 7 zit.


PHP:
Sub KleurSet(Kleur As Long)
    Dim Kolom As Integer
    Select Case ActiveCell.Column
        Case 11, 12, 13:     Kolom = 11
        Case 14, 15, 16:   Kolom = 14
        Case Else
            For Each cel In Range("K2:P49").SpecialCells(xlCellTypeBlanks)
                cel.Font.Color = Kleur
            Next cel
            Exit Sub
    End Select
    
    For i = Kolom To Kolom + 2
        Cells(ActiveCell.Row, i).Font.Color = Kleur
    Next i
    Cells(ActiveCell.Row, Kolom).Activate
End Sub



Fout 2,
Als men in de maandag in cellenbereik K2 : P50 groene cijfers ingeeft dan moet deze kleur ook op het volgende tabblad (dinsdag) in cellenbereik B2:G50 geplaatst worden echter bij de groene kleur wordt dit een andere kleur????
Tewijl rood en blauw werken perfect.
Kan iemand mij hier mee helpen?
Jan
 
In een beveiligde sheet mag je geen wijzigingen maken. Dus ook de code niet. Beveilig je sheet daarvoor met de toevoeging UserInterfaceOnly:=True. De code mag dan dingen doen die een gebruiker niet mag.
 
Ik zie trouwens dat je gebruik maakt van het SelectionChange Event van de worksheet. En dan laat je daarna óók nog 'ns een compleet bereik aflopen om een waarde over te hevelen en kleurtjes toe te voegen. Dit is wel héél véél onnodige resources inzetten. Maak er een Change event van en dan alleen op de cel die je hebt aangepast. (althans, da's mijn mening... ;))

Zet voor de aardigheid maar 'ns een Toggle Point (= even klikken in de kantlijn) bij de regel If Not Intersect(Target, Range("J2:Q41")) Is Nothing Then. Dan kan je dmv F8 handmatig regel voor regel door je code lopen en zie je hoe vaak je moet klikken én hoe vaak je procedure aangeroepen wordt.
 
Laatst bewerkt:
Ginger bedankt voor je reactie.
Ik heb weinig vba kennis dus zal hier even tijd voor moeten nemen.
Weet je toevallig ook waarom de rode en blauwe kleur wel meegenomen wordt naar de volgende dag en de groene kleur veranderd?
Jan
 
Met UserInterfaceOnly:=True. is het gelukt en een andere groene kleur wordt wel meegenomen naar de volgende pagina mijn problemen zijn opgelost.
Nogmaals Bedank Ginger.
 
mnemonic, Mooi dat je er zelf zo mee aan de slag bent gegaan. Heb je ook nog ff gekeken naar het aanpassen van het Event-type en het te doorlopen bereik?
 
Hoi Ginger,
Hier loop ik op vast.

Dit bestand heb ik voor mijn werk gemaakt maar vandaag bij het uittesten blijkt dat deze code teveel van de computer vraagt.
Zoals je al zei : "Ik zie trouwens dat je gebruik maakt van het SelectionChange Event van de worksheet. En dan laat je daarna óók nog 'ns een compleet bereik aflopen om een waarde over te hevelen en kleurtjes toe te voegen. Dit is wel héél véél onnodige resources inzetten."
De computer gaat naar cel verandering alles opnieuw controleren en daar doet deze wel 10 seconden over.
Die van mij heeft daar geen last van dus dacht ik dat het wel mee zou vallen.
Dus nu moet ik het anders gaan doen.
Nu stelde jij voor : "Maak er een Change event van en dan alleen op de cel die je hebt aangepast. (althans, da's mijn mening... )"
Dus daar ga ik nu naar kijken.
Ik hoop dat als ik nog vragen heb jij me weer wil helpen
Jan
 
Hoi Ginger,
Ben aan het stoeien geweest maar elke keer verloor ik een functie van de kleur knoppen.
(met kleur rood kun je het hele veld j2:Q50 voorzien van een rode kleur of als je op een cel in dit bereik selecteerde en dan op rood drukte dan kleurde de drie cellen rood B.V. k2,l2,m2) de laatste optie kon ik niet meer gebruiken.
Met mijn kennis van vba (niet veel dus ) heb ik het volgende gedaan,

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("maandag").Range("J2:Q50").Copy Destination:=Sheets("dinsdag").Range("A2:H50")
End Sub

Nu zal dit niet de beste manier zijn maar het werkt wel en ik heb beide functies tot mijn beschikking.

Wel heb ik nog een vraagje over Toggle Point.
In je antwoord #2 vertel je mij hier over maar als ik dit probeer (F8) werkt dit niet en krijg ik een ping te horen.
F9 werkt wel bij mij (om ergens te beginnen in een code)
Kun jij mij misschien vertellen waar dit aan kan liggen.
Jan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan