Sub inizio()
'dimensioniamo correttamente le variabili
Dim i As Integer, n As Integer, somma As Integer
'chiediamo un valore all'utente
n = InputBox("Inserisci un numero tra 1 e 10, zero per uscire:")
'se il valore inserito è minore o uguale a zero oppure maggiore di 11 allora esci dalla procedura
If n <= 0 Or n > 10 Then Exit Sub
'inizia un ciclo, utilizza come contatore la variabile "i"
'i parte da "n" (numero inserito dall'utente) più 1 se n è dispari, altrimenti più zero se n è pari
'la funzione Mod restituisce il resto intero di una divisione, dividendo per due un numero
'ottieni 1 se il numero è dispari, zero se il numero è pari
'il ciclo for prosegue fino a 10 a passi (step) di 2
'pertanto considera le righe pari a partire da quella indicata (se era pari parte da lì,
'se era dispari parte dalla successiva)
For i = n + (n Mod 2) To 10 Step 2
'tiene conto della somma dei valori che trova nelle celle che si trovano nella i-esima riga a partire da A1
somma = somma + Cells(i, 1)
Next i
'visualizza un messaggio con la somma calcolata
MsgBox ("La somma dei numeri pari è " & somma)
'cancella la colonna C
[c:c].ClearContents
'inserisce una riga vuota in A1 e sposta tutto il resto verso il basso
[a1].Insert shift:=xlShiftDown
'considera la cella A1 per farci delle operazioni
With [a1]
'immette in A1 un valore fittizio
.Value = "xxx"
'genera un filtro automatico sulla colonna A in modo da ottenere solo i valori > 15
.AutoFilter field:=1, Criteria1:=">15"
'i valori così filtrati vengono copiati in C1
ActiveSheet.[a1:a10].SpecialCells(xlCellTypeVisible).Copy [c1]
'viene annullato il filtro automatico
.AutoFilter
'viene cancellata la prima riga e viene spostato il resto verso l'alto
.EntireRow.Delete shift:=xlShiftUp
End With
'fine della procedura
End Sub |