Pagina 1 di 1

[Risolto] Casella di spunta

Inviato: sabato 1 febbraio 2014, 10:11
da tonimu
Salve, vorrei creare in un foglio elettronico(.xls) delle caselle (sono 180 in un foglio e sono 12 fogli) di spunta; con la casella di spunta intendo una cella nella quale, cliccando, appare una crocetta o simile e poi vorrei che verticalmente riesca a fare la somma delle spunte.
Premetto che per la realizzazione del foglio, inserimento formule me la cavo abbastanza bene ma per quanto riguarda macro, vba, e simili no!
Potete darmi un aiuto ? Grazie :crazy:

Re: Casella di spunta

Inviato: sabato 1 febbraio 2014, 16:38
da unlucky83
Solo per chiarire
.xls è Excel di Office. Qui siamo sul forum di openoffice, quindi parliamo di Calc e di .ods
Inoltre vba è usato da Office, Openoffice usa Starbasic per le macro

Re: Casella di spunta

Inviato: sabato 1 febbraio 2014, 17:20
da tonimu
SI è Openoffice tutto con ubuntu, ho usato terminologia sbagliata

Re: Casella di spunta

Inviato: sabato 1 febbraio 2014, 18:39
da patel
allega un file di esempio con le caselle già inserite e con le spiegazioni di cosa vuoi ottenere

Re: Casella di spunta

Inviato: sabato 1 febbraio 2014, 19:05
da tonimu
prima
prima
Schermata-1mod.png (10.41 KiB) Visto 25418 volte
poi con un clic su casella
poi con un clic su casella
Schermata-2mod.png (10.65 KiB) Visto 25418 volte

Re: Casella di spunta

Inviato: sabato 1 febbraio 2014, 19:30
da charlie
Non vale tonimu, gli aiuti si ricevono allegando i file, non le immagini :!:

Re: Casella di spunta

Inviato: sabato 1 febbraio 2014, 19:54
da tonimu
che ti allego un foglio con scritto
gennaio 2014
camera n. 2
camera n. 3 e quattro caselle bordate ?

Re: Casella di spunta

Inviato: sabato 1 febbraio 2014, 22:41
da charlie
Ciao, chi le deve scrivere 180 caselle di spunta per 12 fogli? Le macro?

Re: Casella di spunta

Inviato: sabato 1 febbraio 2014, 23:10
da tonimu
Ciao, non ho capito, c'è un sistema per far comparire la v oppure una x in una cella quando ci clicco con il mouse all'interno ?

Re: Casella di spunta

Inviato: domenica 2 febbraio 2014, 2:23
da unlucky83
Si potrebbe fare in due modi
Modo1:inserire un pulsante per ogni casella con spunta (visto che sono tante, magari inserirli con una macro). Al click del pulsante si cambia lo stato della casella di spunta (che in realtà ė una normale cella che è o vuota o con una "V".
Vantaggio:con la funzione Conta.se si possono contare le celle con la V senza uso di macro
Svantaggio:i pulsanti sono degli elementi che con un layout del foglio non modificabile, fanno sorgere delle problematiche del tipo "dove lo metto senza rischiare di coprire qualche cella il cui il contenuto invece deve essere visibile?"
Nota:2 macro principali possono svolgere il tutto

Modo2:inserisco campi di controllo "caselle di spunta" nelle celle che con il modo1 presentano o V o sono vuote. Con una macro magari effettuo il loro inserimento nel foglio
Vantaggio:Zero macro associate alle caselle. Zero problemi di layout e questo modo conferisce un aspetto gradevole e più professionale
Svantaggio:Conta.se non si può usare. Serve una macro che conti gli stati selezionati dei campi di controllo
Nota:2 macro principali possono svolgere il tutto

C'è poi una via di mezzo:
Modo-ibrido:inserisco campi di controllo "caselle di spunta" nelle celle che con il modo1 presentano o V o sono vuote. Con una macro magari effettuo il loro inserimento nel foglio. Con una macro associata al cambiamento di stato scrivo "dietro" al campo, cioè nella cella, 1 (per spunta Si) o 0 (per Spunta No)
Vantaggio: Zero problemi di layout e questo modo conferisce un aspetto gradevole e più professionale. Gli 1 e 0 sono coperti e quindi nascosti dai campi di controllo.
Conta.se si può usare.
Svantaggio:Limitato alla scrittura delle macro che è intrinseco del problema.
Nota:2 macro principali possono svolgere il tutto

Re: Casella di spunta

Inviato: domenica 2 febbraio 2014, 8:22
da charlie
Così? Bisogna però inserire tutti i campi di controllo "caselle di spunta".

Re: Casella di spunta

Inviato: domenica 2 febbraio 2014, 10:31
da tonimu
grazie per l'esempio se mi avessi dato le istruzioni per arrivarci !

Re: Casella di spunta

Inviato: domenica 2 febbraio 2014, 10:54
da Gaetanopr
charlie ha scritto:Così? Bisogna però inserire tutti i campi di controllo "caselle di spunta".
Le caselle di spunta si possono inserire tutti in un sol colpo tramite una macro, un' altra soluzione potrebbe essere quella che allego, ho inserito una banale macro che inserisce il carattere "R" oppure "c" che formattando con stile carattere "Wingdings 2" e "Webdings" visualizza una casella spuntata o meno.
La macro funziona facendo doppio click su qualsiasi cella della colonna A e il conteggio in B1 è impostato fino a riga 180

Re: Casella di spunta

Inviato: domenica 2 febbraio 2014, 11:06
da unlucky83
L'esempio di Charlie è stato molto utile, perchè non sapevo che una casella di controllo si poteva collegare direttamente ad una cella senza una macro. good!!!

tonimu devi visualizzare la barra degli strumenti del controllo formulario per inserire le caselle di controllo:
Visualizza>Barre degli strumenti>Controlli per Formulario

A questo punto devi cliccare sull'icona "modo bozza si/no". Quando è selezionata puoi modificare le proprietà del campo di controllo, quando è su "no" il campo di controllo esegue solo azioni. Quindi attiva la modalità bozza, clicca su un campo di controllo (vedrai che viene selezionato il contorno ma non cambia il suo stato), tasto destro per fare comparire la finestra delle opzioni, clicca su Campo di controllo.

Ti si apre una finestra con tre schede:Generale,Dati,Eventi
Posizionati su dati, noterai che Charlie ha collegato i campi alle rispettive celle della colonna A.
Quindi se sei paziente e ti inserisci manualmente tutti i campi di controllo che ti servono, te la puoi cavare con ZERO macro
tonimu ha scritto:grazie per l'esempio se mi avessi dato le istruzioni per arrivarci !
Che cosa ti aspettavi? Prima ti ha allegato un file per vedere se questa cosa faceva al caso tuo, successivamente te l'avrebbe spiegata se l'avessi ritenuta valida

Re: Casella di spunta

Inviato: domenica 2 febbraio 2014, 11:14
da Gaetanopr
unlucky83 ha scritto:L'esempio di Charlie è stato molto utile, perchè non sapevo che una casella di controllo si poteva collegare direttamente ad una cella senza una macro. good!!!
Ciao unlucky83, io invece non sono riuscito a trovare la proprietà che collega da macro una casella di controllo ad una cella, tu sai qual'è?
volevo creare le 180 checkbox e collegarle ognuna ad una cella in maniera automatica

PS:Credo di aver capito come fare
Questa macro inserisce 100 checkbox nella colonna A del primo foglio.

Codice: Seleziona tutto

 Sub ControlloCheckBox
        dim arg(0) as new com.sun.star.beans.NamedValue
        oSheet = ThisComponent.Sheets.getByIndex(0)
        oDrawPage = oSheet.DrawPage
    For i = 0 To 100
        oControlShape = ThisComponent.createInstance("com.sun.star.drawing.ControlShape")
        oCell = oSheet.getCellByPosition(0,i)
        aPos = oCell.Position
        aPoint = CreateUnoStruct("com.sun.star.awt.Point")
        aSize = CreateUnoStruct("com.sun.star.awt.Size")
        aPoint.X = aPos.X
        aPoint.Y = aPos.Y
        aSize.Width = oCell.Size.Width
        aSize.Height = oCell.Size.Height
        oControlShape.setPosition(aPoint)
        oControlShape.setSize(aSize)
        CheckBox = CreateUnoService("com.sun.star.form.component.CheckBox")
        oControlShape.setControl(CheckBox)
        oDrawPage.add(oControlShape)
       
        nIndex = oDrawPage.getCount()-1
        oShape = oDrawPage.getByIndex(nIndex)
        oShape.Anchor=oCell
        arg(0).Name = "BoundCell"
        arg(0).Value = oCell.CellAddress
        oValueBinding = ThisComponent.createInstanceWithArguments("com.sun.star.table.CellValueBinding", arg)
        oShape.Control.ValueBinding = oValueBinding
     next i
end sub

Re: Casella di spunta

Inviato: domenica 2 febbraio 2014, 14:58
da charlie
Ok, Gaetano la tua macro va a meraviglia.
Aspettiamo ora che tonimu ci dica se il suo è un problema di macro per risparmiare fatica o un problema di calcolo caselle con la spunta.

Re: Casella di spunta

Inviato: domenica 2 febbraio 2014, 20:56
da tonimu
io ho fatto cosi: posizionato sulla cella interessata, sono andato su Dati-Consolida dati-consenti-elenco-Origine 0;1; ok
selezionando la cella poi con il menu a tendina che mi compare scelgo 0 oppure 1, questo su varie celle in verticale poi sotto ho messo in un'altra cella =somma(......) e risolve il caso.
Che ne dite ? al posto della spunta e quindi =conta(....) ho fatto così

Re: Casella di spunta

Inviato: domenica 2 febbraio 2014, 21:14
da charlie
Per cortesia usa il formato Open Office e non quello Excel per evitare problemi. :!: :!: :!:

Re: Casella di spunta

Inviato: domenica 2 febbraio 2014, 21:16
da unlucky83
La funzione Conta va benissimo.
:D che dire.. a me va bene!
Così rinunci alla possibilità di cambiare lo stato con un click, così te ne servono due...poco male. Esteticamente è completamente diverso, quindi se sta bene a te va bene :super:

Re: Casella di spunta

Inviato: domenica 2 febbraio 2014, 22:50
da tonimu
ok grazie a tutti, mi scuso ma il file esempio.xlsx l'ho compilato su di un altro pc con Windows e office e non con ubuntu e openoffice Charlie hai perfettamente ragione. è il mio primo approccio al forum