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

cel(len) blokkeren als ingevuld.

Status
Niet open voor verdere reacties.

Wim80

Gebruiker
Lid geworden
1 feb 2021
Berichten
7
Goedemiddag,

Ik ben voor ons bedrijf bezig met het maken van een document wat intern in ons bedrijf gebruikt moet worden. Hierbij zijn er twee verschillende 'afdelingen' die gegevens moeten invoeren:

1. Productie manager: voert alle gegevens omtrent de productie in (geel gearceerde vakken handmatig, de rest wordt automatisch gedaan)
2. Keurmeester: deze vult initialen in als teken dat de productie gekeurd is.

Het blad is voor de medewerkers beveiligd om te zorgen dat ze alleen invullen wat nodig is en om zo onnodige fouten te voorkomen.

Nu heb ik voor het invoeren van een rij een button. Deze doet het volgende:
- Heft de beveiliging van het blad op
- Voegt een nieuwe rij in boven de daarvoor ingevulde rij
- Blokkeert A8 t/m R8 (de vorige ingevulde rij en de cellen die ingevuld hadden moeten worden door de productiemanager
- Blokkeert het document weer

Nu weet ik niet van te voren wanneer de keurmeester de productie zal controleren. Het kan dus dat er pas 1 nieuwe rij is ingevoerd, maar ook dat dit er 10 zijn. Om die reden lijkt het me niet verstandig om de beveiliging van deze cel plaats te laten vinden vanaf een bepaalde rij, maar wil ik hem laten plaatsvinden op het moment dat kolom S is ingevuld.

Ik ben dan ook op zoek naar een VBA voor het volgende:
S.. = ingevuld --> blokkeren
S.. = niet ingevuld --> niet blokkeren

Bovenstaand is ondertussen opgelost met een VBA-code
 

Bijlagen

  • 20210209 - VB.xlsm
    31,5 KB · Weergaven: 23
Laatst bewerkt:
Hoe heb je het opgelost dan? De formules blijven in de tabel staan dus als je morgen het bestand opent staan er andere waarden!
Voor het invoegen van een rij in een tabel volstaat dit. Wel de code in de juiste bladmodule zetten.

Code:
Sub VenA()
  ListObjects(1).ListRows.Add (1)
End Sub


Met wachtwoorden en andere toestanden kan je het beste pas aan de gang gaan als alles werkt zoals jij voor ogen hebt.
 
Laatst bewerkt:
U bedoelt de T en U kolom waar ik een formule gebruik (VANDAAG & NU)? Dat is iets wat mij nog niet opgevallen is en wat ik nog niet wist.. Ik zal dan nog even op zoek moeten naar een methode waarbij dit niet veranderd..

Met betrekking tot de S rij heb ik de volgende VBA gevonden en die lijkt te werken:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Rng = Range("S8:S1000")
If Sheets(1).ProtectContents = True Then Sheets(1).Unprotect Password:=""
For Each cell In Rng
 If cell = "" Then
  cell.Locked = False
  Else
  cell.Locked = True
 End If
Next cell
Sheets(1).Protect Password:="", UserInterfaceOnly:=True
End Sub

En de button om een rij toe te voegen en de vorige rij (deels) te bokkeren bevat de volgende code:
Code:
Sub DagOogstReg()
'
' DagOogstReg Macro
'

'
    ActiveSheet.Unprotect ""
    Rows("7:7").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A8:R1000").Select
    Selection.Locked = True
    Selection.FormulaHidden = True
    Range("A7").Select
    ActiveSheet.Protect "", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Voor nu lijkt het te werken, maar wellicht heb ik nog niet ver genoeg gekeken..

Bedankt voor uw reactie.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan