Condividi:        

semplificare i controlli di una casella di controllo

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

semplificare i controlli di una casella di controllo

Postdi matzap » 22/07/13 16:13

Ciao.
ho una casella di controllo che mi controlla la cella AB29.
poi nella cella M27 ho la formula:
=SE(AB29=VERO;AU20;" ")

perciò spuntando la casella di contollo mi si visualizza nella casella M27 la scritta memorizzata nella casella AU20
in un'altra macro che mi stampa un modulo la casella M27 viene resettata ponendo:
AB29=false.

c'è un modo per evitare di passare per la casella AB29?
Chiarissimo no? :D
Grazie
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Sponsor
 

Re: semplificare i controlli di una casella di controllo

Postdi Anthony47 » 23/07/13 00:52

Se hai usato il Checkbox disponibile tra gli "Strumenti di controllo" potrai usare direttamente
Codice: Seleziona tutto
Sheets("Foglio1").CheckBox1 = False    '<< Personalizza

Se parli del checkbox in una userform, analogamente
Codice: Seleziona tutto
UserForm1.CheckBox1 = True    '<< Personalizza


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: semplificare i controlli di una casella di controllo

Postdi matzap » 23/07/13 07:39

Buongiorno Anthony,
ho provato cosi:
Sheets("mes-Bernotti-Gautschi ").CheckBox236_Click = False
e anche così:
Sheets("mes-Bernotti-Gautschi ").CheckBox236 = False
ma non funziona, mi da errore di run-time '438'
in cosa sbaglio?
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Re: semplificare i controlli di una casella di controllo

Postdi Anthony47 » 23/07/13 14:24

Hummm...
Il checkbox l' hai preso dagli strumenti Modulo, Strumenti di controllo, o Userform?
Sei sicuro che si chiami CheckBox236 e che sia sul foglio "mes-Bernotti-Gautschi "
In quale modulo hai inserito il codice (si legge nella riga colorata in testa alla finestra del vba)?
Quali altre istruzioni sono presenti nella macro?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: semplificare i controlli di una casella di controllo

Postdi matzap » 23/07/13 15:49

tasto destro, assegna macro, mi dice casella di controllo 236 ( c'è un altro modo per vedere il nome?)
dovrebbe essere un controllo modulo,
il modulo dovrebbe essere modulo8, generale, non so bene di quale riga parli e scusa se dico cavolate.
il codice è un pò lungo però eccolo ( le righe in questione sono in grassetto e dovrei sostituire le prime due con la terza.


nuovo rapportino Macro
' Macro registrata il 28/01/2011 da a963546
'
' Scelta rapida da tastiera: CTRL+p
'
ActiveSheet.Unprotect
Range("A10:K19").Select
Selection.ClearContents
Range("S21:X21").Select
Selection.ClearContents
Range("T20") = True
Range("A10").Select
ActiveSheet.PasteSpecial Format:="Testo", Link:=False, DisplayAsIcon:=False
Range("G10:G19").Select
Selection.Copy
Range("Z10:Z19").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("Z10:Z19").Select
Cells(10, 26).Select
For x = 10 To 19
If Cells(x, 26) = "" Then Exit For
If Len(Cells(x, 26)) = 17 Then ParteDaEstrarre = 3
If Len(Cells(x, 26)) = 18 Then ParteDaEstrarre = 4
Cells(x, 26) = Mid(Cells(x, 26), 12, ParteDaEstrarre)
If Len(Cells(x, 26)) < 17 Then Cells(x, 26) = Cells(x, 26)
Next x
Range("G10:G19").Select
Selection.TextToColumns Destination:=Range("G10"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(10, 9)), TrailingMinusNumbers:=True
' per cancellare i messaggi
'For x = 10 To 17
' Range("AA" & x).Select
' Selection = False
'Next x
Range("M28").Select
Selection.ClearContents
Range("AB27").Select
Selection = False
Range("AB28").Select
Selection = False
Range("AB29").Select
Selection = False
'Sheet("mes-Bernotti-Gautschi ").CheckBox236 = False
ActiveSheet.OptionButton6.Value = True
Range("W4").Select
Selection = True
' per verificare uso macro
'If Application.WorksheetFunction.CountIf(Sheets("verifica").Range("A1:A1000"), "nuovo_rapportino") = 0 Then
'Sheets("verifica").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) = "nuovo_rapportino"
'End If
ActiveSheet.Protect, DrawingObjects:=True, contents:=True, Scenarios:= _
True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True
Range("W11:W19").Select
Selection.ClearContents
Range("W10").Select
ActiveCell.FormulaR1C1 = "1"
Range("AB27").Select
Selection.ClearContents
Range("J10").Select
Range("A10").Select
'COMMENTO: per rendere invisibile una casella che esiste e cancellarne il contenuto
If ActiveSheet.Shapes("messaggio generico").Visible = True Then
ActiveSheet.Shapes.Range(Array("messaggio generico")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = ""
ActiveSheet.Shapes("messaggio generico").Visible = False
End If
End Sub
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Re: semplificare i controlli di una casella di controllo

Postdi Anthony47 » 24/07/13 00:37

Ma io avevo detto "se hai usato il Checkbox disponibile tra gli Strumenti di controllo" puoi fare cosi'; se "parli del checkbox in una userform" potrai fare cosa'.
Tu invece usi il checkbox dei Moduli, che e' un oggetto non programmabile.
Quindi o passi al Checkbox degli Strumenti di controllo, che e' un oggetto piu' complesso di quello che usi oggi, oppure resetti il checkbox tramite la linked cell, che e' come fai oggi (puoi semplificare le due righe in Range("AB29").ClearContents)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: semplificare i controlli di una casella di controllo

Postdi matzap » 24/07/13 08:59

Scusami ma forse non mi sono spiegato bene e isicuramente non ho ben capito cosa mi dici.... :(

il codice che ti ho stampato viene attivato da un tasto presente sul foglio (non in una userform).
sullo stesso foglio c'è una casella di controllo "chekbox236" che ho creato tramite il menu a tendina " sviluppo/inserisci/controlli modulo"
questo casella i controlla la cella AB29 (potrei anche assegnargli un codice)
e nella casella M27 ho la formula:
=SE(AB29=VERO;AU20;" ")

Come posso passare al checkbox degli stumenti di controllo?
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Re: semplificare i controlli di una casella di controllo

Postdi Anthony47 » 24/07/13 13:00

Intanto se scrivi quale versione di Office usi possiamo adattare la terminologia; per come fare vedi qui: viewtopic.php?f=26&t=97449.
Sto' cercando di dire che hai usato il checkbox preso dalla categoria "Moduli", che e' un oggetto povero e non programmabile. Se invece usi il checkbox prelevandolo dalla categoria "Strumenti di controllo" (terminologia per XL<=2003) o "Controlli ActiveX" (terminologia XL>=2007) avrai la possibilita' di programmarlo direttamente.
Prova con: Sviluppo /Controlli, Inserisci; seleziona il checkbox prelevandolo tra i Controlli ActiveX e inseriscilo sul foglio. Puoi leggerne il nome direttamente nella "Casella nome" (quell' area che si trova appena sopra l' intestazione della colonna A) oppure visualizzandone le proprieta' (Sviluppo /Controlli, Proprieta'); sempre nelle Proprieta' imposti quale e' la cella collegata (proprieta' linked cell).

Piu' chiaro?
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: semplificare i controlli di una casella di controllo

Postdi matzap » 24/07/13 22:12

Io uso Office 2010 e l'ho inserito nella firma.

Comunque mi sei stato molto di aiuto.
in effetti il mio progrmma è nato come esercitazione per imparare excel e oviamente ho fatto un po' di confusione tra controlli activex e moduli di cui non avevo ben compreso la differenza. Sostituendo tutti i moduli con i controlli activex tutto funziona!

Grazie!
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27


Torna a Applicazioni Office Windows


Topic correlati a "semplificare i controlli di una casella di controllo":


Chi c’è in linea

Visitano il forum: Nessuno e 38 ospiti