[Risolto] Bloccare una cella se un altra cella non é vuota.
[Risolto] Bloccare una cella se un altra cella non é vuota.
Ciao,
é possibile bloccare la modifica di un contenuto di una cella se un altra contiene qualcosa?
In parole semplici.
In A1 ho un menu a tendina dove selezionare degli articoli. in J1 inserisco il numero di articoli venduti.
Vorrei che qualora in J1 fosse presente un valore, diventi impossibile cambiare l'articolo venduto in A1.
La modifica di A1 é possibile solo se J1 é vuota.
Il tutto per l intervallo A1:A10003 - J1:J10003
Non sono riuscito a risolvere il problema con nessuna formula e nessuna validità, ho trovato svariati codici per applicare questa funzione ma entriamo in un mondo che non conosco.
Qualcuno sa indicarmi un codice adatto a ciò ed il modo di inserirlo?
Grazie
Flavio
é possibile bloccare la modifica di un contenuto di una cella se un altra contiene qualcosa?
In parole semplici.
In A1 ho un menu a tendina dove selezionare degli articoli. in J1 inserisco il numero di articoli venduti.
Vorrei che qualora in J1 fosse presente un valore, diventi impossibile cambiare l'articolo venduto in A1.
La modifica di A1 é possibile solo se J1 é vuota.
Il tutto per l intervallo A1:A10003 - J1:J10003
Non sono riuscito a risolvere il problema con nessuna formula e nessuna validità, ho trovato svariati codici per applicare questa funzione ma entriamo in un mondo che non conosco.
Qualcuno sa indicarmi un codice adatto a ciò ed il modo di inserirlo?
Grazie
Flavio
Ultima modifica di Fly88 il domenica 27 dicembre 2020, 11:18, modificato 2 volte in totale.
Openoffice 4.1.5 con MacOs 10.11.6
Re: Bloccare una cella se un altra cella non é vuota.
Devi per forza usare una macro.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Bloccare una cella se un altra cella non é vuota.
Ok e fino a qui ci siamo, ho guardato qualcosina tipo le registrazioni basilari ma niente di piu...
mi domando come registrare una macro di questo tipo e sopratutto, si puo fare una cosa simile rendendola sempre attiva e non come spesso vedo usando un pulsante o una combinazione di tasti?
cioè integrarla letteralmente.
mi domando come registrare una macro di questo tipo e sopratutto, si puo fare una cosa simile rendendola sempre attiva e non come spesso vedo usando un pulsante o una combinazione di tasti?
cioè integrarla letteralmente.
Openoffice 4.1.5 con MacOs 10.11.6
Re: Bloccare una cella se un altra cella non é vuota.
se hai trovato la soluzione leggi qui per imparare ad usare le macro http://professoressa.altervista.org/Dis ... re_OOo.pdf
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: Bloccare una cella se un altra cella non é vuota.
Si può fare, ti allego un esempio, il foglio deve essere naturalmente protetto io l'ho protetto senza password, le celle del range A1:A10003 e J1:J10003 non vanno protette, quantomeno la colonna j dove bisogna digitare i valori.Fly88 ha scritto:si puo fare una cosa simile rendendola sempre attiva e non come spesso vedo usando un pulsante o una combinazione di tasti?
cioè integrarla letteralmente.
La macro và associata all'evento "contenuto modificato" facendo tasto dx sulla linguetta del foglio - evento - contenuto modificato - macro
Tutti i passaggi descritti nel file sono stati già fatti.
PS: Ho riallegato il file in quanto era errato, avevo invertito le colonne
- Allegati
-
- modificaA.ods
- (9.46 KiB) Scaricato 216 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Bloccare una cella se un altra cella non é vuota.
Mi stavo chiedendo infatti se fosse la mia mente impazzita ... dopo un po di tempo dietro a formule e celle.
Openoffice 4.1.5 con MacOs 10.11.6
Re: Bloccare una cella se un altra cella non é vuota.
Gaetanopr ha scritto:Si può fare, ti allego un esempio, il foglio deve essere naturalmente protetto io l'ho protetto senza password, le celle del range A1:A10003 e J1:J10003 non vanno protette, quantomeno la colonna j dove bisogna digitare i valori.
La macro và associata all'evento "contenuto modificato" facendo tasto dx sulla linguetta del foglio - evento - contenuto modificato - macro
Tutti i passaggi descritti nel file sono stati già fatti.
PS: Ho riallegato il file in quanto era errato, avevo invertito le colonne
Allora il senso c é... però c é un piccolo errore provando il file o mi sono espresso un po male, mi scuso e cerco di essere piu chiaro.
se cancello le "s" nella colonna J non mi fa comunque selezionare niente nelle righe A corrispondenti.
il lavoro andrebbe fatto in serie.ovvero:
inserisco un prodotto tramite menu a tendina in A1>>>>>inserisco una quantità in J1.======= al momento che in J1 é presente una quantità, non posso piu cambiare l articolo in A1.
a) Per cambiare l'articolo in A1, devo prima eliminare la quantità presente in J1.
Sarebbe interessante avere ad accompagnare anche degli avvisi ad esempio:
a) in A : SE A é compilato e J idem e si prova a modificare A "Bisogna eliminare il contenuto J prima di modificare A"
In ogni caso niente della Colonna A e della colonna J vanno protetti in quanto vanno compilati entrambi ma solo a quelle condizioni.
Grazie per il tempo che mi state dedicando.
Ultima modifica di Fly88 il domenica 17 novembre 2019, 10:11, modificato 8 volte in totale.
Openoffice 4.1.5 con MacOs 10.11.6
Re: Bloccare una cella se un altra cella non é vuota.
Il file che ti ho allegato funziona esattamente in questo modo, scrivi nella colonna A successivamente inserisci la quantità della colonna J e la cella di riferimento nella colonna A si blocca e non ne permette la digitazione, infatti se provi ad immettere un valore riceverai il seguente messaggio "impossibile modificare le celle protette", per poterla modificare dovrai togliere il valore nella colonna J e solo così potrai modificare la colonna AFly88 ha scritto: Allora il senso c é... però c é un piccolo errore provando il file o mi sono espresso un po male, mi scuso e cerco di essere piu chiaro.
se cancello le "s" nella colonna J non mi fa comunque selezionare niente nelle righe A corrispondenti.
il lavoro andrebbe fatto in serie.ovvero:
inserisco un prodotto tramite menu a tendina in A1>>>>>inserisco una quantità in J1.======= al momento che in J1 é presente una quantità, non posso piu cambiare l articolo in A1.
a) Per cambiare l'articolo in A1, devo prima eliminare la quantità presente in J1.
Sarebbe interessante avere ad accompagnare anche degli avvisi ad esempio:
a) in A : SE A é compilato e J idem e si prova a modificare A "Bisogna eliminare il contenuto J prima di modificare A"
Invece si e per i motivi che ti ho illustrato prima.(Solo la colonna A va protetta, sarà la macro a togliere la protezione per permetterne la modifica)Fly88 ha scritto: In ogni caso niente della Colonna A e della colonna J vanno protetti in quanto vanno compilati entrambi ma solo a quelle condizioni.
- Allegati
-
- Test.ods
- (12.42 KiB) Scaricato 210 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Bloccare una cella se un altra cella non é vuota.
Ecco, ho provato tutto, e si funziona perfettamente sei stato molto gentile, penso che qualcosa non mi lanciava la macro.Gaetanopr ha scritto:Fly88 ha scritto:
Il file che ti ho allegato funziona esattamente in questo modo, scrivi nella colonna A successivamente inserisci la quantità della colonna J e la cella di riferimento nella colonna A si blocca e non ne permette la digitazione, infatti se provi ad immettere un valore riceverai il seguente messaggio "impossibile modificare le celle protette", per poterla modificare dovrai togliere il valore nella colonna J e solo così potrai modificare la colonna AInvece si e per i motivi che ti ho illustrato prima.(Solo la colonna A va protetta, sarà la macro a togliere la protezione per permetterne la modifica)Fly88 ha scritto: In ogni caso niente della Colonna A e della colonna J vanno protetti in quanto vanno compilati entrambi ma solo a quelle condizioni.
Purtroppo ho fatto un grosso errore io non ho specificato che andava nel foglio Scarico evidenziato in giallo ed hai assegnato la macro nel foglio Carico dove il riferimento era colonna A come avevo scritto erroneamente. Nel foglio scarico il riferimento è la colonna B come nel mio file.
Se invece la inserisco nel mio File mi da questo errore:
"wrong number of parameters"
Ti chiedo cortesemente un ultimo favore e dopo ce l abbiamo fatta.
Se potessi incollarmi la Macro modificata per funzionare con( scarico ) B3:B10003 E J3;J10003.
Cambiato questo, funziona perfettamente.
Grazie nuovamente, Flavio.
Openoffice 4.1.5 con MacOs 10.11.6
Re: Bloccare una cella se un altra cella non é vuota.
Oltre ad inserirla nel tuo file devi associarla all'evento "contenuto modificato" del foglio "Carico" come spiegato nel mio primo messaggio.Fly88 ha scritto: Se invece la inserisco nel mio File mi da questo errore:
"wrong number of parameters"
Ti chiedo cortesemente un ultimo favore e dopo ce l abbiamo fatta.
Se potessi incollarmi la Macro modificata per funzionare con( scarico ) B3:B10003 E J3;J10003.
Cambiato questo, funziona perfettamente.
Grazie nuovamente, Flavio.
Ecco la macro modificata per funzionare con la colonna B al posto della colonna A
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
Codice: Seleziona tutto
Sh.getCellByPosition(1, Riga).CellProtection = oPC
patel ha scritto:se hai trovato la soluzione leggi qui per imparare ad usare le macro http://professoressa.altervista.org/Dis ... re_OOo.pdf
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Bloccare una cella se un altra cella non é vuota.
Gaetanopr ha scritto:Oltre ad inserirla nel tuo file devi associarla all'evento "contenuto modificato" del foglio "Carico" come spiegato nel mio primo messaggio.Fly88 ha scritto: Se invece la inserisco nel mio File mi da questo errore:
"wrong number of parameters"
Ti chiedo cortesemente un ultimo favore e dopo ce l abbiamo fatta.
Se potessi incollarmi la Macro modificata per funzionare con( scarico ) B3:B10003 E J3;J10003.
Cambiato questo, funziona perfettamente.
Grazie nuovamente, Flavio.
Ecco la macro modificata per funzionare con la colonna B al posto della colonna AVà cambiata questa parteCodice: 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
dove lo 0 indicava la colonna A e il numero 1 individua la colonna B, gli indici delle colonne come per le righe iniziano da zero, quindi A= 0 b=1 C=2 è così via, se vuoi usare le macro devo studiare almeno le cose fondamentali in modo tale da poter capire dove intervenire su queste piccole modifiche, come già ti avevo suggerito patelCodice: Seleziona tutto
Sh.getCellByPosition(1, Riga).CellProtection = oPC
patel ha scritto:se hai trovato la soluzione leggi qui per imparare ad usare le macro http://professoressa.altervista.org/Dis ... re_OOo.pdf
Ti ringrazio veramente molto, giorno per giorno sto leggendo qualcosa e testando anche altre macro sto provando ad analizzarle e capirle, non é niente di impossibile ma mi ci vorrà qualcosa in piu che 3 giorni.
Ormai entro nel mondo delle macro da completo inesperto e mi ci vorrà un po d impegno.
Nuovamente grazie dell aiuto e buona giornata.
Flavio
Openoffice 4.1.5 con MacOs 10.11.6
Re: Bloccare una cella se un altra cella non é vuota.
Gaetanopr ha scritto:
Và cambiata questa partedove lo 0 indicava la colonna A e il numero 1 individua la colonna B, gli indici delle colonne come per le righe iniziano da zero, quindi A= 0 b=1 C=2 è così via, se vuoi usare le macro devo studiare almeno le cose fondamentali in modo tale da poter capire dove intervenire su queste piccole modifiche, come già ti avevo suggerito patelCodice: Seleziona tutto
Sh.getCellByPosition(1, Riga).CellProtection = oPC
patel ha scritto:se hai trovato la soluzione leggi qui per imparare ad usare le macro http://professoressa.altervista.org/Dis ... re_OOo.pdf
Funziona tutto perfettamente, finalmente
in ultimo...sto provando in ogni maniera ad inserire il messaggio di errore che dovrebbe comparire se provo a modificare B con J compilato ma non riesco a trovare il punto esatto in cui inserirlo.
MsgBox "Prima di selezionare un nuovo articolo é necessario azzerare la quantità", "", "STOP"
Mi viene sempre fuori quando applico una qualsiasi modifica alla colonna J invece che b.
mi é concesso l ultimo suggerimento tra quale riga devo aggiungere la msgBox?
Openoffice 4.1.5 con MacOs 10.11.6
Re: Bloccare una cella se un altra cella non é vuota.
Ciao, é passato un po di tempo e funziona ancora tutto molto bene, però avrei una curiosità.
visto che all'evento contenuto modificato posso assegnare un unica macro, è possibile aggregare 2 o piu di queste macro nello stesso codice?
saluti
visto che all'evento contenuto modificato posso assegnare un unica macro, è possibile aggregare 2 o piu di queste macro nello stesso codice?
saluti
Openoffice 4.1.5 con MacOs 10.11.6
Re: Bloccare una cella se un altra cella non é vuota.
Nel codice della macro puoi inserire una istruzione "call":
Codice: Seleziona tutto
call NomeDellaMacroDaRichiamare
Re: Bloccare una cella se un altra cella non é vuota.
probabilmente ho sbagliato qualcosa in pieno io, le ricopiavo esattamente come sono una sotto l altra e cambiavo solo i riferimenti delle celle, controllerò.
Openoffice 4.1.5 con MacOs 10.11.6
Re: Bloccare una cella se un altra cella non é vuota.
Buongiorno lucky, io lo vedo già risolto l'argomento con il visto, manca qualcosa?lucky63 ha scritto:Vedere questo link
Openoffice 4.1.5 con MacOs 10.11.6
Re: Bloccare una cella se un altra cella non é vuota.
Rivedi bene il link.
... punto 3 ...
... punto 3 ...
Re: Bloccare una cella se un altra cella non é vuota.
Scusa hai ragione, provvedo subito
Openoffice 4.1.5 con MacOs 10.11.6