En Macro Excel Para edición datos de identificación Empresa
Te envíe nuevo archivo, precisamente el que me acabas de enviar te lo renvie para que sea desde ese que es el completo.
En la hoja dejo una descripción, espero Dios me ayude para que se entienda l oque expuse
1 respuesta
H o l a:
No creo que Él pueda ayudarte, tienes que ayudarte tu mismo.
¿Esto qué pusiste es una petición? ¿O simplemente una explicación?
"Marcar el CheckBox1 "Marca para insertar datos finales", llenar los textBox 6 al 12 con datos y luego pisar el boton Insertar"
No seas tan breve en la explicación, escribe un enunciado por cada paso que quieres realizar.
Paso 1, abrir formulario.
Paso 2, presionar el xxxxxxx
Paso 3, llenar los campos a,b,c,d,e,f,etc
Paso 4, etc, etc, etc,
Tienes que hacer una lista.
Antes de enviarme cualquier explicación, realiza el siguiente ejercicio.
Qué pasos realizarías para cambiar una llanta o neumático de un automóvil, escribe paso por paso.
Escribe el ejercicio y después continuamos con tu macro.
Amigo DAM, en la hoja dejé explicito (creo) lo que pretendo ahora, EDITAR, datos de identificación de las celdas C8, E8, J8, D9, G9 y K9 y D46
La parte Inserción y edición de datos (producto (rango D11 al D45)) ya lo hace y muy bien, olvidemos esa parte, falta la EDICIÓN de datos identificativos, EDICIÓN porque la inserción ya lo haceLa edición de los datos identificativos aun no lo haceAquí va el procedimiento (ejecución) paso por paso de como debe procederse para tal fin 1º Abrir Form (si no esta abierto)2º Marcar el CheckBox1 "Marca para insertar datos finales" y LLENAR el ComboBox1 con el dato de la celda K9 o E8 o J8. Cualquier de las 3 sirve una3º Seleccionar el dato en el ComboBox1 y llenar los textBox 6 al 12 con datos de las respectivas celdas C8, E8, J8, D9, G9 y K9 y D46Se debe ver así:C8 = TextBox6, E8 = TextBox7, J8 = TextBox8, D9 = TextBox9, G9 = TextBox10, K9 = TextBox11 y D46 = TextBox124º Hacer la corrección (EDICIÓN (manualmente)) en los TextBoxs y LUEGO VALIDAR con el botón "INSERTAR"
Leí este tu mensaje anterior y me pareció no tener que responder a ello, pero volví y aquí estoy respondiéndote, un tanto receptivo y otro tanto mmmmm.
Soy una persona con 68 años y cambie mucho neumático de mi carro, siempre que se espichaba y tenía que cambiarlos por X motivo.
En esto de macros, no soy experto, técnico o sabio, por lo contrario, soy nulo en esto y por tal motivo, recurrí a ti como siempre he visto que eres una persona amiga y altruista para ayudarme (darme tu experiencia) en estos asuntos y otros (muchos) en los cuales has estado presente con tu sabiduría.
Usé el tiempo en estudios de otra índole, mecánica diésel y pesada, (maquinaria pesada) oficio que me gusta, aun hoy ejerzo con gusto, no tanto como cuando tenía mis 20, 30, 40, 50 años pero aún le doy duro, pues mi sobrevivencia y de mi familia, dependen de mi trabajo, camino en esto desde mis 16 años, tengo 68.
El procedimiento para llegar a Editar los datos de las celdas referidas te lo he enviado, no conozco el código ni me encuentro capacitado para tal construcción.
Me disculpo ante ti DAM y te pido perdón por estas palabras y por mi falta de conocimiento en estos menesteres de macros o todo que tenga que ver con macros, formulas etc. DE VERDAD, VERDAD, ya estoy en neutro porque no encuentro otra forma o manera de indicarte el procedimiento para poder EDITAR las celdas C8, E8, J8, D9, G9 y K9 y D46 desde el formulario de la forma, manera y procedimiento que te he pedido, ¿proceder para cambiar una llanta?, (neumático, caucho, rueda de carro, etc.), aun lo hago cuando se me presenta algún problema de ese tipo, antier con ayuda tuvimos que cambiar uno de un PayLoader 992H Caterpillar que es más alto que tú y que yo mismo y mas de 1 metro de ancho.
espero contar con tu experiencia y sabiduria en estos menesteres
H o l a:
No tienes que disculparte, con todo gusto te ayudo a lo que necesites. De hecho jamás te he pedido que me expliques las macro o cómo tengo que hacer la macro, lo único que pido es que me expliques paso a paso lo que necesitas, el ejercicio del neumático es muy básico y no quieres explicarlo, no sé por qué. Si no puedes escribir un ejercicio de cambio de neumático entonces tampoco querrás escribir un ejercicio para el proceso de excel.
Recuerdo que estoy aquí para ayudarte, pero si no me ayudas a ayudarte, no puedo adivinar qué es lo que quieres.
No te pido que seas experto en macros o en excel, solamente tienes que hacer una lista de pasos, así de simple, pones el paso1 y un enunciado, pones el paso2 y otro enunciado y así hasta llegar al paso final.
Paso 1, reviso cuál es la llanta que se averió.
Paso 2, abro la cajuela del auto.
Paso 3, saco la herramienta.
Paso 4, saco la llanta buena
Paso 5, etc
Paso 6, etc.
Te invito a que hagas el ejercicio conmigo.
Sal u dos.
HA ha, ahi voy
No te pido que seas experto en macros o en excel, solamente tienes que hacer una lista de pasos, así de simple, pones el paso1 y un enunciado, pones el paso2 y otro enunciado y así hasta llegar al paso final.
Si voy en marcha y me doy cuenta de que algo malo está pasando con una llanta
Paso 1, Paro el auto en una parte donde no cause peligro y tenga seguridad
Paso 2, Salgo del auto
Paso 3, reviso cuál es la llanta que se averió.
Paso 4, coloco señal en la vía a una distancia reglamentaria
Si esta estacionado el auto o en el garaje y veo que tiene una llanta espichada o mala
Paso 1, abro la cajuela del auto.
Paso 2, saco la herramienta.
Paso 3, levanto el carro del lado de la llanta mala,
Paso 4, suelto la llanta mala y la aparto
Paso 5, saco la llanta buena de la cajuela (maleta se dice acá)
Paso 6, meto la llanta mala en la cajuela
Paso 7, coloco la llanta buena donde quite la mala
Paso 8, Aprieto los seguros de la llanta
Paso 9, bajo el carro
Paso 10, meto la herramienta en la cajuela
Paso 11, cierro la cajuela
Paso 12, si voy de viaje, chequeo y completo niveles de todos los puntos visibles y de fácil acesso como aceite, refrigerante, líquido de frenos, aceite de la caja de velocidades y nivel de gasolina (gas)
Todo está perfecto
Paso 13, me siento en el puesto del piloto
Paso 14, pongo el motor en marcha
Paso 15, meto velocidad de 1ª marcha y
Paso 16, me marcho de viaje para unas vacaciones y olvidarme de este mundo cruel
Jejejjeee
Lo propio
Te lo hice
1º Paso = Abrir Form (si aún no está abierto)
2º Paso = Marcar el CheckBox1 "Marca para insertar datos finales" y LLENAR el ComboBox1 con el dato de la celda K9 o E8 o J8. Cualquier de las 3 sirve una
3º Paso = Seleccionar el dato en el ComboBox1 y llenar los textBox 6 al 12 con datos de las respectivas celdas C8, E8, J8, D9, G9 y K9 y D46
Se debe ver así: C8 = TextBox6, E8 = TextBox7, J8 = TextBox8, D9 = TextBox9, G9 = TextBox10, K9 = TextBox11 y D46 = TextBox12
4º Paso = Hacer la corrección (EDICIÓN (manualmente)) en los TextBoxs y LUEGO VALIDAR con el botón "INSERTAR"
5º Paso Cerrar el formulario
Te anexo el código:
Private Sub CheckBox2_Click()
'Act.Por.Dante Amor
Dim i
'
'Si está activo el check de datos de identificación,
'entonces es para modificar los datos de identificación
If CheckBox2 And CheckBox1 Then
TextBox6 = Range("C8") 'Fecha
TextBox7 = Range("E8") 'Nombre Empresa
TextBox8 = Range("J8") 'Repuestos para
TextBox9 = Range("D9") 'Serial Maq/Mot.
TextBox10 = Range("G9") 'Marca
TextBox11 = Range("K9") 'Modelo/Ident.
TextBox12 = Range("D46") 'Notas
Exit Sub
End If
'
If CheckBox2 Then
ComboBox1.Enabled = True
'carga nuevamente el combo por los registros nuevos
ComboBox1.clear
For i = 11 To Range("B" & Rows.Count).End(xlUp).Row
ComboBox1.AddItem Cells(i, "D")
Next
Else
ComboBox1.Enabled = False
TextBox1 = "": TextBox2 = "": TextBox3 = "": TextBox4 = "": TextBox5 = "": ComboBox1 = ""
End If
End Subsal u dos
Como dicen por las calles; no se que haría sin tu ayuda jajajajjaja
Mui pero mui bien peeeeeeeeeero, raios, nunca falta un pero:
Entonces no hace falta el Combo para la edición de datos identificativos pero para producto si.
Voy hacer yo para cuando marque el CheckBox 2 para la edición de datos identificativos, el Combo no sea visible, visible solo para la edición de datos producto.
Gracias maestro. No me calificaste por lo del axamen del cambio de llanta (caucho)
Tienes Excelente en el cambio de llantas.
Pero, siempre hay un pero como tú dices, jajaja.
Si ponemos tu secuencia de pasos en una Estructura o en una Jerarquía de vas a dar cuenta qué va primero y qué va después.
En tu secuencia de pasos, solamente cambiaría el paso 6 por el paso 7.
En la siguiente estructura verás por qué:
Paso 1, abro la cajuela del auto. Paso 2, saco la herramienta. Paso 3, levanto el carro del lado de la llanta mala, Paso 4, suelto la llanta mala y la aparto Paso 5, saco la llanta buena de la cajuela (maleta se dice acá) Paso 7, coloco la llanta buena donde quite la mala Paso 6, meto la llanta mala en la cajuela Paso 8, Aprieto los seguros de la llanta Paso 9, bajo el carro Paso 10, meto la herramienta en la cajuela Paso 11, cierro la cajuela
El paso 1 con el 11 (abro - cierro)
El paso 2 con el 10 (saco - meto)
El paso 3 con el 9 (levanto - bajo)
El paso 4 con el 8 (suelto - aprieto)
El paso 5 con el 6 (saco - meto)
El paso 7 coloco la llanta.
No se necesita ser experto en macros o en excel para realizar una lista de pasos y que estos pasos tenga una lógica.
Si me explicas con pasos de forma lógica, yo puedo identificar en dónde empieza la tarea y en dónde termina, pero si me pones todo revuelto, solamente trataré de adivinar (poder divino), lo que realmente quieres.
Gracias por hacer el ejercicio de la llanta, espero que con la explicación de la estructura puedas ver que, así como el cambio de la llanta, también en excel se tiene que poner cuidado de cuando inicias y cuando terminas.
Sal u dos
Podrías colocar la(s) línea(s) necesarias para cuando edite un dato de Productos, se atualise en el Combo también.
Se da el caso que edito un producto, Botón Insertar se actualiza en la hjoja pero no se actualiza en el Combo.
Coloque las líneas del evento UserForm_Initialize() para el llenado del combo en evento Insertar em este punto
Else
'Productos
If CheckBox2 Then
'modifica producto
u = ComboBox1.ListIndex + 11
ComboBox1.clear
For Each celda In Range("D11:d" & Range("B" & Rows.Count).End(xlUp).Row)
If celda <> Empty Then ComboBox1.AddItem celda.Value
Next
Elsepero no me sale
Ahí va el código:
Private Sub cmbInsertar_Click()
'Por.Dante Amor http://www.todoexpertos.com/preguntas/6dfdswlh5iak7bjd/correccion-para-macro-excel-para-insertar-datos-mandando-error
'Obligar a llenar las cajas del 6 al 9
Dim vcs, vtx, i, LastRow, u
Application.ScreenUpdating = False
If CheckBox1 Then
'inserta datos empresa
If TextBox6 = "" Or TextBox7 = "" Or TextBox8 = "" Or TextBox9 = "" Then
MsgBox "Completar los datos", vbExclamation
TextBox6.SetFocus
Exit Sub
End If
'
If Not IsDate(TextBox6) Then
MsgBox "Capturar una fecha válida", vbExclamation
TextBox6.SetFocus
Exit Sub
End If
'
Range("C8") = TextBox6 'Fecha
Range("E8") = TextBox7 'Nombre Empresa
Range("J8") = TextBox8 'Repuestos para
Range("D9") = TextBox9 'Serial Maq/Mot.
Range("G9") = TextBox10 'Marca
Range("K9") = TextBox11 'Modelo/Ident.
Range("D46").Value = Left(TextBox12.Value, 450) 'Notas
Else
'Productos
If CheckBox2 Then
'modifica producto
u = ComboBox1.ListIndex + 11
Else
'inserta producto
u = Range("b" & Rows.Count).End(xlUp).Row + 1
End If
Cells(u, "B") = TextBox1 'Item #
Cells(u, "C") = TextBox2 'Producto #
Cells(u, "D") = TextBox3 'Descripcion del Producto
Cells(u, "J") = Val(TextBox4) 'Cant.
Cells(u, "K") = TextBox5 'Pagina #
'
ComboBox1.clear
For i = 11 To Range("B" & Rows.Count).End(xlUp).Row
ComboBox1.AddItem Cells(i, "D")
Next
End If
'ActiveSheet.Protect Password:="123"
Application.ScreenUpdating = True
TextBox1 = "": TextBox2 = "": TextBox3 = "": TextBox4 = "": TextBox5 = "": TextBox6 = "": _
TextBox7 = "": TextBox8 = "": TextBox9 = "": TextBox10 = "": TextBox11 = "": TextBox12 = ""
ComboBox1 = ""
End Subsal u dos
- Compartir respuesta