Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[excel]creare/eliminare checkBox e pulsanti (activeX)

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

[excel]creare/eliminare checkBox e pulsanti (activeX)

Postdi andrea_friz » 04/09/07 14:22

Ciao a tutti. Da poco per esigenze scolastice mi sto affacciando al vba con buoni risultati all'inizio e pessimialla fine :lol: La mia ignoranza non mi permettedisaperese le cose che devo faresonopossibili o meno ma provo a spiegarvele:
su un foglio definisco dei parametri e su un altro vado a creare una tabella in base ai parametriinseriti nel primo foglio.Nel dettaglio:

Foglio 1 Foglio2

gruppo1 |nome | cognome | gruppo1 | ..... | gruppoN
....
gruppoN andrea paperino checkBox1 ..... check box N

come vedete devo inserire dei gruppi nel foglio1, e poi nel foglio 2 inserire delle colonne con il nome del gruppo e sotto la colonna tante checkbox quante sono le rige.Devo poi poter eliminare righe o gruppi. Tutto questo con pulsanti . Ero riuscito ad inserire tutto ma poi l'eliminazione delle intere righe(checkbox incluse)mi ha creato non pochi problemi.
Non chiedo l'impossibile ma se qualcuno sa darmi qualche dritta ne sarei grato.
PS mi scuso se non sono chiaro al max chiedetemi grazie
ciao
andrea_friz
Newbie
 
Post: 9
Iscritto il: 04/09/07 13:55

Sponsor
 

Postdi andrea_friz » 04/09/07 16:55

Per chiarire meglio dovrei riuscire ad inserire dei pulsanti automaticamente sopra ogni colonna del gruppo inserito . Questi pulsanti devono ,se premuti, cancellarmi tutta la colonna ,check box comprese.
andrea_friz
Newbie
 
Post: 9
Iscritto il: 04/09/07 13:55

Postdi Anthony47 » 05/09/07 00:17

Ciao adrea_friz e benvenuto nel forum.
Sei sicuro di aver bisogno dei check boxes, visto che la loro gestione non e’ poi cosi’ semplice? Ad esempio guarda le proposte fatte in questa discussione:
http://www.pc-facile.com/forum/viewtopic.php?t=64142

Se invece devi proprio lavorare con i checkboxes, allora sfrutteremo l’ istruzione Pict.TopLeftCell.Address per verificare se quel controllo giace in una riga che si sta’ cancellando; per questo pero’ vorrei vedere il codice che usi per cancellare in modo da personalizzarlo quanto serve.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi andrea_friz » 05/09/07 08:28

ciaooo!!
in effetti quella discussione l'avevo vista e (siccome mi servono le checkboxes)avevo modificato il codice da te proposto nella seconda soluzione per crearmi le mie checkboxes secondo determinate condizioni che a me servono..a questo punto la mia esigenza è (eliminare una intera riga o un intera colonna)attraverso dei pulsanti che si devono andare a posizionare sulle righe(o colonne da posizionare).
Per cancellare per ora non sono riuscito a fare niente di codice in quanto non trovo il comando adatto che mi dica in che cella è il pulsante e di conseguenza cancelli la riga o colonna in cui si trova) se vuoi invece il codice che uso per creare allora lo metto ma avendo preso spunto da te credo ti sia poco utile visto che ho aggiunto solo cicli :) se ti serve comunque lo metto tranquillamente

ti ringrazio sinceramente e mi complimento per la tua conoscenza della materia excel-vba ;)
andrea_friz
Newbie
 
Post: 9
Iscritto il: 04/09/07 13:55

Postdi Anthony47 » 05/09/07 22:52

Devi eliminare o cancellare il contenuto?
Ma sono righe e colonne fisse, per cui vuoi metterci sopra un pulsante, o come e'? E invece un unico pulsante che cancella (o elimina) l' intera colonna o riga che sia selezionata, non potrebbe andare bene?

Infine una curiosita': sui checkbox che elaborazioni ci fai? Perche' io continuo a dire che sono solo "effetti ottici".

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi andrea_friz » 06/09/07 08:33

In poche parole mi creo con dei cicli delle colonne e delle righe di checkbox e a fianco ogni riga e sopra ogni colonna metto un pulsante.La mia necessità è quella di cancellare tutto il contenuto e tutti i checkbox della riga o colonna di cui ho premuto il pulsante.
Per ogni checkbox devo cliccarci sopra e se questo è cliccato mi scrive vero altrimenti falso ( soluzione proposta da te in alternativa alle "finte celle")


Grazie mille ciaoo
andrea_friz
Newbie
 
Post: 9
Iscritto il: 04/09/07 13:55

Postdi Anthony47 » 08/09/07 00:01

Non capisco quanti pulsanti vorresti avere sul foglio, mentre continuo a ritenere (visto le funzionalita’ da realizzare) che i check box siano solo effetti ottici; ma se piacciono…
Ti propongo una soluzione con 2 pulsanti: uno che si espande in orizzontale in testa alle colonne e uno che si espande in verticale a sx delle righe interessate.
Poi copi il seguente codice:
Codice: Seleziona tutto
Sub AzzV()
Area = "B4:G21"      '<<<<<< Modificare come necessario
'
On Error GoTo Warn
Set subA = Application.Intersect(Range(Cells(1, Selection.Column), Cells(65536, Selection.Column)), Range(Area))
subA.Select
Rispo = MsgBox("Vuoi cancellare l' area?", vbYesNo)
If Rispo <> 6 Then Exit Sub
Selection.ClearContents
'
'azzera check box
CurCol = Selection.Range("A1").Column
For Each Forma In ActiveSheet.Shapes
  NomeImm = Forma.Name
  If Left(NomeImm, 9) <> "Check Box" Then GoTo Skip
'  ActiveSheet.Shapes(NomeImm).Select
  If Forma.TopLeftCell.Column = CurCol Then Forma.Delete
Skip:
Next Forma
Exit Sub
'
Warn:
MsgBox ("Selezionare una colonna valida!")
End Sub



Codice: Seleziona tutto
Sub AzzH()
Area = "B4:G21"      '<<<<<< Modificare come necessario
'
On Error GoTo Warn
Set subA = Application.Intersect(Range(Cells(Selection.Row, 1), Cells(Selection.Row, 255)), Range(Area))
subA.Select
Rispo = MsgBox("Vuoi cancellare l' area?", vbYesNo)
If Rispo <> 6 Then Exit Sub
Selection.ClearContents
'
'azzera check box
CurRow = Selection.Range("A1").Row
For Each Forma In ActiveSheet.Shapes
  NomeImm = Forma.Name
  If Left(NomeImm, 9) <> "Check Box" Then GoTo Skip
'  ActiveSheet.Shapes(NomeImm).Select
  If Forma.TopLeftCell.Row = CurRow Then Forma.Delete
Skip:
Next Forma
Exit Sub
'
Warn:
MsgBox ("Selezionare una riga valida!")
End Sub


Infine associ la macro AzzH al pulsante verticale e AzzV al pulsante orizzontale.

Uso:
-personalizzare sulla macro la definizione dell’ area da gestire
-selezionare una cella all’ interno dell’ area
-premendo il pulsante in testa verra’ evidenziata la colonna prescelta e viene chiesto di confermare la cancellazione
-analogamente se si preme il pulsante a sx, salvo che sara’ evidenziata la riga prescelta.
-vengono cancellati solo i valori, non i formati
-se si seleziona una cella errata viene visualizzato un messaggio.

Spero che trovi la soluzione utile. Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi andrea_friz » 08/09/07 17:06

In poche parole metto cosi tanti pulsanti in modo che clicco sul pulsante e mi si cancella la colonna o la riga a cui corrispondono...con la tua soluzione mi sempra che cii sia 1 pulsante per la colonna e uno per la riga e questo potrebbe essere scomodo o di difficile comprensione per un utente inesperto...adesso cmq adatto il tuo sempre preziosissimo codice al mio foglio e poi ti dico.
Ti ringrazio moltissimo veramente sei un mago :)
NB concordo con te che i check box siano solo belli ma le esigenze me li impongono..io avrei fatto un menu a tendina si/no e avrei finito ;) sti professori non capiscono quanto una cosa bella complichi tutto :)
ciao ciao grazie ancora
andrea_friz
Newbie
 
Post: 9
Iscritto il: 04/09/07 13:55

Postdi andrea_friz » 08/09/07 18:08

Ho appena sistemato e ti ringrazio per l'aiuto.Per proseguire con la mia super sfilza di pulsanti volevo chiederti se c'è un modo per fare in modo che la riga selezionata sia quella del pulsante su cui clicco.Mi spiego meglio:
con la tua soluzione io seleziono una cella ,clicco sul bottone e mi si cancella correttamente...volevo sapere se la cella selezionata può essere quella del bottone cliccato.Questo risolverebbe definitivamente il problema credo...

grazie ancora ciaoo
andrea_friz
Newbie
 
Post: 9
Iscritto il: 04/09/07 13:55

Postdi Anthony47 » 09/09/07 23:35

Se proprio vuoi lavorare con decine di bottoncini posizionati con precisione, puoi rilevare la posizione del pulsante premuto con le istruzioni
Codice: Seleziona tutto
CBA = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Column
oppure
Codice: Seleziona tutto
CBA = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row


CBA conterra’ il numero di colonna o di riga, da usare al posto di Selection.Column e Selection.Row nell’ istruzione Set SubA delle macro che ti ho gia’ dato.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi andrea_friz » 11/09/07 08:30

GRAZIEEEEEE!!!!!
adesso sono riuscito nel mio intento.Volevo però chiederti come si possono contare ibottoni inseriri:So che ActiveSheet.Buttons.Count mi conta tutti i bottoni ma se volessi contare solo quelli con un determinato nome???

Ti ringrazio veraveraveramente!!!sei stato il mio salvatore sia per le tue risposte a me sia per le risposte a tutti !!! :)
ciaoooo
andrea_friz
Newbie
 
Post: 9
Iscritto il: 04/09/07 13:55

Postdi andrea_friz » 11/09/07 11:16

Ciaooo

Cercando di migliorare il codice del foglio di lavoro volevo sapere se è possibile eliminare il bottone su cui clicco una volta che ha eseguito il suo "lavoro".

Ti ringrazio ancora ciao ciao
andrea_friz
Newbie
 
Post: 9
Iscritto il: 04/09/07 13:55

Postdi Anthony47 » 11/09/07 13:32

Pulsanti usa e getta, dunque...

Metti in fondo alla macro questa istruzione:
Codice: Seleziona tutto
ActiveSheet.Shapes(ActiveSheet.Shapes(Application.Caller).Name).Delete


Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi andrea_friz » 13/09/07 08:18

GRazie mille di tutto!!!!!scusa se ti rspondo con ritardo ma mi sino accorto di alcuni bug nel mio codice:) fortunatamente risolti !!!

Ti ringrazio di cuore per il tuo preziosissimo aiuto!!
CIAOOOOO
andrea_friz
Newbie
 
Post: 9
Iscritto il: 04/09/07 13:55


Torna a Applicazioni Office Windows


Topic correlati a "[excel]creare/eliminare checkBox e pulsanti (activeX)":


Chi c’è in linea

Visitano il forum: Nessuno e 18 ospiti

cron