Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, J As Long, Lr1 As Long, Lr2 As Long, Cr As Long, CrR As String
Dim Lr3 As Long, Lr4 As Long, K As Long
Lr1 = Sheets("Dashboard").Range("I" & Rows.Count).End(xlUp).Row
Lr2 = Sheets("Dashboard").Range("N" & Rows.Count).End(xlUp).Row
Lr3 = Sheets("Work").Range("A" & Rows.Count).End(xlUp).Row
Lr4 = Sheets("Paper").Range("A" & Rows.Count).End(xlUp).Row
If Intersect(Target, Range("A1:A" & Lr3)) Is Nothing Then Exit Sub
On Error Resume Next
Application.EnableEvents = False
If Target.Interior.Color = 14277081 Then
If Target.Value <> "" Then
Range("A" & Target.Row & ":G" & Target.Row + Target.Value - 1).Insert Shift:=xlDown
Target.Value = ""
End If
ElseIf Target.Interior.Color = 16777215 Then
Dim A As Double, B As Double, C As Double, D As Double, E As Double, F As Double, G As Double, H As Double
Dim I2 As String, J2 As Double, K2 As String, L As Double, M As Long, N As Long, O As Long, Lnum As Long
Dim T As String, P As Long, R As Long, S1 As Double, S2 As Double, W As Long, X As Long, Y As Long
Dim ii As Long, bb As Long, cc As String, nn As Long, ee As Double, gg As Double, Lst As String, pp As Long, rr As Long
Dim Q As Double, S As Double, U As Double, Z As Double, S3 As Double, ff As Long
''' **** For disable each line add ' symbol to disable that line at code *****
'' Note: THis remove all ALT+ENTER in The TEXT at the Cell
Range("A" & Target.Row).Value = Replace(Range("A" & Target.Row).Value, vbLf, "")
T = Range("A" & Target.Row).Value
X = Len(T) - Len(Replace(T, "&", "")) + 1
For M = X To 1 Step -1
If M < X Then
Y = Application.WorksheetFunction.Find(Chr(1), Application.WorksheetFunction.Substitute(T, "&", Chr(1), M))
Range("A" & Target.Row).Characters(Start:=Y, Length:=1).Font.Color = 16777215
Else
Y = Len(T)
End If
bb = Application.WorksheetFunction.Find(Chr(1), Application.WorksheetFunction.Substitute(Replace(T, "+", "-"), "-", Chr(1), M))
cc = Trim(Mid(T, bb, 1))
'cc = Trim(Mid(T, bb, 3))
'' Note: THis 3 row changes 1. Font size of symbols 2. Font color of them 3. font color of "&" at the end of line
' Range("A" & Target.Row).Characters(Start:=bb + 1, Length:=2).Font.Size = 1
' Range("A" & Target.Row).Characters(Start:=bb + 1, Length:=2).Font.Color = 16777215
' Range("A" & Target.Row).Characters(Start:=Y, Length:=1).Font.Color = 16777215
O = bb + 1
ff = Application.WorksheetFunction.Find("@", Mid(T, O, Y - O))
'If ff > 0 Then Debug.Print ff
For N = O To Y
If Mid(T, N, 1) = " " And IsNumeric(Mid(T, N + 1, 1)) Then P = N + 1
If IsNumeric(Mid(T, N, 1)) Or Mid(T, N, 1) = "." Or Mid(T, N, 1) = "/" Then pp = 1
If Not IsNumeric(Mid(T, N + 1, 1)) Or Mid(T, N + 1, 1) = "." And pp > 0 Then rr = 1
If pp = rr And pp > 0 Then
R = N
If Trim(Mid(T, N + 1, 1)) <> "." Then cc = cc & Trim(Mid(T, N + 2, 1))
'Debug.Print Trim(Mid(T, N + 2, 1))
End If
If Y = N Then GoTo Resum4
If R >= P And P > 0 And Mid(T, N + 1, 1) = " " Or R = Len(T) Then
If S1 = 0 Then
S1 = Mid(Replace(T, "/", "."), P, R - P + 1)
P = 0
R = 0
ElseIf S2 = 0 Then
S2 = Mid(Replace(T, "/", "."), P, R - P + 1)
P = 0
R = 0
Else
S3 = Mid(Replace(T, "/", "."), P, R - P + 1)
End If
If ff = 0 Then
If Y - N > 8 Then GoTo Resum3
If Trim(Mid(T, Y - 2, 1)) = "%" Then cc = cc & "%"
Else
If S2 > 0 Then
cc = Left(cc, 2) & "@"
Else
GoTo Resum3
End If
End If
Resum4:
Debug.Print cc
Lnum = 1
Select Case cc
'' ******************************************************************************** ''
'' Note: Case is symbols after numbers for Order at Case to calculate Based Case Type
Case "-#$$"
Z = Z + Round((S1 * S2 / S3), 2) * -1
Case "+#$$"
U = U + Round((S1 * S2 / S3), 2)
Case "+#%"
A = A + Round(S1 * (1 + S2 / 100), 2)
Case "+#$"
B = B + S1 * S2
J2 = J2 + S1
Case "-#%"
C = C + Round(S1 * (1 + S2 / 100) * -1, 2)
Case "-#$"
D = D + S1 * S2 * -1
L = L + S1 * -1
Case "+#@"
ee = ee + Round((S1 * S2) / 750, 2)
Case "-#@"
gg = gg + Round(-(S1 * S2) / 750, 2)
Case "+$"
E = E + S1 * 1
Case "+$$"
F = F + Round((S1 / S2) * 4.3318, 2)
Case "-$"
G = G + S1 * -1
Case "-$$"
H = H + Round((S1 / S2) * -4.3318, 2)
Case "+#"
Q = Q + Round(S1, 2)
Case "-#"
S = S + Round(S1, 2) * -1
End Select
'' Note: Because of Case 7 & 9 we have only one number, if change symbol
'' also at the next line should be symbol changes
If Lnum = 1 Then
S1 = 0
S2 = 0
S3 = 0
P = 0
R = 0
pp = 0
rr = 0
Lnum = 0
ff = 0
GoTo Resum1
End If
End If
Resum3:
pp = 0
rr = 0
Next N
Resum1:
Next M
'' Notes : Here I add calculated results to cells
Range("D" & Target.Row).Formula = "=Round(" & A & "+" & J2 & "+" & F & "+" & ee & "+" & Q & "+" & U & ", 2)"
Range("E" & Target.Row).Formula = "=Round(" & C & "+" & L & "+" & H & "+" & gg & "+" & S & "+" & Z & ", 2)"
Range("F" & Target.Row).Formula = "=" & B & "+" & E
Range("G" & Target.Row).Formula = "=" & D & "+" & G
'' Note: Add again ALT+ENTER to the Text at the Cell
Range("A" & Target.Row).Value = Replace(Range("A" & Target.Row).Value, "&", "&" & vbLf)
MsgBox "A1 = " & A & vbCr & "B1 = " & J2 & " // " & "B2 = " & B & vbCr & "C1 = " & C & vbCr & "D1 = " & L _
& " // " & "D2 = " & D & vbCr & "E1 = " & E & vbCr & "F1 = " & F & vbCr & "G1 = " & G & vbCr & "H1 = " & _
H & vbCr & "Q1 = " & Q & vbCr & "S1 = " & S & vbCr & "U1 = " & U & vbCr & "Z1 = " & Z
End If
For i = 3 To Lr1 - 1
Cr = Application.WorksheetFunction.Match(Sheets("Dashboard").Range("I" & i).Value, Sheets("Work").Range("A1:A" & Lr3), 0)
CrR = Range("A" & Cr).Address
Sheets("Dashboard").Range("I" & i).Hyperlinks.Delete
Sheets("Dashboard").Hyperlinks.Add Anchor:=Sheets("Dashboard").Range("I" & i), Address:="", SubAddress:="'" & Sheets("Work").Name & "'!" & CrR, TextToDisplay:=Sheets("Dashboard").Range("I" & i).Value
With Sheets("Dashboard").Range("I" & i)
.Font.Underline = xlUnderlineStyleNone
.Font.ColorIndex = xlColorIndexAutomatic
.Font.Name = "Microsoft Parsi"
.Font.Size = 14
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Next i
Application.EnableEvents = True
End Sub