PDA

View Full Version : non so come fare questa macro di excel


Plextor
15-09-2005, 15:12
ho questa necessità con excel:
immaginate una tabella semplicissima fatta di 2 colonne e diverse righe:

colA : Persona
colB : Età

di alcune di queste persone non so l'età e quindi al posto del numeretto indicante l'età ci scrivo NP.

Io voglio una macro che mi scorra questa colonna e che appena mi trovi una riga sulla cui colonna B c'è scritto "NP", mi elimina la riga, ed il tutto senza variare l'ordine delle righe, deve solo eliminare e quindi spostare le righe sottostanti in alto.

guldo76
15-09-2005, 22:25
Meglio ancora, puoi controllare che il valore nella colonna "B" sia numerico.
Cmq ti ho lasciato entrambe le righe, vedi tu quale usare.
Comincia da B1 e si ferma alla prima cella vuota.

Sub pippo

For i = 1 To 65536
If IsEmpty(Cells(i,2).Value) Then Exit Sub
'If Cells(i,2).Value = "NP" Then
If Not IsNumeric(Cells(i,2).Value) Then
Rows(i).Delete
i = i - 1
End If
Next i

End Sub

Plextor
16-09-2005, 09:42
molto gentile, c'è solo un problema:
non voglio che si fermi alla prima cella vuota perchè a volto trovo nella colonna anche delle celle vuote e quelle righe non devono essere cancellate.


;)

guldo76
16-09-2005, 18:55
non voglio che si fermi alla prima cella vuota perchè a volto trovo nella colonna anche delle celle vuote e quelle righe non devono essere cancellate
Potresti fare così:
Sub pippo
On Error GoTo Errore
k=1
For i = 1 To Inputbox("Inserire il numero delle righe da considerare","Quante righe?") step 1
If Cells(k,2).Value = "NP" Then
Rows(k).Delete
Else
k=k+1
End If
Next i
Exit Sub

Errore:
End Sub
Esegui questa e scrivi il numero della riga nella finestrella che appare.

Plextor
16-09-2005, 19:12
ok perfetto parto da questi spunti e vedo di giostarmela in modo tale che come riga finale consideri l'area che sto selezionando in quel momento.

molto gentile
;)