Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

checkbox select all

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

checkbox select all

Postdi statam » 16/02/16 22:56

Salve a tutti,
ho fatto in un foglio excel, che vi allego come esempio (così ci comprendiamo meglio) http://www.filedropper.com/checkbox2221, una serie di checkbox selezionabili con un pulsante seleziona tutto con il seguente codice:
Codice: Seleziona tutto
Sub select_all()
 Dim rng As Range
  Dim cel As Range
  Set rng = Range("d1:d6")
  For Each cel In rng
    If cel.Value = True Then
    cel.Value = False
    ElseIf cel.Value = False Then
    cel.Value = True
    End If
  Next cel
End Sub


Oltre a questo pulsante ne ho un altro con cui posso modificare dei valori. Il problema è che se la cella rimane vuota (es. vedi riga 5, colonna B del file in allegato) e la checkbox è selezionata poi cliccando sul pulsante "modifica" dà un errore di run time(pur cambiando i valori delle altre checkbox).
Vorrei inserire dunque nel codice qualcosa del genere "se colonna B= stringa vuota allora passa alla riga/checkbox successiva".
Ho provato a inserire questo codice
Codice: Seleziona tutto
If cel.Value = False Then And cel.Offset(0, -2).Value = "" Then
cel.Value = False

In modo tale che il pulsante "seleziona tutti" seleziona tutte le checkbox ma se la la cella nella colonna B è vuota allora la lascia deselezionata (su False).
Però così non funziona. Sapete aiutarmi?
statam
Utente Junior
 
Post: 47
Iscritto il: 30/12/15 19:30

Sponsor
 

Re: checkbox select all

Postdi Flash30005 » 17/02/16 01:05

Va in errore perché essendo vuota non può fare i conteggi che gli fai fare con il codice di modifica

Non so se deve saltare la cella oppure eseguire ugualmente il calcolo considerando valore 0 (zero) il valore della cella vuota
se così
cambia il codice che hai in modifica con questo
Codice: Seleziona tutto
    If cel.Value = True Then
        cel.Offset(0, -1).Value = Val(cel.Offset(0, -1).Value) + Val(cel.Offset(0, -1).Value) * Range("G2").Value / 100
    End If


ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: checkbox select all

Postdi statam » 17/02/16 20:49

Flash30005 ha scritto:Va in errore perché essendo vuota non può fare i conteggi che gli fai fare con il codice di modifica

Non so se deve saltare la cella oppure eseguire ugualmente il calcolo considerando valore 0 (zero) il valore della cella vuota
se così
cambia il codice che hai in modifica con questo
Codice: Seleziona tutto
    If cel.Value = True Then
        cel.Offset(0, -1).Value = Val(cel.Offset(0, -1).Value) + Val(cel.Offset(0, -1).Value) * Range("G2").Value / 100
    End If


ciao


Intendi il codice del pulsante modifica?
Io comunque non voglio che appaia 0, voglio che non appaia niente, che le checkbox affiancate da una cella vuota o non vengano selezionate oppure vengano selezionate ma che poi non diano errore
statam
Utente Junior
 
Post: 47
Iscritto il: 30/12/15 19:30

Re: checkbox select all

Postdi Flash30005 » 18/02/16 03:29

Allora puoi aggiungere questa condizione
Codice: Seleziona tutto
    If cel.Value = True and  cel.Offset(0, -1).Value <> ""  Then
        cel.Offset(0, -1).Value = cel.Offset(0, -1).Value + cel.Offset(0, -1).Value * Range("G2").Value / 100
    End If
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: checkbox select all

Postdi statam » 21/02/16 21:40

Flash30005 ha scritto:Allora puoi aggiungere questa condizione
Codice: Seleziona tutto
    If cel.Value = True and  cel.Offset(0, -1).Value <> ""  Then
        cel.Offset(0, -1).Value = cel.Offset(0, -1).Value + cel.Offset(0, -1).Value * Range("G2").Value / 100
    End If


Grazie mille!!
statam
Utente Junior
 
Post: 47
Iscritto il: 30/12/15 19:30


Torna a Applicazioni Office Windows


Topic correlati a "checkbox select all":


Chi c’è in linea

Visitano il forum: CANAPONE e 15 ospiti