Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

selezione colonne non contigue

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

selezione colonne non contigue

Postdi miko » 07/01/10 14:26

ciao,
avevo trovato una macro per selezionare tutto il contenuto di righe o colonne non contigue, ma purtroppo non so dove o memorizzato questo file;
ho fatto varie ricerche tra i miei file ed in rete ma non sono riuscito a trovarla;
ho elaborato questa routine:

Sub seleziona()

Application.ScreenUpdating = False

Dim c1, c2, c3, c4, c5, Intervallo As Range
With Foglio1
Set c1 = Range("A1").End(xlDown)
Set c2 = Range("B1").End(xlDown)
Set c3 = Range("D1").End(xlDown)
Set c4 = Range("F1").End(xlDown)
Set c5 = Range("I1").End(xlDown)
End With

Set Intervallo = Union(c1, c2, c3, c4, c5)

Intervallo.Select

End Sub

ma la routine mi seleziona solo le ultime celle piene delle colonne A,B,D,F,I, e non le intere colonne come vorrei.
dove devo modificare il codice per ottenere il risultato?
esiste un diverso procedimento per ottenere lo stesso risultato?
saluti, grazie
miko
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Sponsor
 

Re: selezione colonne non contigue

Postdi Anthony47 » 07/01/10 15:53

Io userei qualcosa come
Codice: Seleziona tutto
Sub seleziona()
'
Dim c1, c2, c3, c4, c5, Intervallo As Range
Set c1 = Intersect(ActiveSheet.UsedRange, Range("A:A"))
Set c2 = Intersect(ActiveSheet.UsedRange, Range("B:B"))
Set c3 = Intersect(ActiveSheet.UsedRange, Range("D:D"))
Set c4 = Intersect(ActiveSheet.UsedRange, Range("F:F"))
Set c5 = Intersect(ActiveSheet.UsedRange, Range("I:I"))
'
Set Intervallo = Union(c1, c2, c3, c4, c5)
Intervallo.Select
End Sub

Questa pero' imposta tutte le colonne alla stessa altezza, mo non credo che la cosa ti dia fastidio.

L' uso di With Foglio1 / End With e' inutile nella macro da te indicata:
-tutti i riferimenti che hai inserito sono al foglio corrente
-avessi anche fatto riferimento a Foglio1 [usando ad esempio la sintassi Set c1 = .Range("A1").End(xlDown)] non avresti potuto usare Intervallo.Select senza prima aver selezionato Foglio1

Inoltre con quella sintassi (With Foglio1) ti e' chiaro che non fai riferimento a un foglio chiamato "Foglio1"[Sheets("Foglio1)], ne' al foglio con indice 1 [Sheets(1)] ma al foglio che "da progetto" e' il N°1, comunque si chiami?

Anche ScreenUpdating e' inutile, nella macro.

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: selezione colonne non contigue

Postdi miko » 07/01/10 20:42

salve
grazie per il codice e le spiegazioni, per me molto utili per comprendere il vba
saluti miko
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44


Torna a Applicazioni Office Windows


Topic correlati a "selezione colonne non contigue":


Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti