Discussione:
routine che elimina righe
(troppo vecchio per rispondere)
Ammammata
2024-04-17 12:11:03 UTC
Permalink
tempo fa mi era stata suggerita una routine per leggere le righe di un
foglio, verificare se la cella di una determinata colonna avesse un
certo colore di sfondo e in caso positivo eliminare tutta la riga

la routine è eseguita su un foglio dopo una routine precedente che
elimina determinate colonne


Public Sub EliminaRigheGialle()
Dim nr As Long
Dim l As Long
With ActiveSheet
nr = .Range("A500").End(xlUp).Row
For l = nr To 2 Step -1
If .Cells(l, 14).Interior.ColorIndex = 6 Then
.Rows(l).Delete Shift:=xlUp
End If
Next l

.Cells(1, 1).Select
End With
End Sub


debuggando il codice mi trovo subito all'inizio con la cella A1
selezionata (in seguito alla prima routine di eliminazione colonne), le
righe da 2 a 11 contenenti dati ma nascoste, le righe da 12 a 16
visibili con dati e sotto niente fino in fondo

arrivo quindi alla riga nr = .Range("A500").End(xlUp).Row

e ottengo il valore 1

poi il ciclo for...next viene ignorato e la routine termina

perché ottengo 1 ? mi aspetterei che partendo dalla riga 50 e salendo
verso l'alto di avere 16
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
Ammammata
2024-04-17 14:30:13 UTC
Permalink
perché ottengo 1 ? mi aspetterei che partendo dalla riga 50 e salendo verso
l'alto di avere 16
ho risolto con una riga aggiuntiva, che mi posiziona sulla riga 500

With ActiveSheet
Cells(1, 500).Select
nr = .Range("A500").End(xlUp).Row
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
Loading...