Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Offset. Spostamento e selezione

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

[Excel] Offset. Spostamento e selezione

Postdi luca2002for » 07/05/06 13:13

Cara Alexsandra e amici del forum eccomi di nuovo (a volte tornano).

Grazie ai consigli dell'esperta veronese sono riuscito a individuare ed attivare l'ultima cella piena all'interno della colonna A del mio foglio di lavoro.
Codice: Seleziona tutto
Set zona = Range([A1], [A1].End(xlDown))
[A1].End(xlDown).Activate
Adesso dovrei dire a excel di spostarsi, rispetto a quella cella (che non è "fissa", perchè è l'ultima piena) di trenta colonne a destra e di selezionare, in previsione di un futuro copia, un range ben definito, cioè la riga che va dal valore di colonna AE al valore di colonna BH (cioè precisamente 30 celle contigue, tutte sulla stessa riga, tutte alla stessa "altezza" se così si può dire, della cella attivata con le due righe di codice di cui sopra).

Ho provato con questo comando:
Codice: Seleziona tutto
ActiveCell.Offset(0, 30).Range("AE:BH").Select
Ma excel si incupisce alquanto, restituendomi un beffardo ERRORE DI RUN-TIME '1004' ed evidenziandomi in giallo la riga di codice di cui parlavo
Codice: Seleziona tutto
(ActiveCell.Offset(0, 30).Range("AE:BH").Select).
Forse sbaglio ad usare "range", ma altrimenti non saprei come dirgli di selezionare "solo" quelle trenta celle. Avevo provato con
Codice: Seleziona tutto
ActiveCell.Offset(0, 30).Rows("1:1").EntireRow.Select
e non mi dava nessun errore....però non faceva quello che volevo io perchè evidenziava tutta la riga (un pò troppo per le mie esigenze)..

Chi mi può aiutare? :-)

Grazie in anticipo e scusate la prolissità (quando posto divento grafomane, non so perchè....)

Luca
luca2002for
Utente Senior
 
Post: 116
Iscritto il: 07/05/06 09:32

Sponsor
 

Postdi Alexsandra » 07/05/06 14:07

Ciao .... Bello il titolo. Grazie :D Prova così
Codice: Seleziona tutto
Sub prova()
Set zona = Range([A1], [A1].End(xlDown))
[A1].End(xlDown).Activate
ActiveCell.Offset(0, 30).Select
Range(Cells(ActiveCell.Row, 30), Cells(ActiveCell.Row, 60)).Select
End Sub
Le prime 2 righe le abbiamo già viste. Con la 3° ti sposti di 30 colonne e selezioni la cella attiva,con la 4° riga costruisci il Range dato da Activecell...,30 a Activecell...,60 (cioè 30 colonne) e con .Select le selezioni.
PS. sono molto curiosa,cosa stai facendo??? :D
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Grazie ancora :-)

Postdi luca2002for » 07/05/06 14:59

Funziona. Graxie Alex :-)

Rasenti il mito.

Dovrò studiare per capire perchè, ma .... funziona!!!!

Luca

(hai ricevuto il mio messaggio?) :-)
luca2002for
Utente Senior
 
Post: 116
Iscritto il: 07/05/06 09:32

Postdi Anthony47 » 08/05/06 00:05

Ehm...Per la cronaca si puo' fare anche su una sola riga:
Codice: Seleziona tutto
Sub prova()
Range("A65536").End(xlUp).Offset(0, 30).Range("A1:AD1").Select
End Sub

Avrete anche notato che la ricerca dell' ultima cella occupata preferisco farla dal basso, cosi' se in A non c' e' niente mi posiziono sulla riga 1 (mentre con la ricerca dall' alto andrei in riga 65536).

Comunque vale sempre la regola che la perfezione e' nemica del bene.

Ciao a tutti,
Anthony
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: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Alexsandra » 08/05/06 07:00

Ciao Antony bel codice anche il tuo
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Grazie Anthony

Postdi luca2002for » 08/05/06 08:56

Avere soluzioni diverse pr ottenere lo stesso risultato è il modo migliore per capire.
Grazie mille Anthony.
Ho provato il codice e funziona alla grande. Ho imparato più cose ieri, con l'aiuto tuo e di Alexsandra, che in due mesi di manuali.

Adesso, smontando e riassemblando i codici che mi avete proposto sono in grado di indicare a excel qualsiasi cella (vuota o piena) a partire da qualsiasi cella.

Non male :-)

Luca
luca2002for
Utente Senior
 
Post: 116
Iscritto il: 07/05/06 09:32


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Offset. Spostamento e selezione":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti