Tasto CommandButton numerazione progressiva
Hai un problema con Excel? 
Tasto CommandButton, numerazione progressiva.
di Diego (utente non iscritto) data: 11/02/2014 18:11:05
Buona sera a tutti i partecipanti.
Speriamo che qualcuno posso darmi una mano.
Il fine di questa inserzione è di risolvere un piccolo problemino che ho su di un file excel, per esempio:
"sulla colonna B del foglio1 in cella B5 devo inserire un numero molto lungo 123456789",
quello che vorrei e una numerazione progressiva automatica su due range del foglio1,
esempio da B6:B20, e B25:B45.
Avrei bisogno di una macro in grado di inserire il numero da me voluto cliccando sul tasto commandButton in cella B5 del foglio1 in modo che appaia una finestrella che mi chieda di inserire il numero che voglio io 123456789 in cella B5, per far si che si prosegua nella numerazione progressiva dei due range in colonna B6:B20, e B25:B45.
Qualcuno puo' aiutarmi?
Grazie a tutti.
di Vecchio Frac data: 11/02/2014 18:56:19
Se è come credo di aver capito, prova ad associare questo codice al tuo command button e farà quello che chiedi, con i range sistemati come ho visto nel file.
Da perfezionare... risultati imprevedibili, ad esempio, se premi Annulla (o il tasto ESC) sull'Inputbox ^_^
Private Sub CommandButton1_Click()
Range("B5") = InputBox("Inserisci un numero di partenza.")
Range("B6:B20").Formula = "=R[-1]C+1"
Range("B6:B20").Value = Range("B6:B20").Value
Range("B25") = Range("B20") + 1
Range("B26:B45").Formula = "=R[-1]C+1"
Range("B26:B45").Value = Range("B26:B45").Value
End Sub |
di Diego (utente non iscritto) data: 11/02/2014 19:19:15
Il tuo nome dice tutto, la sai molto lunga.....
è perfetto funziona alla grande, un grazie mille, credo non basti.....
Quindi se volessi continuare la progressione con altri range in colonna B, devo aggiungere modificando questo:
Range("B25") = Range("B20") + 1
Range("B26:B45").Formula = "=R[-1]C+1"
Range("B26:B45").Value = Range("B26:B45").Value
dico bene proseguendo con i riferimenti..
Ciao Diego
di Vecchio Frac data: 11/02/2014 21:27:00
cit. "Il tuo nome dice tutto, la sai molto lunga"
---> Per dirti quanto tutto sia sempre relativo, ogni volta che appare una discussione nuova e viene risolta, io imparo sempre qualcosa di più grazie agli interventi degli altri che mi sembrano sempre molto più competenti di me ^_^
Nel merito di questa tua esigenza, direi che hai intuito bene il meccanismo; il trucco è impostare la formula "scrivi il successivo della cella sopra di me" in tutte le celle del range desiderato (così come la vedi in stile R1C1), il risultato della formula viene consolidata con quella bizzarra assegnazione range(...).Value = range(...).Value; se devi saltare alcune celle basta avere l'accortezza di impostare la prima cella del nuovo range al valore dell'ultima cella del range precedente ovviamente aumentato di 1.
di Diego (utente non iscritto) data: 12/02/2014 05:06:41
Ancora grazie sei stato veramente di grande aiuto,
devo dire che è veramente uno dei pochissimi forum dove le persone come te si mettono a disposizione per risolvere problemi sulle macro di VBA.
Diego.
di Vecchio Frac data: 12/02/2014 09:51:36
cit. "si mettono a disposizione"
---> Ricevo grande gratificazione dal tuo apprezzamento, tutti quelli che validamente prestano la loro opera qui condividono lo stesso spirito di collaborazione e quindi ti ringrazio a nome di tutti ^_^
Del resto è una comunità aperta e chiunque può, senza particolari investiture, mettersi a disposizione. Anzi, ti invito a farlo e ad intervenire in discussioni altrui senza timore di "sbagliare" ^_^
Vuoi Approfondire?