Como puedo hacer una Marcos que calcule una nota ligada a unos valores de celda?
Esto va ligado a la Macros anterior, luego de ingresar todas las notas pedidas por msg quiero calcular una nota final con distintas ponderaciones que dependen del cargo del trabajador, como puedo hacer eso ¿?
Respuesta de Adriel Ortiz Mangia
1
1
Adriel Ortiz Mangia, La vida es hermosa
H o l a
¿Envíame a mi Email [email protected], con ejemplos que debemos de calcular?, cual columna porque son varias.
H o l a
te paso la macro
Private Sub CommandButton1_Click()
'Por Aortiz
Set h1 = Sheets("hoja1")
Set r = h1.Columns("A")
Set b = r.Find(TextBox1, lookat:=xlWhole)
If Not b Is Nothing Then
If h1.Cells(b.Row, "C") = "secretaria" Then
h1.Cells(b.Row, "A") = Val(TextBox1)
h1.Cells(b.Row, "B") = TextBox2
h1.Cells(b.Row, "C") = TextBox3
h1.Cells(b.Row, "D") = TextBox4
h1.Cells(b.Row, "E") = Val(TextBox5)
h1.Cells(b.Row, "F") = Val(TextBox6)
h1.Cells(b.Row, "G") = Val(TextBox7)
h1.Cells(b.Row, "H") = Val(TextBox8)
h1.Cells(b.Row, "I") = Val(TextBox9)
h1.Cells(b.Row, "J") = Val(TextBox10)
h1.Cells(b.Row, "K") = Val(TextBox11)
h1.Cells(b.Row, "L") = Val(TextBox12)
h1.Cells(b.Row, "M") = Val(TextBox13)
h1.Cells(b.Row, "N") = Val(TextBox14)
h1.Cells(b.Row, "O") = Val(TextBox15)
h1.Cells(b.Row, "P") = Val(TextBox16)
h1.Cells(b.Row, "Q") = Val(TextBox17)
h1.Cells(b.Row, "R") = Val(TextBox18)
h1.Cells(b.Row, "S") = Val(TextBox19)
h1.Cells(b.Row, "T") = TextBox20
h1.Cells(b.Row, "U") = TextBox21
h1.Cells(b.Row, "V") = TextBox22
h1.Cells(b.Row, "W") = TextBox23
'
MET = 0.5
AG = 0.3
FALL = 0.2
'
Sum = (Val(TextBox6) * 0.125 + Val(TextBox7) * 0.125 + Val(TextBox8) * 0.1 + Val(TextBox9) * 0.15 + _
Val(TextBox10) * 0.2 + Val(TextBox11) * 0.2 + Val(TextBox12) * 0.2) * (MET + Val(TextBox13) * 0.2 + Val(TextBox14) * 0.2 + _
Val(TextBox15) * 0.2 + Val(TextBox16) * 0.2 + Val(TextBox17) * 0.2 + AG) + (Val(TextBox18) * 0.1 + Val(TextBox19) * 0.1 + FALL)
'
h1.Cells(b.Row, "X") = Format(Sum, "##0.00")
'
Call LIMPIAR
'
MsgBox "Datos actualizados"
ElseIf h1.Cells(b.Row, "C") = "recepcionista" Then
h1.Cells(b.Row, "A") = Val(TextBox1)
h1.Cells(b.Row, "B") = TextBox2
h1.Cells(b.Row, "C") = TextBox3
h1.Cells(b.Row, "D") = TextBox4
h1.Cells(b.Row, "E") = Val(TextBox5)
h1.Cells(b.Row, "F") = Val(TextBox6)
h1.Cells(b.Row, "G") = Val(TextBox7)
h1.Cells(b.Row, "H") = Val(TextBox8)
h1.Cells(b.Row, "I") = Val(TextBox9)
h1.Cells(b.Row, "J") = Val(TextBox10)
h1.Cells(b.Row, "K") = Val(TextBox11)
h1.Cells(b.Row, "L") = Val(TextBox12)
h1.Cells(b.Row, "M") = Val(TextBox13)
h1.Cells(b.Row, "N") = Val(TextBox14)
h1.Cells(b.Row, "O") = Val(TextBox15)
h1.Cells(b.Row, "P") = Val(TextBox16)
h1.Cells(b.Row, "Q") = Val(TextBox17)
h1.Cells(b.Row, "R") = Val(TextBox18)
h1.Cells(b.Row, "S") = Val(TextBox19)
h1.Cells(b.Row, "T") = TextBox20
h1.Cells(b.Row, "U") = TextBox21
h1.Cells(b.Row, "V") = TextBox22
h1.Cells(b.Row, "W") = TextBox23
'
MET = 0.5
AG = 0.3
FALL = 0.2
'
Sum = (Val(TextBox6) * 0.125 + Val(TextBox7) * 0.125 + Val(TextBox8) * 0.1 + Val(TextBox9) * 0.15 + _
Val(TextBox10) * 0.2 + Val(TextBox11) * 0.2 + Val(TextBox12) * 0.2) * (MET + Val(TextBox13) * 0.2 + Val(TextBox14) * 0.2 + _
Val(TextBox15) * 0.2 + Val(TextBox16) * 0.2 + Val(TextBox17) * 0.2 + AG) + (Val(TextBox18) * 0.1 + Val(TextBox19) * 0.1 + FALL)
'
h1.Cells(b.Row, "X") = Format(Sum, "##0.00")
'
Call LIMPIAR
'
MsgBox "Datos actualizados"
ElseIf h1.Cells(b.Row, "C") = "maestro de cocina" Then
h1.Cells(b.Row, "A") = Val(TextBox1)
h1.Cells(b.Row, "B") = TextBox2
h1.Cells(b.Row, "C") = TextBox3
h1.Cells(b.Row, "D") = TextBox4
h1.Cells(b.Row, "E") = Val(TextBox5)
h1.Cells(b.Row, "F") = Val(TextBox6)
h1.Cells(b.Row, "G") = Val(TextBox7)
h1.Cells(b.Row, "H") = Val(TextBox8)
h1.Cells(b.Row, "I") = Val(TextBox9)
h1.Cells(b.Row, "J") = Val(TextBox10)
h1.Cells(b.Row, "K") = Val(TextBox11)
h1.Cells(b.Row, "L") = Val(TextBox12)
h1.Cells(b.Row, "M") = Val(TextBox13)
h1.Cells(b.Row, "N") = Val(TextBox14)
h1.Cells(b.Row, "O") = Val(TextBox15)
h1.Cells(b.Row, "P") = Val(TextBox16)
h1.Cells(b.Row, "Q") = Val(TextBox17)
h1.Cells(b.Row, "R") = Val(TextBox18)
h1.Cells(b.Row, "S") = Val(TextBox19)
h1.Cells(b.Row, "T") = TextBox20
h1.Cells(b.Row, "U") = TextBox21
h1.Cells(b.Row, "V") = TextBox22
h1.Cells(b.Row, "W") = TextBox23
'
MET = 0.5
AG = 0.3
FALL = 0.2
'
Sum = (Val(TextBox6) * 0.125 + Val(TextBox7) * 0.125 + Val(TextBox8) * 0.1 + Val(TextBox9) * 0.15 + _
Val(TextBox10) * 0.2 + Val(TextBox11) * 0.2 + Val(TextBox12) * 0.2) * (MET + Val(TextBox13) * 0.2 + Val(TextBox14) * 0.2 + _
Val(TextBox15) * 0.2 + Val(TextBox16) * 0.2 + Val(TextBox17) * 0.2 + AG) + (Val(TextBox18) * 0.1 + Val(TextBox19) * 0.1 + FALL)
'
h1.Cells(b.Row, "X") = Format(Sum, "##0.00")
'
Call LIMPIAR
'
MsgBox "Datos actualizados"
End If
End If
End Sub
'
'
Private Sub TextBox1_Change()
If TextBox1.Text = "" Then
CommandButton1.Enabled = False
Else
CommandButton1.Enabled = True
End If
End Sub
'
'
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por Aortiz
If TextBox1 = "" Then Exit Sub
Set h = Sheets("hoja1") 'nombre de la hoja
Set b = h.Columns("A").Find(TextBox1, lookat:=xlWhole) 'Busca en la columna A
If Not b Is Nothing Then 'Si lo encuentra
TextBox1 = h.Cells(b.Row, "A").Value
TextBox2 = h.Cells(b.Row, "B").Value
TextBox3 = h.Cells(b.Row, "C").Value
TextBox4 = h.Cells(b.Row, "D").Value
TextBox5 = h.Cells(b.Row, "E").Value
TextBox6 = h.Cells(b.Row, "F").Value
TextBox7 = h.Cells(b.Row, "G").Value
TextBox8 = h.Cells(b.Row, "H").Value
TextBox9 = h.Cells(b.Row, "I").Value
TextBox10 = h.Cells(b.Row, "J").Value
TextBox11 = h.Cells(b.Row, "K").Value
TextBox12 = h.Cells(b.Row, "L").Value
TextBox13 = h.Cells(b.Row, "M").Value
TextBox14 = h.Cells(b.Row, "N").Value
TextBox15 = h.Cells(b.Row, "O").Value
TextBox16 = h.Cells(b.Row, "P").Value
TextBox17 = h.Cells(b.Row, "Q").Value
TextBox18 = h.Cells(b.Row, "R").Value
TextBox19 = h.Cells(b.Row, "S").Value
TextBox20 = h.Cells(b.Row, "T").Value
TextBox21 = h.Cells(b.Row, "U").Value
TextBox22 = h.Cells(b.Row, "V").Value
TextBox23 = h.Cells(b.Row, "W").Value
TextBox24 = h.Cells(b.Row, "X").Value
Else
MsgBox "El dato no existe" 'si no existe
End If
End Sub
'
'
Private Sub UserForm_Activate()
TextBox24.Enabled = False
If TextBox1.Text = "" Then
CommandButton1.Enabled = False
Else
CommandButton1.Enabled = True
End If
End Sub
Sub LIMPIAR()
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
TextBox9 = ""
TextBox10 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
TextBox14 = ""
TextBox15 = ""
TextBox16 = ""
TextBox17 = ""
TextBox18 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox24 = ""
End SubValora para finalizar saludos!
- Compartir respuesta
- Anónimo
ahora mismo