Zählung von Dateneingaben

Moderator: ModerationP

Zählung von Dateneingaben

Beitragvon Danuta Hessen » 12. Aug 2018, 12:04

Hallo,

in einer Tabelle B13:Q1237 können in den Spalten C, D, E, I, J, K und M zeilenweise Zahlenangaben, sowie in Spalte P Textangaben erfolgen.
Nach der letzten Angabe wird die jeweilige Zeile in Spalte W mit dem Text "OK" bestätigt.
Nun soll in Spalte X erscheinen, wie oft die Angaben in einer mit OK bestätigte Zeile geändert wurden (z.B. 1x).

Gruß
Dana
Danuta Hessen
 

Re: Zählung von Dateneingaben

Beitragvon Danuta Hessen » 12. Aug 2018, 12:29

Alternativ wäre auch in Ordnung wenn nach Bestätigung mit "OK"
die Zellen C, D, E, I, J, K, M und P der bestätigten Zeile gesperrt würden.

Dana
Danuta Hessen
 

Zellen automatisch schützen nach Dateneingabe

Beitragvon Danuta Hessen » 12. Aug 2018, 13:17

Hallo,

vielleicht habe ich das Problem zu kompliziert gemacht, denn die Zählung der Änderungen ist irrelevant.
Es kommt nur darauf an, Zellen nach der Dateneingabe automatisch zu sperren.
Mit folgendem Code wäre das wohl möglich.

Option Explicit
Sub Worksheet_Change(ByVal Target As Range)
With Target
Me.Unprotect ""
Application.EnableEvents = False
.Locked = True
Application.EnableEvents = True
Me.Protect ""
End With
End Sub

Dummerweise bezieht sich der Code auf einzelne Zellen.
Ich möchte hingegen, dass man die 8 beschreibbaren Zellen einer Zeile noch ändern kann,
und zwar so lange, bis eine Kontrolle mit evtl. Änderungen erfolgte,
die mit OK bestätigt wird.
Die Sperrung der 8 Zellen soll erst nach OK erfolgen.

LG Dana
Danuta Hessen
 

Re: Zählung von Dateneingaben

Beitragvon Tim_ » 13. Aug 2018, 04:33

Hallo Dana.

Schau mal ob das so für dich passt.
Die Zeile in der du in Spalte W ein OK eingibst wird gesperrt, dh. nur für Spalte C-E,I-K,M und P

Code: Alles auswählen
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strSperre As String
strSperre = "C1:E1,I1:K1,M1,P1"

If Target.Count > 1 Then Exit Sub
If Target.Column = 23 Then
    If LCase(Target.Text) = "ok" Then
        strSperre = Replace(strSperre, "1", CStr(Target.Row))
        Me.Unprotect ""
        Range(strSperre).Locked = True
        Me.Protect ""
    End If
End If

End Sub


Lg Tim
Tim_
 


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: AH4711, JensGolesch, RobinExcel, steve-m, Tupamaro und 13 Gäste