PDA

Visualizza la versione completa : Macro VBA - Excel


Sclerato
18-09-2002, 20:08
Un saluto prima di tutto....

Poi il problema....

Ho una selezione di N celle, disposte in verticale, sulla stessa colonna.

Devo trovare la riga iniziale e quella finale.
Per la prima mi basta fare ActiveCell.Row, ma non so trovare l'ultima.
Come faccio?

Help!

Grazie
Skle'

Sclerato
18-09-2002, 20:32
Ci sto lavorando adesso...
e ho incontrato l'ennessimo problema, stupido penso...

Se metto tramite VBA questa formula:
Cells(RifRiga, RifColonna).Formula = "=CONTA.NUMERI" & StringaRange
dove:
StringaRange ="(K56:K70)"

per cui la stringa della formula diventa:
=CONTA.NUMERI(K56:K70)
che per excel e' giusta...

Mettendola tramite script mi esce #NOME? nella cella.... perche'??
Poi se edito la formula normalmente da excel, premendo enter, e lasciandola tale e quale, funziona !

:bh:

Sclerato
18-09-2002, 20:44
Originariamente inviato da McAuriel V
odio questo tipo di linguaggio

Pure io... pero' devo usare excel per forza...

cmq uno spunto .. puoi ricavare quante celle sono selezionate? no nquali.. quante?
se sai quante e sai l'ultima o la prima... l'altra si ricava con una semplice somma...

Non so... magari si puo' ricavare, pero' io non so come... :(
Trovando quante, sarebbe fatta....

daryl74
18-09-2002, 23:40
Per la prima cella:

Se la prima cella che ti interessa selezionata... allora:

(Cella iniziale).Select
PrimaRiga = Activecell.Row
Selection.End(xlDown).Select
UltimaRiga = ActiveCell.Row

Ciao

Daryl74

Sclerato
19-09-2002, 12:49
Originariamente inviato da daryl74
Per la prima cella:

Se la prima cella che ti interessa selezionata... allora:

(Cella iniziale).Select
PrimaRiga = Activecell.Row
Selection.End(xlDown).Select
UltimaRiga = ActiveCell.Row

Ciao

Daryl74

Ho provato, ma non funziona...
ho meglio il comando End, mi pare di aver capito, che prende si' l'ultima cella della selezione, ma l'ultima in cui ci sia qualcosa dentro.
A me serve sapere l'ultima, in modo incondizionato dal contnuto.

Spero di essermi riuscito a spiegare :)

Grazie comunque Daryl
Attendo altre soluzioni, se ne avete.
Skle'

Sclerato
19-09-2002, 23:54
UP:quote:

daryl74
20-09-2002, 10:16
Cosa vuol dire in modo incondizionato dal contenuto???

Hai tutte celle piene (es. da A15 ad A39) oppure ci sono celle vuote in mezzo (piene da A15 a A21 e piene da A25 ad A39) ????

Se non hai celle vuote all'interno dell'elenco il codice che ti ho dato funziona benissimo...

Se invece hai delle celle vuote e vuoi trovare l'ultima cella piena di quella colonna allora:

Range("A65535").select
Selection.End(xlUp).Select
UltimaRiga = ActiveCell.Row

Tutto qst funziona ovviamente se parliamo di una sola colonna...

Ciao

Daryl74

Sclerato
20-09-2002, 11:38
Non ho ancora provato... ma forse l'ultimo codice che hai scritto funziona....

Parlando di una sola colonna, seleziono delle celle, e mi serve sapere la prima e l'ultima riga della selezione, sia che nelle celle ci sia scritto qualcosa oppure no.

Forse sono riuscito a spiegarmi stavolta.... :fagiano:

Comunque, ora provo l'ultimo che hai scritto, e vedo se va bene.
In caso poi ti chiedo ancora aiuto :D
Grazie mille per ora Daryl

Skle'

Sclerato
20-09-2002, 20:20
Grazie di nuovo daryl per l'aiuto..

Ho risolto inserendo uno spazio, nelle celle che devono rimanere vuote. Altrimenti con il codice che mi hai dato si ferma, quando incontra la prima vuota.

Bene lo stesso.

Ciao
Skle':metallica

Sclerato
20-09-2002, 20:25
Ah...
gia' che ci sono scrivo anche l'altro problemino che ho, e' una stupidata ma e' molto noioso.

Inserisco delle formule, in alcune celle, attraverso vba. Sebbene la sintassi delle formule sia corretta, una volta inserite, mi esce nelle celle stesse #NOME? al posto del risultato.

E non so perche' !!

Infatti mi basta, andare nel foglio excel, entrare nella cella e premere invio (senza cambiare la formula scritta in vba), perche' la formula funzioni normalmente.

A cosa e' dovuto sta disfunzione??
E' fisiologica? :D

se mi vuoi ancora aiutare daryl, te ne saro' grato..

ciao

Loading