Como puedo hacer para crear un gráfico en código vba?
Para Dante Amor
Hola quisiera saber como puedo crear un gráfico con la columna de las notas finales, pero antes aproximar esas notas y que el gráfico tenga un rango de 1 a 5.
Lo otro, en el botón donde tengo que ingresar las notas, las notas a ingresar van de 1 a 5, y en este momento se ingresar manual, es decir, uno escribe el número, ¿cómo puedo hacer que al usuario se le despliegue la opción de 1 a 5 y escoja la nota?
1 respuesta
Respuesta de Dante Amor
2
2

Dante Amor, https://www.youtube.com/@CursosDeExcelyMacros
Te anexo el código para cargar del 1 al 5 en cada combo
Private Sub CommandButton1_Click() 'Por.Dante Amor Set h1 = Sheets("Hoja1") Set h2 = Sheets("Pondera") If IsNumeric(TextBox1) Then rut = Val(TextBox1) Else rut = TextBox1 Set b = h1.Columns("A").Find(rut, lookat:=xlWhole) If Not b Is Nothing Then fila = b.Row cargo = h1.Cells(fila, "C") Set c = h2.Columns("A").Find(cargo, lookat:=xlWhole) If Not c Is Nothing Then sum1 = (Val(ComboBox6) * h2.Cells(c.Row, "B") + _ Val(ComboBox7) * h2.Cells(c.Row, "C") + _ Val(ComboBox8) * h2.Cells(c.Row, "D") + _ Val(ComboBox9) * h2.Cells(c.Row, "E") + _ Val(ComboBox10) * h2.Cells(c.Row, "F") + _ Val(ComboBox11) * h2.Cells(c.Row, "G") + _ Val(ComboBox12) * h2.Cells(c.Row, "H")) * h2.Cells(c.Row, "I") sum2 = (Val(ComboBox13) * h2.Cells(c.Row, "J") + _ Val(ComboBox14) * h2.Cells(c.Row, "K") + _ Val(ComboBox15) * h2.Cells(c.Row, "L") + _ Val(ComboBox16) * h2.Cells(c.Row, "M") + _ Val(ComboBox17) * h2.Cells(c.Row, "N")) * h2.Cells(c.Row, "O") sum3 = (Val(ComboBox18) * h2.Cells(c.Row, "P") + _ Val(ComboBox19) * h2.Cells(c.Row, "Q")) * h2.Cells(c.Row, "R") resul = sum1 + sum2 + sum3 h1.Cells(fila, "X") = Format(resul, "##0.00") Call Cargar(h1, fila) Call Limpiar MsgBox "Datos actualizados" Else MsgBox "El cargo no existe en la hoja de ponderaciones" End If Else MsgBox "El Rut no existe" End If End Sub 'Ejemplo 'Sum = (Val(TextBox6) * (50 / (3 * 100)) + Val(TextBox7) * (50 / (3 * 100)) + Val(TextBox8) * (50 / (3 * 100)) + Val(TextBox9) * 0 + _ Val(TextBox10) * 0.3 + Val(TextBox11) * 0.2 + Val(TextBox12) * 0) * META + (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) * FALLA ' Sub Cargar(h1, fila) h1.Cells(fila, "A") = Val(TextBox1) h1.Cells(fila, "B") = TextBox2 h1.Cells(fila, "C") = TextBox3 h1.Cells(fila, "D") = TextBox4 h1.Cells(fila, "E") = TextBox5 h1.Cells(fila, "F") = Val(ComboBox6) h1.Cells(fila, "G") = Val(ComboBox7) h1.Cells(fila, "H") = Val(ComboBox8) h1.Cells(fila, "I") = Val(ComboBox9) h1.Cells(fila, "J") = Val(ComboBox10) h1.Cells(fila, "K") = Val(ComboBox11) h1.Cells(fila, "L") = Val(ComboBox12) h1.Cells(fila, "M") = Val(ComboBox13) h1.Cells(fila, "N") = Val(ComboBox14) h1.Cells(fila, "O") = Val(ComboBox15) h1.Cells(fila, "P") = Val(ComboBox16) h1.Cells(fila, "Q") = Val(ComboBox17) h1.Cells(fila, "R") = Val(ComboBox18) h1.Cells(fila, "S") = Val(ComboBox19) h1.Cells(fila, "T") = TextBox20 h1.Cells(fila, "U") = TextBox21 h1.Cells(fila, "V") = TextBox22 h1.Cells(fila, "W") = TextBox23 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) 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 ComboBox6 = h.Cells(b.Row, "F").Value ComboBox7 = h.Cells(b.Row, "G").Value ComboBox8 = h.Cells(b.Row, "H").Value ComboBox9 = h.Cells(b.Row, "I").Value ComboBox10 = h.Cells(b.Row, "J").Value ComboBox11 = h.Cells(b.Row, "K").Value ComboBox12 = h.Cells(b.Row, "L").Value ComboBox13 = h.Cells(b.Row, "M").Value ComboBox14 = h.Cells(b.Row, "N").Value ComboBox15 = h.Cells(b.Row, "O").Value ComboBox16 = h.Cells(b.Row, "P").Value ComboBox17 = h.Cells(b.Row, "Q").Value ComboBox18 = h.Cells(b.Row, "R").Value ComboBox19 = 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 RUT 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 For i = 6 To 19 For n = 1 To 5 Me.Controls("ComboBox" & i).AddItem n Next Next End Sub ' Sub Limpiar() TextBox1 = "" TextBox2 = "" TextBox3 = "" TextBox4 = "" TextBox5 = "" ComboBox6 = "" ComboBox7 = "" ComboBox8 = "" ComboBox9 = "" ComboBox10 = "" ComboBox11 = "" ComboBox12 = "" ComboBox13 = "" ComboBox14 = "" ComboBox15 = "" ComboBox16 = "" ComboBox17 = "" ComboBox18 = "" ComboBox19 = "" TextBox20 = "" TextBox21 = "" TextBox22 = "" TextBox23 = "" TextBox24 = "" End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Te anexo las macros actualizadas
Dim h1, h2 ' Private Sub CommandButton1_Click() 'Por.Dante Amor If IsNumeric(TextBox1) Then rut = Val(TextBox1) Else rut = TextBox1 Set b = h1.Columns("A").Find(rut, lookat:=xlWhole) If Not b Is Nothing Then fila = b.Row cargo = h1.Cells(fila, "C") Set c = h2.Columns("A").Find(cargo, lookat:=xlWhole) If Not c Is Nothing Then sum1 = (Val(ComboBox6) * h2.Cells(c.Row, "B") + _ Val(ComboBox7) * h2.Cells(c.Row, "C") + _ Val(ComboBox8) * h2.Cells(c.Row, "D") + _ Val(ComboBox9) * h2.Cells(c.Row, "E") + _ Val(ComboBox10) * h2.Cells(c.Row, "F") + _ Val(ComboBox11) * h2.Cells(c.Row, "G") + _ Val(ComboBox12) * h2.Cells(c.Row, "H")) * h2.Cells(c.Row, "I") sum2 = (Val(ComboBox13) * h2.Cells(c.Row, "J") + _ Val(ComboBox14) * h2.Cells(c.Row, "K") + _ Val(ComboBox15) * h2.Cells(c.Row, "L") + _ Val(ComboBox16) * h2.Cells(c.Row, "M") + _ Val(ComboBox17) * h2.Cells(c.Row, "N")) * h2.Cells(c.Row, "O") sum3 = (Val(ComboBox18) * h2.Cells(c.Row, "P") + _ Val(ComboBox19) * h2.Cells(c.Row, "Q")) * h2.Cells(c.Row, "R") resul = sum1 + sum2 + sum3 h1.Cells(fila, "X") = Format(resul, "##0.00") Call Cargar(h1, fila) Call Limpiar TextBox1.SetFocus MsgBox "Datos actualizados" Else MsgBox "El cargo no existe en la hoja de ponderaciones" End If Else MsgBox "El Rut no existe" End If End Sub ' Sub Cargar(h1, fila) h1.Cells(fila, "A") = Val(TextBox1) h1.Cells(fila, "B") = TextBox2 h1.Cells(fila, "C") = TextBox3 h1.Cells(fila, "D") = TextBox4 h1.Cells(fila, "E") = TextBox5 h1.Cells(fila, "F") = Val(ComboBox6) h1.Cells(fila, "G") = Val(ComboBox7) h1.Cells(fila, "H") = Val(ComboBox8) h1.Cells(fila, "I") = Val(ComboBox9) h1.Cells(fila, "J") = Val(ComboBox10) h1.Cells(fila, "K") = Val(ComboBox11) h1.Cells(fila, "L") = Val(ComboBox12) h1.Cells(fila, "M") = Val(ComboBox13) h1.Cells(fila, "N") = Val(ComboBox14) h1.Cells(fila, "O") = Val(ComboBox15) h1.Cells(fila, "P") = Val(ComboBox16) h1.Cells(fila, "Q") = Val(ComboBox17) h1.Cells(fila, "R") = Val(ComboBox18) h1.Cells(fila, "S") = Val(ComboBox19) h1.Cells(fila, "T") = TextBox20 h1.Cells(fila, "U") = TextBox21 h1.Cells(fila, "V") = TextBox22 h1.Cells(fila, "W") = TextBox23 End Sub Private Sub CommandButton2_Click() 'Buscar If TextBox1 = "" Then Exit Sub Set b = h1.Columns("A").Find(TextBox1, lookat:=xlWhole) 'Busca en la columna A If Not b Is Nothing Then 'Si lo encuentra TextBox1 = h1.Cells(b.Row, "A").Value TextBox2 = h1.Cells(b.Row, "B").Value TextBox3 = h1.Cells(b.Row, "C").Value TextBox4 = h1.Cells(b.Row, "D").Value TextBox5 = h1.Cells(b.Row, "E").Value ComboBox6 = h1.Cells(b.Row, "F").Value ComboBox7 = h1.Cells(b.Row, "G").Value ComboBox8 = h1.Cells(b.Row, "H").Value ComboBox9 = h1.Cells(b.Row, "I").Value ComboBox10 = h1.Cells(b.Row, "J").Value ComboBox11 = h1.Cells(b.Row, "K").Value ComboBox12 = h1.Cells(b.Row, "L").Value ComboBox13 = h1.Cells(b.Row, "M").Value ComboBox14 = h1.Cells(b.Row, "N").Value ComboBox15 = h1.Cells(b.Row, "O").Value ComboBox16 = h1.Cells(b.Row, "P").Value ComboBox17 = h1.Cells(b.Row, "Q").Value ComboBox18 = h1.Cells(b.Row, "R").Value ComboBox19 = h1.Cells(b.Row, "S").Value TextBox20 = h1.Cells(b.Row, "T").Value TextBox21 = h1.Cells(b.Row, "U").Value TextBox22 = h1.Cells(b.Row, "V").Value TextBox23 = h1.Cells(b.Row, "W").Value TextBox24 = h1.Cells(b.Row, "X").Value Else MsgBox "El RUT no existe" 'si no existe 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 UserForm_Activate() 'Act.Por.Dante Amor Set h1 = Sheets(1) Set h2 = Sheets("PONDERACIONES") TextBox24.Enabled = False If TextBox1.Text = "" Then CommandButton1.Enabled = False Else CommandButton1.Enabled = True End If For i = 6 To 19 For n = 1 To 5 Me.Controls("ComboBox" & i).AddItem n Next Next End Sub ' Sub Limpiar() TextBox1 = "" TextBox2 = "" TextBox3 = "" TextBox4 = "" TextBox5 = "" ComboBox6 = "" ComboBox7 = "" ComboBox8 = "" ComboBox9 = "" ComboBox10 = "" ComboBox11 = "" ComboBox12 = "" ComboBox13 = "" ComboBox14 = "" ComboBox15 = "" ComboBox16 = "" ComboBox17 = "" ComboBox18 = "" ComboBox19 = "" TextBox20 = "" TextBox21 = "" TextBox22 = "" TextBox23 = "" TextBox24 = "" End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
- Compartir respuesta
- Anónimo
ahora mismo
