PDA

View Full Version : Come velocizzare la numerazione delle righe in MS Excel o OO Calc?


phantom85
09-10-2009, 10:29
Ciao a tutti, ho bisogno di un suggerimento per semplificarmi la vita.

Ho una serie di file excel in cui, per ogni riga, dovrei inserire una numerazione progressiva. Ad esempio


1 XXXXXXXXXXXXXX
2 XXXXXXXXXXXXXXXXX
...
150 XXXXXXXXXXXXXXX

e così via.

Naturalmente in excel o calc è sufficiente inserire un numero e poi trascinare con il mouse dall'angolo in basso a destra della cella verso il basso.

Il problema è che un conto se le righe fossero un centinaio...qui si parla di file con 65000 righe :eek: e il primo file va da 1 a 65000, il secondo parte da 65001 ecc ecc :)

C'è un modo per accelerare l'operazione ed evitare che mi vengano crampi alle mani? ;D

john_revelator
09-10-2009, 10:32
Usi una banalissima macro


Sub numera()
Dim i as Long
For i = 1 To 60000
Range("a" & i).Value = i
Next i
End Sub


L'esempio che ti ho scritto, numererà le righe nella colonna A del foglio da cui viene lanciata la macro da 1 a 60000. :)

edit. In Calc, almeno per le cose banali, solitamente è sufficiente anteporre alla sub la riga

option vbasupport 1

Non l'ho testata ma credo che dovrebbe digerirla. :)

phantom85
09-10-2009, 11:18
Mi puoi gentilmente dire come inserire la macro?

john_revelator
09-10-2009, 11:50
In excel vai su strumenti -> macro -> macro, come nome macro metti ad esempio numera e premi invio. Una volta entrato nell'editor vba incolla il codice che ti ho scritto. Salva e seguendo lo stesso percorso selezioni la macro creata e la esegui. Fai attenzione che nel caso avessi dati nella colonna A verrebbero cancellati. Accertati che la colonna A sia vuota.

zuper
09-10-2009, 12:53
Il problema è che un conto se le righe fossero un centinaio...qui si parla di file con 65000 righe :eek: e il primo file va da 1 a 65000, il secondo parte da 65001 ecc ecc :)

C'è un modo per accelerare l'operazione ed evitare che mi vengano crampi alle mani? ;D

tenendo buono quello che ha detto john...

prova ad usare questa se preferisci

Sub numera()
Dim i As Long
strnameA = InputBox(Prompt:="Numerazione DA:", Title:="Numero di partenza", Default:="scrivi il numero")
strnameB = InputBox(Prompt:="Numerazione A:", Title:="Numero di arrivo", Default:="scrivi il numero")
a = 1
For i = strnameA To strnameB
Range("a" & a).Value = i
a = a + 1
Next i
End Sub

phantom85
09-10-2009, 13:07
Fantastico! :D :D :D

@john_revelator: la macro non funzia, mi dà errore di runtime e mi indica la riga "Range..."

@zuper: funzia egregiamente, grazie!!!!

john_revelator
09-10-2009, 13:44
@john_revelator: la macro non funzia, mi dà errore di runtime e mi indica la riga "Range..."


Dove non funziona, in excel o in calc?
In excel va di sicuro, in calc come dicevo non ho avuto modo di provarla.

phantom85
09-10-2009, 14:28
no io l'ho provata in excel e mi dà un errore in runtime!


Comunque grazie comunqe,ho usato quella di zuper che mi permette di inserire in ogni file inizio e fine.

Ma se volessi salvarla, senza dover inserirla ogni volta in ogni file, come dovrei fare??

phantom85
09-10-2009, 15:12
Se volessi fare una cosa simile alla numerazione, cioè poter inserire la cella di partenza e quella di fine, senza inserire un numero progressivo ma un testo sempre uguale? ad esempio "valore iniziale", come dovrei fare?

zuper
09-10-2009, 15:48
Se volessi fare una cosa simile alla numerazione, cioè poter inserire la cella di partenza e quella di fine, senza inserire un numero progressivo ma un testo sempre uguale? ad esempio "valore iniziale", come dovrei fare?



Sub numera()
Dim i As Long
strnameA = InputBox(Prompt:="Numerazione DA:", Title:="Numero di partenza", Default:="scrivi il numero")
strnameB = InputBox(Prompt:="Numerazione A:", Title:="Numero di arrivo", Default:="scrivi il numero")
a = 1
For i = strnameA To strnameB
Range("a" & i).Value = "valore da inserire"
a = a + 1
Next i
End Sub

zuper
09-10-2009, 15:54
Ma se volessi salvarla, senza dover inserirla ogni volta in ogni file, come dovrei fare??

http://ennius.interfree.it/vba/vba125.htm

ses4
09-10-2009, 19:18
Ciao a tutti, ho bisogno di un suggerimento per semplificarmi la vita.

Ho una serie di file excel in cui, per ogni riga, dovrei inserire una numerazione progressiva. Ad esempio


1 XXXXXXXXXXXXXX
2 XXXXXXXXXXXXXXXXX
...
150 XXXXXXXXXXXXXXX

e così via.

Naturalmente in excel o calc è sufficiente inserire un numero e poi trascinare con il mouse dall'angolo in basso a destra della cella verso il basso.

Il problema è che un conto se le righe fossero un centinaio...qui si parla di file con 65000 righe :eek: e il primo file va da 1 a 65000, il secondo parte da 65001 ecc ecc :)

C'è un modo per accelerare l'operazione ed evitare che mi vengano crampi alle mani? ;D
CALC:
- seleziona un intervallo pari o maggiore ai numeri da inserire
- dalla barra dei menù seleziona modifica>compila>serie
- nella finestra "Serie" compila le caselle "Valore iniziale" e, se l'intervallo selezionato è maggiore dei numeri da inserire, "Valore finale"
- dai l'ok
EXCEL:
uguale come per calc salvo che:
- devi inserire il valore iniziale nella prima cella della selezione
- dalla barra dei menù devi selezionare modifica>riempimento>serie
Ciao