il ragionamento è semplice, vorrei che le celle ( sulla stessa riga ) possano essere compilate solo da sinistra verso destr a ed ugualmente per eliminarle, da destra verso sinistra, quindi in sintesi,
A1>A2>A3>A4>5...... A5<A4<A3<A2<1 e via dicendo.
nella compilazione dev essere proibito compilare una cella se quella precedente è vuota, e dev essere proibito eliminarle una se nella precedente c è qualcosa.
in questo modo evito che si apportino delle modifiche a dei dati che non possono essere modificati senza prima modificare quelli seguenti.
mi piacerebbe anche che apparisse una msgbox nel caso si tentasse di non rispettare codesta regola.
Se qualcuno potesse darmi una mano, grazie mille
p.s avevo un codice simile fornito da un utente, solo che quella impediva di modificare una cella se un altra é compilata. è simile ma non svolge questo compito di cui ho bisogno ora.
la allego ugualmente magari può tornare utile come base.
Codice: Seleziona tutto
Sub ModificaA(Target)
Dim Sh As Object
Dim LastRow As Long
Dim range As Object
If NOT Target.supportsService("com.sun.star.sheet.SheetCell") then exit sub
Sh = Target.getSpreadsheet()
range = Sh.getCellRangeByName("J1:J10003")
range2 = range.queryintersection(Target.rangeaddress())
If range2.RangeAddressesAsString = "" Then exit sub
Riga = Target.getCellAddress.Row
Dim oPC As New "com.sun.star.util.CellProtection"
If Target.String = "" Then
oPC.IsLocked = False
Else
oPC.IsLocked = True
End if
Sh.UnProtect("")
Sh.getCellByPosition(1, Riga).CellProtection = oPC
Sh.Protect("")
End Sub