Risultati da 1 a 18 di 18

Discussione: Inserimento checkbox e realtivo collegamento cella



  1. #1

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Inserimento checkbox e realtivo collegamento cella

    Ciao a tutti,
    dovrei inserire in un foglio circa 500 checkbox nella colonna A, per cui mi trovo davanti a due problemi:

    1) dato l'elevato numero di checkbox da inserire volevo trovare un codice vba che mi permetta l'inserimento automatico delle stesse in ciascuna cella della colonna A;

    2) dopo averle inserite, volevo un altro codice che mi permetta di popolare ciascun "collegamento cella" con la stessa cella in cui sono inserite le caselle di controllo (come ho fatto manualmente per le prime due).

    Mi sembrava relativamente facile ma mi sono perso.

    Allego file
    File Allegati File Allegati
    Ultima modifica fatta da:ges; 16/06/16 alle 22:29
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  2. #2

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6797
    Versione Office
    2013
    Likes ricevuti
    719
    Likes dati
    164

    Re: Inserimento checkbox e realtivo collegamento cella

    Ciao Ges

    Ho un file con delle macro che inseriscono molte checkbox.

    Tengo a precisare che le macro non sono mie ma di Patel e di Scossa.

    Domani te lo allego cercando ovviamente di adattarlo alla tua richiesta; ma anche se non dovessi riuscirvi penso che sarà comunque un ottimo spunto per te.

    Alfredo

  3. #3

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Inserimento checkbox e realtivo collegamento cella

    In attesa della soluzione di @alfrimpa (che saluto) che sarà sicuramente più interessante, ecco la mia:

    Codice: 
    Sub Compila()
    Dim myCheckBox As Object
    Dim i As Integer
    
    
    Application.ScreenUpdating = False
    For i = 1 To 500
        Set myCheckBox = Foglio1.CheckBoxes.Add(6, i * 15.75 - 15.75, 85, 10)
        myCheckBox.Text = ""
        myCheckBox.LinkedCell = "a" & i
    Next
    Application.ScreenUpdating = True
    
    
    End Sub

  4. I seguenti 3 utenti hanno dato un "Like" a Rubik72 per questo post:


  5. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: Inserimento checkbox e realtivo collegamento cella

    Ciao Alfredo,
    grazie per l'interessamento, sono sicuro che le macro di cui parli potranno essermi utili.

    Ciao Rubik,
    grazie per il codice, risponde perfettamente alla mia richiesta, l'unica difficoltà è fare in modo che ogni casella di controllo risulti centrata in ogni riga.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  6. #5

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Inserimento checkbox e realtivo collegamento cella

    Citazione Originariamente Scritto da ges Visualizza Messaggio
    Ciao Alfredo,
    grazie per l'interessamento, sono sicuro che le macro di cui parli potranno essermi utili.

    Ciao Rubik,
    grazie per il codice, risponde perfettamente alla mia richiesta, l'unica difficoltà è fare in modo che ogni casella di controllo risulti centrata in ogni riga.
    Bisogna "giocare" con i parametri.
    Il primo indica la distanza da sx (left=6);
    Il secondo indica la distanza da sopra (top=i * 15,75)
    il terzo indica la grandezza (width=85)
    il quarto indica l'altezza (height=10)

  7. #6

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: Inserimento checkbox e realtivo collegamento cella

    Grazie Rubik .... allora non mi resta che "giocare" ...
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  8. #7
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3209
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155

    Re: Inserimento checkbox e realtivo collegamento cella

    Buon giorno ragazzi
    Complimenti a Rubik per la macro ma, invece di mettervi a "giocare" provate questa mia aggiunta.
    Come potete vedere la macro prima assegna l'altezza delle righe e poi dà lo stesso valore ai parametri della checkbox.
    Codice: 
    Sub altezza()
    Dim myCheckBox As Object
    Dim i As Integer
        Application.ScreenUpdating = False
        Rows("1:10").RowHeight = 15
        For i = 1 To 10
            Set myCheckBox = Foglio1.CheckBoxes.Add(6, i * 15 - 15, 85, 10)
            myCheckBox.Text = ""
            myCheckBox.LinkedCell = "A" & i
        Next
        Application.ScreenUpdating = True
    End Sub
    L'ho ridotto a 10 righe perchè mi seccava cancellare 500 checkboxes nelle prove.
    Ciao,
    Mario

  9. I seguenti utenti hanno dato un "Like"

    ges

  10. #8

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6797
    Versione Office
    2013
    Likes ricevuti
    719
    Likes dati
    164

    Re: Inserimento checkbox e realtivo collegamento cella

    Ciao a tutti

    Visto che il quesito è stato brillantemente risolto da Rubik e Mario (che saluto) eviterei di postare la macro che ho io anche perché è scritta in base alla struttura del file nel quale è inserita.

    Ma se volete posso tranquillamente allegare il file.

    Alfredo

  11. #9

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: Inserimento checkbox e realtivo collegamento cella

    Mario! Ci hai subito tolto il bello del gioco!!!!
    Scherzi a parte, restando fermo che la sub di Rubik è geniale, la tua è un'ottima soluzione, pensandoci meglio non era così difficile ma a volte il ragionamento va verso cose complicate e le cose semplici sfuggono.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  12. #10
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Inserimento checkbox e realtivo collegamento cella

    scusate l'intrusione...
    ecco la mia proposta ;)

    Codice: 
    Sub check()
    Dim myCheckBox As Object
    Dim i As Integer
        Application.ScreenUpdating = False
        For i = 1 To 10
        With Range("A" & i)
            Set myCheckBox = Foglio1.CheckBoxes.Add(.Left, .Top, .Width, .Height)
            myCheckBox.Text = ""
            myCheckBox.LinkedCell = "A" & i
            myCheckBox.Name = "controllo A" & i
        End With
        Next
        Application.ScreenUpdating = True
    End Sub
    un saluto a tutti
    GG

    ps se seleziono una check e poi faccio ctrl a si selezionano tutte ;)

  13. I seguenti utenti hanno dato un "Like"

    ges

  14. #11

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: Inserimento checkbox e realtivo collegamento cella

    Ciao, ggratis,
    ottima proposta pure la tua!
    Grazie per averla condivisa.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  15. #12

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Inserimento checkbox e realtivo collegamento cella

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Ciao a tutti

    Visto che il quesito è stato brillantemente risolto da Rubik e Mario (che saluto) eviterei di postare la macro che ho io anche perché è scritta in base alla struttura del file nel quale è inserita.

    Ma se volete posso tranquillamente allegare il file.

    Alfredo
    Stai scherzando? L'attendo con ansia!

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  16. #13

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6797
    Versione Office
    2013
    Likes ricevuti
    719
    Likes dati
    164

    Re: Inserimento checkbox e realtivo collegamento cella

    Enzo eccoti servito.

    Però non farmi domande

    Alfredo
    File Allegati File Allegati

  17. #14
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17

    Re: Inserimento checkbox e realtivo collegamento cella

    volevo renderla generica, per poterla usara alla necessita
    ed ho messo input
    Codice: 
    Sub Inserisci_CheckBoxes()
        Dim nr As Integer, dar As Integer, col As String
        Dim myCheckBox As Object
        Dim i As Integer
        nr = InputBox("Quante righe?")
        If nr < 1 Then Exit Sub
        dar = InputBox("Da che riga?")
        If dar < 1 Then Exit Sub
        col = InputBox("Colonna?")
            
        Application.ScreenUpdating = False
        For i = dar To (dar + nr - 1)
            With Range(col & i)
                Set myCheckBox = ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height)
                myCheckBox.Text = ""
                myCheckBox.LinkedCell = col & i
                myCheckBox.Name = "ChkBox_" & col & i
            End With
        Next i
        Application.ScreenUpdating = True
    End Sub
    ma pongo un ulteriore problema
    e per cancellare i checkboxes creati?????
    magari visualizzando quanti esistenti per poi cancellare i voluti

    ho provato con questo, e funziona
    ma non è molto elegante
    Codice: 
    Sub Cancella_CheckBoxes()
        Dim nr As Integer, dar As Integer, col As String
        Dim i As Integer
        nr = InputBox("Quante righe?")
        If nr < 1 Then Exit Sub
        dar = InputBox("Da che riga?")
        If dar < 1 Then Exit Sub
        col = InputBox("Colonna?")
        
        Application.ScreenUpdating = False
        For i = dar To (dar + nr - 1)
            ActiveSheet.Shapes.Range(Array("ChkBox_" & col & i)).Delete
        Next i
        Application.ScreenUpdating = True
    End Sub

  18. I seguenti 2 utenti hanno dato un "Like" a zio_tom per questo post:


  19. #15

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: Inserimento checkbox e realtivo collegamento cella

    Grazie per il contributo zio_tom, molto interessante.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  20. #16
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Inserimento checkbox e realtivo collegamento cella

    ...be se sia più elegante non lo so ma è un'alternativa!
    ...e grazie a Ges per il complimento sul mio precedente post.

    il codice a partire dalla cella selezionata crea o cancella il numero di checkbox specificate.
    se non è inserito alcun valore ne crea o cancella una in quella attiva.

    Codice: 
    Private Sub CommandButton1_Click()
        Dim myCheckBox As Object
        Dim i As Long, cella As String
        Application.ScreenUpdating = False
        cella = ActiveCell.Address(0, 0)
    On Error Resume Next
        For i = 0 To TextBox_crea.Value - 1
            With Range(cella).Offset(i, 0)
                Set myCheckBox = ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height)
                myCheckBox.Text = ""
                myCheckBox.LinkedCell = .Address(0, 0)
                myCheckBox.Name = "ChkBox_" & .Address(0, 0)
            End With
        Next i
        Application.ScreenUpdating = True
    End Sub
    
    
    Private Sub CommandButton2_Click()
        Dim i As Long, cella As String
        Application.ScreenUpdating = False
        cella = ActiveCell.Address(0, 0)
    On Error Resume Next
        For i = 0 To TextBox_cancella.Value - 1
            With Range(cella).Offset(i, 0)
            ActiveSheet.Shapes.Range(Array("ChkBox_" & .Address(0, 0))).Delete
        End With
        Next i
        Application.ScreenUpdating = True
    End Sub
    
    
    Private Sub CommandButton3_Click()
    MsgBox "Ciao, con questo bottone  hai avviato la macro n. 3"
    End Sub
    
    
    Private Sub CommandButton4_Click()
    Unload Me
    End Sub
    Codice: 
    Sub Pulsante1_Click()
    UserForm1.Show vbModeless
    End Sub
    un saluto a tutti
    GG
    File Allegati File Allegati

  21. I seguenti utenti hanno dato un "Like"


  22. #17
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17

    Re: Inserimento checkbox e realtivo collegamento cella

    decisamente più "furba" e flessibile della mia
    ma come la mia è legata al nome dato ai CheckBoxes (prefisso 'ChkBox_')
    sarebbe interessate scandire tutti i CB, a prescindere dal nome
    anche per verificarli, e poi scegliere quali cancellare

    comunque la soluzione di GGRATIS l'ho adattata ed adottata
    ma si può sempre migliorare

  23. #18
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    [Risolto] Inserimento checkbox e realtivo collegamento cella

    Citazione Originariamente Scritto da zio_tom Visualizza Messaggio
    decisamente più "furba" e flessibile della mia
    ma come la mia è legata al nome dato ai CheckBoxes (prefisso 'ChkBox_')
    sarebbe interessate scandire tutti i CB, a prescindere dal nome
    anche per verificarli, e poi scegliere quali cancellare

    comunque la soluzione di GGRATIS l'ho adattata ed adottata
    ma si può sempre migliorare
    ...grazie per aver apprezzato, zio_tom!

    dovresti precisare meglio: "sarebbe interessate scandire tutti i CB, a prescindere dal nome
    anche per verificarli, e poi scegliere quali cancellare"

    ...magari ci si diverte.

    un'idea...
    - assegnare un nome specifico in fase di creazione della chkbox assegnandolo attraverso una texbox collocato sulla userform
    - creare una lista dei nomi unici delle chkbox troncando i loro nomi al carattere che precede "_$"
    - assegnare questa lista ad una combobox, attraverso la quale
    - decidere di cancellare le chkbox con la stessa radice del nome

    saluti
    gg

    questo il codice della userform1:
    Codice: 
    Private Sub CommandButton1_Click()
        Dim myCheckBox As Object
        Dim i As Long, cella As String
    Application.ScreenUpdating = False
    cella = ActiveCell.Address
    On Error Resume Next
        For i = 0 To TextBox_crea.Value - 1
            With Range(cella).Offset(i, 0)
                Set myCheckBox = ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height)
                myCheckBox.Text = ""
                myCheckBox.LinkedCell = .Address
                myCheckBox.Name = TextBox_nome_crea.Value & "_" & .Address
            End With
        Next i
    Application.ScreenUpdating = True
    End Sub
    
    
    Private Sub CommandButton2_Click()
        Dim i As Long, cella As String
        Dim cbx As Shape
    Application.ScreenUpdating = False
    cella = ActiveCell.Address
    On Error Resume Next
    If TextBox_cancella.Value <> "" Then
        For i = 0 To TextBox_cancella.Value - 1
            With Range(cella).Offset(i, 0)
            ActiveSheet.Shapes.Range(Array(ComboBox_cancella.Value & "_" & .Address)).Delete
            End With
        Next i
     Else
        For Each cbx In ActiveSheet.Shapes
            If cbx.Type = msoFormControl Then
                If cbx.FormControlType = xlCheckBox Then
                    If InStr(1, CStr(cbx.Name), ComboBox_cancella.Value & "_$", vbTextCompare) > 0 Then
                        ActiveSheet.Shapes.Range(Array(cbx.Name)).Delete
                    End If
                End If
            End If
        Next cbx
     End If
    Application.ScreenUpdating = True
    End Sub
    
    
    Private Sub CommandButton3_Click()
    MsgBox "Ciao, con questo bottone  hai avviato la macro n. 3"
    End Sub
    
    
    Private Sub CommandButton4_Click()
    Unload Me
    End Sub
    
    
    Private Sub ComboBox_cancella_Enter()
    Dim cbx As Shape, nome As Variant
    Dim col As Collection
            Set col = New Collection
            On Error Resume Next
            For Each cbx In ActiveSheet.Shapes
                    If cbx.Type = msoFormControl Then
                        If cbx.FormControlType = xlCheckBox Then
                            col.Add Left(CStr(cbx.Name), InStr(1, CStr(cbx.Name), "_$", vbTextCompare) - 1), Left(CStr(cbx.Name), InStr(1, CStr(cbx.Name), "_$", vbTextCompare) - 1)
                        End If
                    End If
            Next cbx
    ComboBox_cancella.Clear
    For Each nome In col
        ComboBox_cancella.AddItem nome
    Next
    End Sub
    nel modulo standard:
    Codice: 
    Sub Pulsante1_Click()
    UserForm1.Show vbModeless
    End Sub
    il codice da possibilità di decidere se cancellare un numero prefissato di checkbox a partire dalla cella selezionata o tutte le checkbox contenenti la stessa radice del nome o
    tutte le checkbox contenenti nel nome i caratteri "_$"

    ho cercato di trovare un modo di individuare tra tutte le shapes le sole checkbox ma al momento non ho trovato la soluzione

    saluti
    gg
    File Allegati File Allegati
    Ultima modifica fatta da:ggratis; 22/06/16 alle 18:34 Motivo: aggiunto il codice

Discussioni Simili

  1. Risposte: 3
    Ultimo Messaggio: 27/02/17, 14:06
  2. Inserimento riga al riempimento di una cella
    Di lizz1183 nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 24/11/16, 16:11
  3. [Risolto] Collegamento cella excel in word, problemi aggiornamento e formattazione.
    Di Dr Jackall nel forum Domande sul Microsoft Word
    Risposte: 6
    Ultimo Messaggio: 03/11/16, 19:36
  4. [Risolto] Inserimento commento in cella con userform
    Di G.Bove nel forum Domande su Excel VBA e MACRO
    Risposte: 27
    Ultimo Messaggio: 26/10/16, 18:36
  5. protezione cella - collegamento ipertestuale
    Di stambek nel forum Domande su Excel in generale
    Risposte: 0
    Ultimo Messaggio: 06/06/16, 20:50

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •