Vba Checkbox per scrivere in sequenza

di il
6 risposte

Vba Checkbox per scrivere in sequenza

Salve,

ho fatto una Userform con delle checkbox che se vere fanno si che venga scritto in alcune celle un codice. Vorrei che il codice fosse scritto in sequenza e non in posizione fissa come adesso (in pratica se devo iniziare a scrvere dalla cella a1 i codici vorrei che se sonoattive 3 checkbox scrive in A1,A2 e A3 se solo 2 Scrive in A1 ed A2 (indipendentemente dalla checkbox che seleziono.

Metto il codice:

Private Sub CheckBox1_Click()
    If Frutta.CheckBox1.Value = True Then
        Range("a1").End(xlDown).Offset(1, 0).Select
        riga = ActiveCell.Row
        Cells(riga, 1) = "1"
    Else
        Range("a1").End(xlDown).Offset(1, 0).Select
        riga = ActiveCell.Row
        Cells(riga, 1) = ""
 End If
End Sub
Private Sub CheckBox2_Click()
    If Frutta.CheckBox2.Value = True Then
        Range("a1").End(xlDown).Offset(1, 0).Select
        riga = ActiveCell.Row
        Cells(riga + 1, 1) = "2"
    Else
        Range("a1").End(xlDown).Offset(1, 0).Select
        riga = ActiveCell.Row
        Cells(riga + 1, 1) = ""
 End If
End Sub
Private Sub CheckBox3_Click()
    If Frutta.CheckBox3.Value = True Then
        Range("a1").End(xlDown).Offset(1, 0).Select
        riga = ActiveCell.Row
        Cells(riga + 2, 1) = "3"
    Else
        Range("a1").End(xlDown).Offset(1, 0).Select
        riga = ActiveCell.Row
        Cells(riga + 2, 1) = ""
 End If
End Sub

6 Risposte

  • Re: Vba Checkbox per scrivere in sequenza

    09/01/2023 - Mak81 ha scritto:


    Vorrei che il codice fosse scritto in sequenza e non in posizione fissa come adesso

    Quindi non ti serve la parte riga + n.

    I vari blocchi “Else” non fanno nulla. Anche la “Select” è inutile:

    Private Sub CheckBox1_Click()
      If Frutta.CheckBox1.Value Then Range("a1").End(xlDown).Offset(1, 0) = "1"
    End Sub
    Private Sub CheckBox2_Click()
      If Frutta.CheckBox2.Value Then Range("a1").End(xlDown).Offset(1, 0)  = "2"
    End Sub
    Private Sub CheckBox3_Click()
      If Frutta.CheckBox3.Value Then Range("a1").End(xlDown).Offset(1, 0) = "3"
    End Sub
  • Re: Vba Checkbox per scrivere in sequenza

    Ciao,

    gli else mi servono per cancellare i valori scritti sul foglio se si deseleziona la checkbox.

    Il progetto finale vede più Userform con diverse checkbox (molte); io voglio che scriva i valori di seguito e non in posizioni fisse.

    tipo: Userform 1 seleziono il check 1,4 e 5 lui scrive i 3 codici in a1,a2 e a3. Poi se seleziono un altro Userform lui continua da a4 in poi sempre in fila.

    Inoltre se deseleziono lui deve cancellare quel valore.

    Inoltre il codice come da te suggerito scrive sempre nella stessa cella (ovvero la prima libera sotto e non le scorre) Io devo scrivere in celle in successione…

    Grazie

  • Re: Vba Checkbox per scrivere in sequenza

    Private Sub CheckBox1_Click()
      Range("a1").End(xlDown).Offset(1, 0) = Iif(Frutta.CheckBox1.Value, "1", "")
    End Sub
    Private Sub CheckBox2_Click()
      Range("a1").End(xlDown).Offset(1, 0) = Iif(Frutta.CheckBox2.Value, "2", "")
    End Sub
    Private Sub CheckBox3_Click()
      Range("a1").End(xlDown).Offset(1, 0) = Iif(Frutta.CheckBox3.Value, "3", "")
    End Sub
  • Re: Vba Checkbox per scrivere in sequenza

    11/01/2023 - oregon ha scritto:


    Range("a1").End(xlDown).Offset(1, 0) = Iif(Frutta.CheckBox2.Value, "2", "")

    Hi thanks for the clearnes of the code, but with this code the value 1,2 or 3 is always written in the same cell…I need to scroll down the cells…

  • Re: Vba Checkbox per scrivere in sequenza

    E adesso perché scrivi in inglese? Forse pensi di scrivere su un altro forum?

  • Re: Vba Checkbox per scrivere in sequenza

    Ops stavo leggendo altri forum

Devi accedere o registrarti per scrivere nel forum
6 risposte