Aiutamici Forum
Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Excel 2003: Selezione variabile con macro Opzioni
gimbo3d
Inviato: Tuesday, November 18, 2008 2:57:46 PM
Rank: Newbie

Iscritto dal : 11/18/2008
Posts: 0
Ciao a tutti
ho una tabella con dei dati e vorrei far in modo che questi deti vengano ordinati secondo il valore di una data colonna alla pressione di un tasto. Fin qui tutto ok, ho creato una macro che poi ho assegnato ad un tasto e tutto funziona. Il problema nasce quando aggiungo altri dati aumentando così le righe. Siccome il lavoro andrà fatto da "persone non addette ai lavori" vorrei fare in modo che una volta inserite le righe con i nuovi dati si limitino a premere un tasto e l'ordimamento avviene da solo. come faccio a rendere variabile la selezione nella macro tenendo presente che al di sotto dei dati inseriti ho i totali quindi non posso selezionare il foglio fino alla fine.

questa è la macro che ho creato e fondamentalmente vorrei che il range variasse all'aggiungere nuove righe e che non fosse fisso su Q21.

Cells.Select
Range("C1:Q21").Sort Key1:=Range("C2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("J21").Select




Spero di essermi spiegato (anche se nn credo) e confido in un vostro aiuto.

Grazie
Sponsor
Inviato: Tuesday, November 18, 2008 2:57:46 PM

 
a10n11
Inviato: Tuesday, November 18, 2008 4:05:23 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
per fare quello che chiedi, devi definire l'ultima riga della tabella
utilizzando diverse soluzioni dipendentemente dal tipo di tabella che hai.
quella che preferisco è usare l'istruzione End dal basso verso l'alto che non viene influenzata dal fatto che nella tabella ci possano essere celle vuote.

questo che segue è un esempio di quanto detto:

Ur = Range("Q65536").End(xlUp).Row
Range("C1:Q" & Ur).Sort Key1:=Range("C2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("J21").Select

in questo modo l'aggiunta di records viene presa in considerazione ogni qualvolta lanci la macro.
saluti
Andrea

gimbo3d
Inviato: Tuesday, November 18, 2008 4:15:28 PM
Rank: Newbie

Iscritto dal : 11/18/2008
Posts: 0
sei un mito :-) GRAZIEEEEEEE...

ti posso solo chiedere delucidazioni su come funziona il comando che mi hai fatto inserire? avevo già visto che l'avevi usato in un altro post ma non sono riuscito a capirne la logica per quello che non l'avevo provato.

praticamente così gli dici di memorizzare in una variabile (Ur) il risultato della funzione "end" del comando range?

Ur = Range("Q65536").End(xlUp).Row




gimbo
a10n11
Inviato: Tuesday, November 18, 2008 5:35:14 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
con l'istruzione
Ur = Range("Q65536").End(xlUp).Row

viene chiesto di individuare la prima cella occupata della colonna Q a partire dall'ultima cella di colonna (che fino ad excel 2003
e la riga 65536).
Quando indentifica la prima cella non vuota, con l'istruzione ".Row" assegna alla variabile Ur il numero di riga.

La proprietà END ( dall'Help in linea:Restituisce un oggetto Range che rappresenta la cella alla fine dell'area contenente l'intervallo di origine) opera con le seguenti direzioni:
XlDown = dall'alto verso il basso
XlUp= Dal basso verso l'alto
XlToLeft = Da destra verso sinistra
XlToRight= Da sinistra verso destra

saluti
Andrea




gimbo3d
Inviato: Tuesday, November 18, 2008 5:43:51 PM
Rank: Newbie

Iscritto dal : 11/18/2008
Posts: 0
Grazie ancora per l'aiuto e per le delucidazioni.

gimbo
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.