Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

seleziona ultima cella colorata

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

seleziona ultima cella colorata

Postdi miko » 01/06/10 10:11

salve;
cliccando su un pulsante vorrei selezionare-andare sull' ultima cella colorata del range B-K.
ho creato questa macro:
Codice: Seleziona tutto
Sub ULTIMA_CELLA_COLORATA()
'Application.ScreenUpdating = False
URB = Sheets("Foglio1").Range("B" & Rows.Count).End(xlUp).Row
'SELEZIONA LE CELLE COLORATE PARTENDO DALL'ALTO
For r = 3 To URB
'SELEZIONA LE CELLE COLORATE PARTENDO DAL BASSO
'For r = URB To 3 Step -1
For i = 2 To 11
If Cells(r, i).Interior.ColorIndex = 3 Then
Range("B" & r & ":K" & r).Select
End If
Next i
Next r
'Application.ScreenUpdating = True
End Sub

come notate ci sono 2 versioni.
poichè si tratta di andare all'ultima cella è preferibile iniziare la ricerca partendo dal basso.
ho tuttavia dei problemi:
1) se scommento Application.ScreenUpdating si vedono scorrere le righe
2) se le commento non vado da nessuna parte
3) se scommento le linee per la ricerca dal basso viene evidenziata la prima riga partendo dall'alto;
in pratica partendo dal basso vengono selezionate tutte le celle colorate fino a raggiungere la prima in alto.
vorrei selezionare tutte le celle, Range("B" & r & ":K" & r).Select, del range B-K in cui si trova l'ultima cella colorata del range B-K, non avendo importanza se la cella colorata si trova nella colonna B oppure C o K.
come devo modificare la macro?
grazie ciao
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Sponsor
 

Re: seleziona ultima cella colorata

Postdi ricky53 » 01/06/10 14:09

Ciao,

una prima veloce impressione:

tu hai scritto
"se scommento le linee per la ricerca dal basso viene evidenziata la prima riga partendo dall'alto;"

quindi si ricava che dovresti uscire dal ciclo (exit for) alla prima condizione di "trovata cella colorata" altimenti ... arriva in cima.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: seleziona ultima cella colorata

Postdi miko » 01/06/10 18:24

ciao,
grazie per il tuo contributo,ricky;
purtroppo la macro non lavora come da tua impressione, ma viene eseguito tutto il ciclo in base al valore assunto da URB;
quindi se ad esempio URB=100 e uso la linea: For r = 3 To URB, la macro parte dalla riga 3, trova la prima cella colorata, ad esempio in C5, seleziona B5-K5, ma poi prosegue alla ricerca di altre celle colorate fino alla fine cioè quando URB raggiunge il valore 100;
quindi il problema sembrerebbe risolto, ma in effetti c'è da tener conto dello screen.updating;
se allora commento le relative linee vedo scorrere il foglio;
al contrario se le scommento, non vedo scorrere il foglio, la macro trova l'ultima cella colorata e seleziona l'intera riga Br-Kr, ma poi devo scorrere il foglio alla ricerca della linea evidenziata.
identico discorso, ma con procedimento a ritroso rispetto al precedente, se uso la linea: For r = URB To 3 Step -1
si parte da URB=100 fino ad URB=3, e quindi dall'ultima riga fino alla prima con analoghe considerazioni a proposito di screen.updating.
saluti e grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: seleziona ultima cella colorata

Postdi Anthony47 » 01/06/10 21:56

Ricky ti ha suggerito di lavorare con la ricerca dal basso (quindi For r = URB To 3 Step -1) e inserire una uscita dalla macro appena trovi la prima riga con cella colorata.
Basta che modifichi la riga che ti indico qui di seguito:
Codice: Seleziona tutto
If Cells(r, i).Interior.ColorIndex = 3 Then
Range("B" & r & ":K" & r).Select: Exit Sub    '<<<< MODIFICATA
End If
Cosi' facendo non ha nemmeno problemi di scrolling delle righe, visto che l' unica che selezioni e gia' quella giusta, e ti puoi dimenticare le Application.ScreenUpdating = False/True.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: seleziona ultima cella colorata

Postdi miko » 02/06/10 09:50

salve,
non avevo inteso il suggerimento di ricky;
con la modifica che hai segnalato funziona perfettamante.
grazie ciao
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44


Torna a Applicazioni Office Windows


Topic correlati a "seleziona ultima cella colorata":


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti