Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, vorrei automatizzare una semplicissima operazione di routine che attualmente svolgo manualmente, più che altro per evitare remoti errori di battitura (che genererebbero ben più gravi erroi di elaborazione dei dati!! quindi la motivazione NON è per pigrizia :)) ): lavoro su tabelle che pocedono dal basso verso l'alto, per cui l'aggionamento dei dati avviene nella prima riga della tabella ("3:3") anziché nell'ultima; in cella A3 devo immettere un riferimento che è quello di A4 incrementato di 1, in cella B3 quello di B4 incrementato di 1 (l'operazione di routine è questa...). I ivalori di col.A sono numeri cardinali, es. 4321, mentre i valori di col.B sono del tipo 65'432 in cul il'incremento di uno dev'essere scritto nel numero posto dopo l'apice. Usando l'utile registratore di macro, ecco il codice: Sub Incrementa_di1() Range("A3").Select ActiveCell.FormulaR1C1 = "=R[1]C" Range("B4").Select Selection.AutoFill Destination:=Range("B3:B4"), Type:=xlFillDefault Range("B3:B4").Select ActiveWorkbook.Worksheets("Foglio 1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Foglio 1").Sort.SortFields.Add Key:=Range("B4"), _ SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Foglio 1").Sort .SetRange Range("B3:B4") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub manualmente ho eseguito queste operazioni: in A3, ho scritto =A4+1 in B4, ho trascinato la cella, col valore 65'432, in B3 e ha scritto 65'431 (io però devo scrivere 65'433) allora ho fatto eseguire l'ordinamento dal più grande al più piccolo. Risultato: per eseguire 2 operazioni...15 righe di codice. Esiste un modo più "elegante" per scrivere ilcodice in meno righe?. Grazie assai e buon pomeriggio eZio
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve credo di non aver capito.. se in a3 hai posto la formula A4+1 in B4 potresti mettere questa di formule: =SINISTRA(B4;3) & VALORE(DESTRA(B4;3)+1) saluti Giap
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, a10n11 ha scritto: credo di non aver capito..
Wrong...hai capito benissimo!! :)) ... E queste figuracce sono il termometro della mia ignoranza nei confronti questa stupenda Scienza. Ignoravo completamente quell'espressione... (!!) Chiedo umilmente scusa................ :((( Obiettivo centrato, la macro funziona a meraviglia. Grazie assai, buona serata eZio
|