Discussione:
identificare ultima colonna usata del foglio
(troppo vecchio per rispondere)
federico b
2005-03-10 10:27:41 UTC
Permalink
scusate ma sono alle prime armi

come posso sapere il numero o la lettera dell'ultima colonna usata,
vorrei usare una funzione

grazie
eliano
2005-03-10 11:15:05 UTC
Permalink
Post by federico b
scusate ma sono alle prime armi
come posso sapere il numero o la lettera dell'ultima colonna usata,
vorrei usare una funzione
grazie
Ciao Federico b
Prova: http://www.ennius.altervista.org/vba/vba23.php
dovrebbe esserti utile.
Facci sapere
Eliano
ivano
2005-03-10 12:16:27 UTC
Permalink
Post by federico b
scusate ma sono alle prime armi
come posso sapere il numero o la lettera dell'ultima colonna usata,
vorrei usare una funzione
grazie
Ciao federico,
spiegaci il problema, magari facendoci sapere la struttura del tuo foglio.
Questo per poterti rispondere in maniera semplice.
ivano
fedeb
2005-03-10 13:11:48 UTC
Permalink
Post by ivano
Post by federico b
scusate ma sono alle prime armi
come posso sapere il numero o la lettera dell'ultima colonna usata,
vorrei usare una funzione
grazie
Ciao federico,
spiegaci il problema, magari facendoci sapere la struttura del tuo foglio.
Questo per poterti rispondere in maniera semplice.
ivano
vorrei scrivere una funzione che possa essere utilizzata sempre.
riesco a contare le colonne con UsedRange ma se per esempio le prime 2 non
sono usate non le conta e il conteggio è errato.

pensavo ci fosse una funzione base di excel che lo faceva, mi sembra
importante

ho guardato anche il sito che mi è stato suggerito da eliano ma incappo
sempre nel UsedRange.

Grazie comunque anche se non si può fare


Federico
eliano
2005-03-10 14:21:03 UTC
Permalink
Post by fedeb
vorrei scrivere una funzione che possa essere utilizzata sempre.
riesco a contare le colonne con UsedRange ma se per esempio le prime 2 non
sono usate non le conta e il conteggio è errato.
pensavo ci fosse una funzione base di excel che lo faceva, mi sembra
importante
ho guardato anche il sito che mi è stato suggerito da eliano ma incappo
sempre nel UsedRange.
Ciao Fede, ciao Ivano.
Non credo che tu abbia letto attentamente il sitgo consigliato del quale ti
riposto un estratto:

La sintassi appena vista ci torna utile quando vogliamo selezionare un
intervallo SENZA conoscere la cella finale. E' il caso ad esempio di un
elenco che iniziando dalla cella A1, e venendo aggiornato con frequenza
aggiungendo dati nelle righe, varia continuamente la lunghezza rendendo
impossibile predeterminare la cella finale. In questo caso ci serviremo della
funzione End, che rintraccia l'ultima cella occupata, partendo dalla cella
iniziale. Potremo usare sia Range che Cells, vediamo i casi:

Range(Range("A1"), Range("A1").End(xlDown)).Select o l'equivalente:

Range([A1], [A1].End(xlDown)).Select o l'equivalente:

Range(Cells(1, 1), Cells(1, 1).End(xlDown)).Select

Non mi pare che si parli di usedrange e, garantito al limone la selezione
riguarda tutte le celle utilizzate da A1 alla fine del foglio.
Comunque ti saremmo grati se volessi rispondere a Ivano, cha saluto
cordialmente, in modo che tu possa ricevere tutte le risposte che desideri,
sempre che ne siamo capaci.
Ciao
Eliano
Ignazio
2005-03-10 16:55:01 UTC
Permalink
Post by fedeb
vorrei scrivere una funzione che possa essere utilizzata sempre.
riesco a contare le colonne con UsedRange ma se per esempio le prime 2 non
sono usate non le conta e il conteggio è errato.
pensavo ci fosse una funzione base di excel che lo faceva, mi sembra
importante
ho guardato anche il sito che mi è stato suggerito da eliano ma incappo
sempre nel UsedRange.
Ciao Federico,
ecco un possibile uso di UsedRange in una routine:

Sub UltimaColonnaUsata()
Dim NumCol As Integer
With Foglio1.UsedRange
NumCol = .Column + .Columns.Count - 1
End With
End Sub

Ma forse tu vorresti una funzione da usare direttamente in Excel.
Allora si potrebbe definire la funzione utente:

Function UltimaColonna(NomeFoglio As String)
Application.Volatile True
With Worksheets(NomeFoglio).UsedRange
UltimaColonna = .Column + .Columns.Count - 1
End With
End Function

Se nella cella A1 scrivi il nome di un foglio della tua cartella di lavoro,
la formula:
=UltimaColonna(A1)
ti fornirà il numero dell'ultima colonna utilizzata nel foglio in questione.

Facci sapere
--
Ciao
Ignazio
Mauro Gamberini
2005-03-10 15:05:57 UTC
Permalink
Post by federico b
come posso sapere il numero o la lettera dell'ultima colonna usata,
vorrei usare una funzione
Public Sub m()

Dim rng As Range
Dim nc As Long
Dim c As Range

Set rng = ActiveSheet.UsedRange

For Each c In rng
nc = nc + 1
Next

MsgBox rng(nc).Column

Set rng = Nothing

End Sub

Qui hai il numero della colonna in una TextBox.
--
----------------------------
Mauro Gamberini
eliano
2005-03-10 15:31:02 UTC
Permalink
Post by Mauro Gamberini
Public Sub m()
Ciao Mauro,
la mia è più artigianale:

Sub areagenerale()
' questa seleziona tutte le celle dell'ultima colonna utilizzata
Dim R, C
R = ActiveSheet.UsedRange.Rows.Count
C = ActiveSheet.UsedRange.Columns.Count
' cambiando i riferimenti R e C qui sotto selezioni quello che vuoi
Range(Cells(1, C), Cells(R, C)).Select
End Sub

Come vedi Fede, l'usedrange non era il problema.
Facci sapere,
Eliano
Tiziano Marmiroli
2005-03-10 17:41:17 UTC
Permalink
Post by federico b
come posso sapere il numero o la lettera dell'ultima colonna usata,
vorrei usare una funzione
Per sapere il numero dell'ultima colonna usata della riga 1

=MAX((1:1<>"")*RIF.COLONNA(1:1))

Per sapere la lettera

INDIRIZZO(1;MAX((1:1<>"")*RIF.COLONNA(1:1)))


N.B. Si tratta di formule in forma di matrice, quindi dopo averle
digitate anziché premere invio devi premere CTRL+MAIUSC+INVIO.
--
Tiziano Marmiroli
Microsoft MVP - Office
Loading...