Ciao Vladimiro,
tramite un pulsante vorrei inserire il contenuto della cella F28, con risultato => 0 nella prima cella vuota nell'intervallo S7 : S25 e < 0 nella prima cella vuota nell'intervallo T7 : T25
L'intervallo di celle S7 : T25 ha celle unite a due a due.
Esempio:
al primo click del pulsante, se il numero che si trova nella cella F28 risulta positivo, si dovrà posizionare nella cella S7
al secondo click del pulsante, se il numero che si trova nella cella F28 risulta ancora positivo, si dovrà posizionare nella cella S9
al terzo click del pulsante, se il numero che si trova nella cella F28 risulta negativo, si dovrà posizionare nella cella T11
al quarto click del pulsante, se il numero che si trova nella cella F28 risulta positivo, si dovrà posizionare nella cella S13
In un modulo standard, incolla il seguente codice:
'========>>
Option Explicit
'--------->>
Public Function LastRow(SH As Worksheet, _
Optional Rng As Range, _
Optional minRow As Long = 1)
If Rng Is Nothing Then
Set Rng = SH.Cells
End If
On Error Resume Next
LastRow = Rng.Find(What:="*", _
After:=Rng.Cells(1), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
If LastRow < minRow Then
LastRow = minRow
End If
End Function
'<<========
Nel modulo di codice del foglio di interesse, incolla:
'========>>
Option Explicit
'-------->>
Private Sub CommandButton1_Click()
Dim rCell As Range
Dim LRow As Long
Set rCell = Me.Range("F28")
With rCell
If .Value > 0 Then
LRow = LastRow(Me, Me.Range("S7:S25"), 5) + 2
If LRow - 2 >= 25 Then Exit Sub
Me.Range("S" & LRow).Value = .Value
ElseIf .Value < 0 Then
LRow = LastRow(Me, Me.Range("T7:T25"), 5) + 2
If LRow - 2 >= 25 Then Exit Sub
Me.Range("T" & LRow).Value = .Value
End If
End With
End Sub
'<<========
Potresti scaricare il mio file di prova Vladimiro20200819.xlsm
===
Regards,
Norman
