Range Basato su titolo colonna
Hai un problema con Excel? 
Range Basato su titolo colonna
di Francesco (utente non iscritto) data: 29/10/2012 13:41:08
Ciao Ragazzi.
è possibile indicare un range ad Excel indicando il titolo di una colonna?
-cerca i valori nella colonna con titolo "esempio"-
cosi dapoter cambiare l'ordine della colonne senza compromettere la funzionalità di alcune macro.
di HarryBosch data: 29/10/2012 14:14:56
Ciao Francesco
si potrebbe cercare questo "titolo" sulla riga dell'intestazione, la prima, e quindi controllarne la colonna di riferimento.
Attenzione che se nella riga 1 non c'è nessun "Titolo" che corrisponde, il codice va in errore perchè non trova nulla la "colonna.Column"; eventualmente si può aggiustare anche qua, magari con un messaggio che avverte dell'inesistenza della colonna con tale intestazione.
nome = "Titolo"
Set colonna = Rows(1).Find(nome)
c = colonna.Column
For Each cella In Range(Cells(2, c), Cells(100, c))
...
Next
|
di Vecchio Frac data: 29/10/2012 14:33:33
In alternativa:
- evidenzia l'intera colonna interessata
- Inserisci --> Nome --> Definisci... e dai un titolo all'intera colonna (chiamandola come dici tu "esempio")
E' tutto. Adesso puoi anche spostare l'intera colonna, il range non muta: Range("esempio") si riferisce sempre a quella colonna, anche se la tagli e incolli da un'altra parte.
di Francesco (utente non iscritto) data: 29/10/2012 14:45:01
il definire il nome funziona anche con il vba? - lo conoscevo ma non sapevo che una volta definito un nome si potesse spostare a piacimento i dati
non sarebbe male Harry!! dovrei adattare il codice in maniera che cerchi il titolo.
Uhm bella dritta!
sto finendo di aggiustare il codice e poi penso proprio che pian piano inserirò la ricerca titoli cosi da renderlo più malleabile (ognuno mette colonne dov vuole )
di Vecchio Frac data: 29/10/2012 14:52:34
Funziona anche da VBA, certo:
[A:A].name = "prova"
assegna alla colonna A il nome specificato.
Dopodichè puoi riferirtivicisi come qualunque altro range:
[prova] = "hello"
di Vecchio Frac data: 29/10/2012 14:53:48
cit. " ognuno mette colonne dove vuole "
---> Questo in linea di principio non dovrebbe essere consentito ma siccome può succedere è il caso di prevederlo per impedirlo, inibirlo o almeno contenere i danni :)
di Francesco (utente non iscritto) data: 29/10/2012 15:31:08
Solo per essere chiarirmi le idee
se assegno ad A il nome prova
[A:A].name = "prova"
e poi sposto la colonna A in B excel la ritrova senza intervento?
(col ciclo di harry se la va a cercare tramite il titolo)
di Vecchio Frac data: 29/10/2012 15:48:30
Vedila così: non esiste più la colonna A o la colonna B.
Esiste un range definito "prova" che mantiene la sua identità ovunque lo si sposti nel foglio.
Quindi la risposta alla domanda è "sì".
di Francesco (utente non iscritto) data: 29/10/2012 15:56:29
Grazie capito!!!!
a tagliarmela fine dopo un pochino ci arrivo anche io ^_^
di Vecchio Frac data: 29/10/2012 15:59:20
Bè, però prova, prima.
Se ci sono problema fai sapere :)
di Francesco (utente non iscritto) data: 29/10/2012 16:19:40
si ok!! sto sistemando ultime cosine poi quando sono sicuro che tutto funzioni correttamente provo modificare il codice con le vostre indicazioni.
Vuoi Approfondire?