|
Login
  • Page:
  • 1

TOPIC: Rendere obbligatorio inserimento dati in una cella

Rendere obbligatorio inserimento dati in una cella 9 years 6 months ago #6944

  • puoti1
  • puoti1's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 2
  • Karma: 0
Salve qualcuno potrebbe aiutarmi io ho il seguente problema su un file excel vorrei che su di una riga che parte da A6 all'inserimento di un qualsisi dato nella cella B6 obblighi all'utente di inserire i valori in maniera guidata dei dati nelle celle L6 N6 O6 Q6. C'è da precisare che i dati delle celle L6 N6 O6 Q6 vengono inseriti da un elenco avendo la convalida dei dati su singole celle. Se fosse possibile una cosa del genere tramite vba vorrei inoltre che fosse ripetuta la stessa verifica per tutte le righe fino alla cella A2006.

Ringrazio tutti coloro che possono aiutarmi.

Saluti
Francesco
The administrator has disabled public write access.

Rendere obbligatorio inserimento dati in una cella 9 years 1 month ago #7468

  • p3pq3
  • p3pq3's Avatar
  • OFFLINE
  • Gold Boarder
  • Posts: 175
  • Thank you received: 28
  • Karma: 10
Verifica se questa soluzione possa far a caso tuo, prendila come spunto di partenza, sicuramente il codice può essere ottimizzato:

Private Sub Worksheet_Change(ByVal Target As Range)

Set check = Range("B6:B2006")
Set check_L = Range("L6:L2006")
Set check_N = Range("N6:N2006")
Set check_O = Range("O6:O2006")
Set check_Q = Range("Q6:Q2006")

'Cells.Select
'Selection.Locked = True

Application.ScreenUpdating = False

If Union(Target, check).Address <> check.Address Then
GoTo Next_L
Else:
Application.EnableEvents = False
ActiveSheet.Unprotect
Cells.Select
Selection.Locked = True
r = Target.Row
Range("L" & r).Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("L" & r).Select
Application.EnableEvents = True
GoTo End_
End If

Next_L:
If Union(Target, check_L).Address <> check_L.Address Then
GoTo Next_N
Else:
Application.EnableEvents = False
ActiveSheet.Unprotect
Cells.Select
Selection.Locked = True
r = Target.Row
Range("N" & r).Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("N" & r).Select
Application.EnableEvents = True
GoTo End_
End If

Next_N:
If Union(Target, check_N).Address <> check_N.Address Then
GoTo Next_O
Else:
Application.EnableEvents = False
ActiveSheet.Unprotect
Cells.Select
Selection.Locked = True
r = Target.Row
Range("O" & r).Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("O" & r).Select
Application.EnableEvents = True
GoTo End_
End If

Next_O:
If Union(Target, check_O).Address <> check_O.Address Then
GoTo Next_Q
Else:
Application.EnableEvents = False
ActiveSheet.Unprotect
Cells.Select
Selection.Locked = True
r = Target.Row
Range("Q" & r).Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("Q" & r).Select
Application.EnableEvents = True
GoTo End_
End If

Next_Q:
If Union(Target, check_Q).Address <> check_Q.Address Then
GoTo End_
Else:
Application.EnableEvents = False
ActiveSheet.Unprotect
Application.EnableEvents = True
GoTo End_
End If

End_:
Application.ScreenUpdating = True
End Sub
The administrator has disabled public write access.
  • Page:
  • 1
Time to create page: 0.566 seconds