View Full Version : [vba excel] contare righe selezionate non consecutive
john_revelator
11-06-2009, 10:20
Salve a tutti. Non riesco a trovare il modo di contare le righe selezionate da un foglio di excel nel caso queste non siano consecutive.
Sub copia()
Set inputcells = Application.InputBox(Prompt:="Seleziona le righe", Title:="Copia e incolla", Type:=8)
MsgBox inputcells.Rows.Count
End Sub
Se ad esempio seleziono 3 righe consecutive e altre 2 dopo una riga vuota, il msgbox mi restituisce 3, cioè il numero del primo intervallo. Come faccio a contarle tutte? Ciao e grazie. :)
Scomponi la serie di Adress restituiti in un array, e somma i vari Rows.Count :
Dim inputCells As Range
Dim arrayR() As String
Dim contaRows As Long
Set inputCells = Application.InputBox(Prompt:="Seleziona le righe", Title:="Copia e incolla", Type:=8)
arrayR = Split(inputCells.Address, ",")
Dim i As Long
For i = 0 To UBound(arrayR)
contaRows = contaRows + Range(arrayR(i)).Rows.Count
Next i
MsgBox contaRows
;)
john_revelator
11-06-2009, 11:32
Ah, ho capito. Non sapevo che venisse gestito come un array. Quindi il mio output era relativo solo al primo elemento di esso. :fagiano:
Grazie mille Marco. Ti farò un monumento. ;)
Ah, ho capito. Non sapevo che venisse gestito come un array. Quindi il mio output era relativo solo al primo elemento di esso. :fagiano:
Grazie mille Marco. Ti farò un monumento. ;)
No, non intendevo questo. La procedura di per sè non ritorna un array. E' il mio codice che prende l'Address globale restituito ( che può essere un address multi-range ) e lo scompone con la Split in un array.
Il .Rows.Count su un multi-address a quanto pare ritorna solo il conteggio righe del primo address che trova... Il che è un po' strano e deludente, ma non insormontabile, come difetto.
john_revelator
11-06-2009, 16:44
Sei stato chiarissimo come al solito. Grazie mille per la precisazione. Ciao. :)
Sei stato chiarissimo come al solito. Grazie mille per la precisazione. Ciao. :)
Ok. Ciao john, alla prossima. ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.