Condividi:        

Ciclo If con più condizioni

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

Ciclo If con più condizioni

Postdi SebNan » 29/05/13 14:03

Ciao a tutti, ho un file excel con un elevato numero di righe e voglio eliminarle tutte tranne quelle con determinati codici.
Io ho scritto questa funzione:

Dim COD As Integer
Sheets(StSh).Select
With Sheets(StSh)
COD = .Cells(Rows.Count, 10).End(xlUp).Row
For n = COD To 2 Step -1
If Not .Cells(n, 10).Value = "23" Or .Cells(n, 10).Value = "24" Or .Cells(n, 10).Value = "27" Or .Cells(n, 10).Value = "28" Then
.Cells(n, 10).EntireRow.Delete
End If
Next n
End With

Solo che mi verifica solo la prima condizione, cioè mi tiene solo le righe con codice 23, ma mi cancella quelle con il codice 24, 27 e 28. Perchè? Dove ho sbagliato?
Grazie e buon lavoro
SebNan
Utente Junior
 
Post: 28
Iscritto il: 07/12/12 14:32

Sponsor
 

Re: Ciclo If con più condizioni

Postdi Anthony47 » 29/05/13 14:27

Perche' il Not e' riferito solo al primo confronto; modifica in :
Codice: Seleziona tutto
If Not (.Cells(n, 10).Value = "23" Or .Cells(n, 10).Value = "24" Or .Cells(n, 10).Value = "27" Or .Cells(n, 10).Value = "28") Then

Se i campi sono numerici dovresti eliminare gli apici attorno ai valori di confronto.
Ti segnalo che l' uso del With /End with, lavorando il codice sul foglio attivo, e' una complicazione invece che un vantaggio.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19223
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Ciclo If con più condizioni":


Chi c’è in linea

Visitano il forum: Nessuno e 44 ospiti