PDA

View Full Version : [Macro VB] Rinumerare celle


Manugal
08-01-2009, 20:19
Ciao a tutti!

Non so se sono nella sezione giusta. Spero di si. Ho un foglio Excel fatto in questo modo:

id Nick
2 nick1
2 nick2
2 nick3
3 nick4
3 nick2
4 nick7
4 nick2
4 nick1
4 nick8

Vorrei capire se c'è una funzione in Excel o se devo creare una macro che mi permetta di modificare la prima colonna in questo modo.

id Nick
0 nick1
0 nick2
0 nick3
1 nick4
1 nick2
2 nick7
2 nick2
2 nick1
2 nick8

Cioè vorrei rinumerare le celle ripartendo da 0 in questo modo.
Se è necessaria una macro potreste postarmi il codice? Non conosco molto il VB. Grazie. :)

MarcoGG
08-01-2009, 21:59
Semplicissimo. Ponendo che la colonna che contiene i numeri sia la A, e che i valori vadano da A2 ad A10 :

Dim R As Range
For Each R In Range("A2:A10")
R.FormulaR1C1 = R.Value - 2
Next

Manugal
08-01-2009, 22:16
Grazie.

Sapevo che era semplice, ma non avendo conoscenze in merito non sapevo come fare. Lo proverò ;)

Ciao.

Manugal
09-01-2009, 12:40
Funziona alla perfezione. Una sola cosa. Se al posto del solo numero voglio scrivere un'apice seguito dal numero (per ogni numero)? Cioè ad esempio '3. Come devo modificare il codice?

Manugal
09-01-2009, 13:52
Non ce n'è più bisogno grazie. ;)

MarcoGG
09-01-2009, 13:59
Funziona alla perfezione. Una sola cosa. Se al posto del solo numero voglio scrivere un'apice seguito dal numero (per ogni numero)? Cioè ad esempio '3. Come devo modificare il codice?


R.FormulaR1C1 = "''" & CStr(R.Value - 2)

Attenzione però : il singolo apice va inserito 2 volte, affinchè compaia come singolo nella proprietà .Text della cella.
Nella casella Fx invece si può osservare che la cella contiene due apici singoli iniziali. Bisogna tener conto di questo successivamente se si vuole estrarre la proprietà corretta per quella cella.
Se vuoi un consiglio, scrivere apici prima di numeri è da evitare in Excel, in quento l'apice è un separatore e come tale può essere mal interpretato, anche se il formato della cella è tipo Testo... ;)

Manugal
09-01-2009, 14:14
Capito. Sei stato molto chiaro. Grazie ;)