La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
ciao Marius
sono certo che si possa lanciare
usando IF NOT INTERSECT............
ma bisogna sapere quale colonna viene scritta a mano
o cambia attraverso una macro
@marius44 Si, effettivamente C è scritto a mano e D è frutto di una formula
ciao
due possibilità
la prima tieni nel modulo la macro
e sul foglio metti
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C:C]) Is Nothing Then
Call Calcola
End If
End Sub
così come scrivi il dato in C la macro si attiva
questa invece messa sul foglio (elimina la macro sul modulo)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RP As Long, i As Long
Dim mCPU As Double, mSSD As Double, mALI As Double
Dim mHD As Double, mCS As Double '<<<<<< aggiungere
mCPU = 20
mSSD = 30
mALI = 35
mHD = 10 '<<<<<<<< da modificare ammontare
mCS = 5 '<<<<<<<< da modificare ammontare
If Not Intersect(Target, [C:C]) Is Nothing Then
On Error GoTo chiudi
Application.EnableEvents = False
If Target.Offset(0, 5) <> "" Then
If UCase(Target.Offset(0, 5)) = "CPU" Then
Target.Offset(0, 1) = Target * (1.22 * (1 + (mCPU / 100)))
ElseIf UCase(Target.Offset(0, 5)) = "SSD" Then
Target.Offset(0, 1) = Target * (1 + (mSSD / 100))
ElseIf UCase(Target.Offset(0, 5)) = "ALIMENTATORI" Then
Target.Offset(0, 1) = Target * (1 + (mALI / 100))
ElseIf UCase(Target.Offset(0, 5)) = "CASE" Then
Target.Offset(0, 1) = Target * (1 + (mCS / 100))
ElseIf UCase(Target.Offset(0, 5)) = "HARD DISK" Then
Target.Offset(0, 1) = Target * (1 + (mHD / 100))
Application.EnableEvents = True
End If
End If
End If
chiudi:
Application.EnableEvents = True
End Sub
si attiva riga per riga........non le ricalcola tutte
Ho provato la prima soluzione e funziona
ciao
non è il funzionamento che mi interessava ma il modo
di lavorare delle due macro
la prima passa tutte le righe ogni volta
la seconda invece calcola solo sulla riga dove scrivi
risparmiando ricalcoli ad excel
@gianfranco55 Si, hai ragione, ma nel mio caso ricevo il listino dal mio fornitore con la colonna C già presente.
Ho provato pertanto solamente il funzionamento.
