Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Pulsante di opzione

84 views
Skip to first unread message

Solari

unread,
Jul 12, 2007, 7:00:01 AM7/12/07
to
Ciao,devo inserire in un foglio di excel dei pulsanti di opzione con scelta
"SI" o "NO" ma non so come fare ed inoltre ne devo inserire più di uno sullo
stesso foglio.E' possibile?Grazie

cucchiaino

unread,
Jul 12, 2007, 7:09:08 AM7/12/07
to
Solari scrive:

> Ciao,devo inserire in un foglio di excel dei pulsanti di opzione con scelta
> "SI" o "NO" ma non so come fare ed inoltre ne devo inserire più di uno sullo
> stesso foglio.E' possibile?Grazie

----------------

ciao Solari,

Visualizza > Barre degli strumenti > Moduli

Clicca su sull'iconcina con una "v" di spunta e poi
disegna sul foglio


--
()---cucchiaino

Norman Jones

unread,
Jul 12, 2007, 7:15:06 AM7/12/07
to
Ciao Solari,

'-------------


devo inserire in un foglio di excel dei pulsanti di opzione con scelta

"SI" o "NO" ma non so come fare ed inoltre ne devo inserire piů di uno sullo
stesso foglio.E' possibile?
'-------------

In alternativa, forse prova le CheckBox cosi':

In un modulo standard (vedi di sotto),
incollaL

'=============>>
Public Sub Tester()
Dim WB As Workbook
Dim SH As Worksheet
Dim Rng As Range
Dim rCell As Range


Set WB = Workbooks("Pippo.xls") '<<=== da CAMBIARE
Set SH = WB.Sheets("Foglio1") '<<=== da CAMBIARE
Set Rng = SH.Range("A1:A10") '<<=== da CAMBIARE

Application.ScreenUpdating = False
For Each rCell In Rng.Cells
With SH.CheckBoxes.Add(rCell.Left + 5, _
rCell.Top - 2, 5, 5)
.Caption = ""
.LinkedCell = rCell.Address(False, False)
End With
rCell.Font.Color = vbWhite
Next rCell
Application.ScreenUpdating = True
End Sub
'<<=============

Per utilizzare questa routine:

Alt-F11 per aprire l'Editor di VBA
Menu | Inserisci | Modulo
Incolla il suddetto codice
Alt-F11 per tornare in Excel
Alt-F8
Seleziona "Tester"
Esegui

---
Regards,
Norman
Microsoft Excel MVP


Solari

unread,
Jul 13, 2007, 5:58:05 AM7/13/07
to
Scusami ma ho dimenticato di indicarti la mia versione di office che è il 2007

Mauro Gamberini

unread,
Jul 13, 2007, 6:32:52 AM7/13/07
to
> Scusami ma ho dimenticato di indicarti la mia versione di office che è il
> 2007
>

Click sulla scheda Sviluppo.
Se non la vedi:

Procedura per visualizzare la scheda: Sviluppo

Click sul pulsante: Office
Pulsante: Opzioni di Excel(in basso a dx)
Mettere la spunta a: Mostra scheda Sviluppo sulla barra multifunzione

Nella scheda sviluppo fai click su:
Inserisci


--
---------------------------
Mauro Gamberini
http://www.riolab.org/


Solari

unread,
Jul 13, 2007, 11:18:16 AM7/13/07
to
Ok ora ho trovato il modo per inserirli.Ora però ho questo problema.Se ne
inserisco 2 e li chiamo "SI" e "NO" e da "formato controllo" lo collego alla
cella A1 tutto ok.Però ogni pulsante nuovo che inserisco è collegato alla
cella A1 e se ne cambio uno cambiano tutti.Spero di essermi spiegato

ivano

unread,
Jul 13, 2007, 11:59:16 AM7/13/07
to

"Solari" <Sol...@discussions.microsoft.com> ha scritto nel messaggio
news:EDEEE60E-3C76-4E6F...@microsoft.com...

> Ok ora ho trovato il modo per inserirli.Ora però ho questo problema.Se ne
> inserisco 2 e li chiamo "SI" e "NO" e da "formato controllo" lo collego
> alla
> cella A1 tutto ok.Però ogni pulsante nuovo che inserisco è collegato alla
> cella A1 e se ne cambio uno cambiano tutti.Spero di essermi spiegato
>
> "cucchiaino" wrote:
>

Ciao,
probabilmente hai inserito una casella di controllo, ed invece necessiti di
un pulsante di opzione (quell'iconcina che sembra un rotondino)
ivano


Mauro Gamberini

unread,
Jul 13, 2007, 12:04:42 PM7/13/07
to
>(quell'iconcina che sembra un rotondino)
>

Ce l'hai con me oggi? Io non sono rotondino!!! 8-)

Solari

unread,
Jul 13, 2007, 1:04:02 PM7/13/07
to
Io ho inserito quello dove c'è scritto "pulsante di opzione(controllo modulo)"

ivano

unread,
Jul 13, 2007, 1:38:35 PM7/13/07
to

"Solari" <Sol...@discussions.microsoft.com> ha scritto nel messaggio
news:D5167FDB-6791-4081...@microsoft.com...

> Io ho inserito quello dove c'è scritto "pulsante di opzione(controllo
> modulo)"
>

Beh, ma allora è normale che se ne cambi uno cambino tutti; ovvero coi
pulsanti di opzione ne rimane sempre e solo uno selezionato.
Quelli che inserisci dopo, devono essere collegati ad A1 anche loro?
Vorresti poter avere una selezione multipla, forse?
Prova a spiegare meglio.
ivano


Solari

unread,
Jul 13, 2007, 2:22:02 PM7/13/07
to
Scusa,hai ragione.Ho la necessità di collegarne 2 alla cella A1 ,2 alla cella
A2 e cosi via

ivano

unread,
Jul 14, 2007, 7:04:53 AM7/14/07
to

"Solari" <Sol...@discussions.microsoft.com> ha scritto nel messaggio
news:65C0043E-FBFA-4F16...@microsoft.com...

> Scusa,hai ragione.Ho la necessità di collegarne 2 alla cella A1 ,2 alla
> cella
> A2 e cosi via

Assegna ad ogni coppia di pulsanti il riferimento relativo:
I primi due li colleghi ad A1, i secondi ad A2...ecc.ecc.
ivano


Norman Jones

unread,
Jul 14, 2007, 7:14:48 AM7/14/07
to
Ciuao Solari,

'--------------------


,devo inserire in un foglio di excel dei pulsanti di opzione con scelta
"SI" o "NO" ma non so come fare ed inoltre ne devo inserire più di uno sullo
stesso foglio.E' possibile?

'--------------------

Per inserire una copia ("Sì" e "No") di
OptionButton (pulsante di opzione) - per
ogni cella in un intervallo, prova:

'=============>>
Public Sub Tester()
Dim WB As Workbook
Dim SH As Worksheet
Dim Rng As Range
Dim rCell As Range

Dim oleObj As OLEObject
Dim OptButton As MSForms.OptionButton
Dim arrCaption As Variant
Dim i As Long
Dim j As Long

Set WB = Workbooks("Pippo.xls") '<<=== da CAMBIARE
Set SH = WB.Sheets("Foglio1") '<<=== da CAMBIARE
Set Rng = SH.Range("A1:A10") '<<=== da CAMBIARE

arrCaption = VBA.Array("Sì", "No")

Application.ScreenUpdating = False
For i = 1 To Rng.Cells.Count
Set rCell = Rng.Cells(i).Offset(0, 1)
With rCell
.RowHeight = Application.Max(18, .RowHeight)
For j = 1 To 2
Set oleObj = SH.OLEObjects.Add _
(ClassType:="Forms.OptionButton.1", _
Link:=False, _
DisplayAsIcon:=False, _
Left:=.Left + (j - 1) * 48 + 5, _
Top:=.Top + 2, _
Width:=48, _
Height:=15)

With oleObj.Object
.GroupName = i
.Caption = arrCaption(j - 1)
.Value = False
End With
Next j
End With
Next i

Solari

unread,
Jul 14, 2007, 7:50:01 AM7/14/07
to
E' quello che sto cercando di fare ma se collego i primi due alla cella A1 e
poi vado sulla seconda coppia e la collego ad A2 automaticamente la prima mi
si collega ad A2

Solari

unread,
Jul 14, 2007, 7:52:03 AM7/14/07
to
Su questa istruzione
Dim OptButton As MSForms.OptionButton
mi dice "Errore di compliazione:Tipo definito dall'utente non definito"

Norman Jones

unread,
Jul 14, 2007, 8:58:05 AM7/14/07
to
Ciao Solari,

'------------------


Su questa istruzione
Dim OptButton As MSForms.OptionButton
mi dice "Errore di compliazione:Tipo definito dall'utente non definito"

'------------------

Alt-F11 per aprire l'edito di VBA
Meni | Strumenti | Riferimenti |
Trova e seleziona la libreria:
Microsoft Forms xx Object Library

Potrei anche mandarti il mio file di prova in
risposta ad una email:

norman_jones@NOSPAMbtconnectDOTcom

(Cancella "NOSPAM" e sostituisci "DOT" con un punto)

ivano

unread,
Jul 14, 2007, 10:24:21 AM7/14/07
to

"Solari" <Sol...@discussions.microsoft.com> ha scritto nel messaggio
news:BE8CCE40-CA70-4617...@microsoft.com...

> E' quello che sto cercando di fare ma se collego i primi due alla cella A1
> e
> poi vado sulla seconda coppia e la collego ad A2 automaticamente la prima
> mi
> si collega ad A2
>

Si, non avevo mai visto 'sta cosa: carina!

Guarda forse ho trovato una soluzione che sembra una stupidata, ma il
programmatore forse l'ha fatta apposta:
Ho "imprigionato" i due pulsanti d'opzioni di cella A1 in una casella di
gruppo (facendo attenzione a non far uscire dal bordo il pulsante) e quelli
di cella A2 in un altra casella di gruppo. Dopo aver risistemato i
riferimenti, ora, funziona correttamente.
ivano


Norman Jones

unread,
Jul 14, 2007, 12:11:46 PM7/14/07
to
Ciao Ivano, ciao Solari,

'------------------


Guarda forse ho trovato una soluzione che sembra una stupidata, ma il
programmatore forse l'ha fatta apposta:
Ho "imprigionato" i due pulsanti d'opzioni di cella A1 in una casella di
gruppo (facendo attenzione a non far uscire dal bordo il pulsante) e quelli
di cella A2 in un altra casella di gruppo. Dopo aver risistemato i
riferimenti, ora, funziona correttamente.

'------------------

Nel caso degli OptionButton dagli Strumenti
di controllo, si potrebbe anche utilizzare la
proprieta' GroupName con lo stesso risultato.
In questo proposito vedi anche il codice
suggerito da me,

ivano

unread,
Jul 14, 2007, 12:35:58 PM7/14/07
to

"Norman Jones" <norma...@whereforartthou.com> ha scritto nel messaggio
news:eEk03Hjx...@TK2MSFTNGP04.phx.gbl...

Ciao Norman,
grazie della precisazione, ma non averne a male, per me il vba è più
incomprensibile dell'aramaico.
:-)
In ogni caso penso che parecchi altri facciano ben tesoro delle tue prezioni
annotazioni.
ivano


Norman Jones

unread,
Jul 14, 2007, 12:49:11 PM7/14/07
to
Ciao Ivano,

> grazie della precisazione, ma non averne a male, per me il vba è più
> incomprensibile dell'aramaico

Mi riferivo al fatto che si puo' fare lo settaggio
della proprieta; GruopName manualmente, senza
VBA.

Cosi' in effetti, si ottiene un 'bordo del pulsante'
(Frame o GtoupBox) virtuale ed il comportamento
di ogni copia degli OptionButton e come indicato
da te e come voluto da Solari.

0 new messages