Contare Celle Tra Numeri Doppi
Hai un problema con Excel? 
Contare Celle Tra Numeri Doppi
di Kirotta data: 18/04/2014 22:52:00
Ciao a tutti
Su una form ho una casella di testo e un bottone che inserisce i numeri che digito nella casella di testo nella colonna B di un foglio excel
quindi può capitare di inserire numeri uguali.
Se questo capita vorrei che il programma mi conti quanti numeri vengono inseriti tra un numero e il suo doppione (compreso) e se questo si ripresenta prima di 18 numeri venga copiato in un'altra colonna.
Se ad es ho il 5 in B3 e inserisco ancora 5 in B10........ il 5 si è ripresentato prima di 18 numeri quindi lo copio in colonna C
questa è una bozza di codice da visionare:
Grazie
Option Explicit
Private Sub cmdStart_Click()
Dim LR As Integer
LR = Cells(Rows.Count, "B").End(xlUp).Row + 1 'INSERISCO I NUMERI NELLA COLONNA B
Sheets(1).Cells(LR, 2) = Val(txtStart)
'-----------------------------------------------------------------------------------------------------------------------
With Sheets(1)
Dim Area As Range
Dim Numero As Integer
Dim LRC As Integer
Set Area = .Range("B2:B" & LR)
Numero = Val(txtStart)
LRC = Cells(Rows.Count, "C").End(xlUp).Row + 1
Dim ciclo As Long
'VERIFICO SE IL NUMERO è GIà PRESENTE IN COLONNA "B"
For ciclo = LR - 1 To LR - 18 Step -1
If ciclo < 1 Then
Exit For
If CLng(txtStart) = .Cells(ciclo, 2).Value Then
.Cells(LRC, 3).Value = CLng(txtStart)
'.Cells(ciclo, 3).Value = CLng(txtStart)
Exit For
End If
End If
Next
End With
End Sub
|
di scossa data: 18/04/2014 23:40:41
Senza entrare nel merito del codice, questa modifica dovrebbe limitare la ricerca alle 18 celle precedenti.
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
Private Sub cmdStart_Click()
Dim LR As Integer
Dim Area As Range
Dim Numero As Integer
Dim LRC As Integer
Dim nOff As Long
LR = Cells(Rows.Count, "B").End(xlUp).Row + 1 'INSERISCO I NUMERI NELLA COLONNA B
Sheets(1).Cells(LR, 2) = Val(txtStart)
'-----------------------------------------------------------------------------------------------------------------------
With Sheets(1)
nOff = Application.Min(17, LR) - 1
Set Area = .Range("B" & nOff & ":B" & LR)
Numero = Val(txtStart)
LRC = Cells(Rows.Count, "C").End(xlUp).Row + 1
'VERIFICO SE IL NUMERO è GIà PRESENTE IN COLONNA "B"
If Application.WorksheetFunction.CountIf(Area, Numero) > 1 Then
.Cells(LRC, 3) = Val(txtStart)
End If
End With
Set Area = Nothing
End Sub
|
di Kirotta data: 19/04/2014 01:50:28
copia nella colonna solo digitando numeri consecutivi
Se digito 2 2 4 3 6 12 3
il 2 lo copia nella colonna mentre il 3 no
Grazie
di scossa data: 19/04/2014 09:44:33
Vero,
l'istruzione colpevole è questa:
nOff = Application.Min(17, LR) - 1
sostituiscila con questa:
nOff = IIf(LR - 17 < 2, 2, LR - 17)
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
di Kirotta data: 19/04/2014 17:01:41
PERFETTO!!!
Grazie
Vuoi Approfondire?