Problema con código pues se bloquea el Excel

Solicito de su apoyo para un problema que tengo con mi código, este código lo que hace es ir agregando registros, pero al cerrar el archivo y volverlo a abrir y agregar registro me borra unos que ya estén, o me inserta una fila en blanco. El código es el siguiente y se inserta en una tabla, también después de ejecutar algo me bloquea las hojas para el desplazamiento con las flechas solo funciona el mouse dando click en las barras de desplazamiento. ¿Por qué será?

2 respuestas

Respuesta
1

No se ve el código, puedes ponerlo nuevamente.

Private Sub guardar_Click()
resultado = MsgBox("¿DESEA CAPTURAR EL REPORTE?", vbYesNo + vbExclamation, "CAPTURA DE REPORTE")
Select Case resultado

    Case vbYes:

   With Hoja1
        .Select Range("A2").Select
        Selection.EntireRow.Insert

   
            ActiveSheet.Cells(2, 1) = cant.Text
            ActiveSheet.Cells(2, 2) = tecnico
            ActiveSheet.Cells(2, 3) = tecasignado
            ActiveSheet.Cells(2, 4) = fecha
            ActiveSheet.Cells(2, 5) = reporte.Text
            ActiveSheet.Cells(2, 6) = folio.Text
            ActiveSheet.Cells(2, 7) = econo.Text
            ActiveSheet.Cells(2, 8) = client
            ActiveSheet.Cells(2, 9) = lectura.Text
            ActiveSheet.Cells(2, 10) = department
            ActiveSheet.Cells(2, 11) = modelo
            ActiveSheet.Cells(2, 12) = hllegada
            ActiveSheet.Cells(2, 13) = TextBox6
            ActiveSheet.Cells(2, 14) = fexpuesta
            If opt1.Value = True Then ActiveSheet.Cells(2, 15) = 0.25
            If opt2.Value = True Then ActiveSheet.Cells(2, 15) = 0.5
            If opt3.Value = True Then ActiveSheet.Cells(2, 15) = 0.75
            If opt4.Value = True Then ActiveSheet.Cells(2, 15) = 1
            If opt12.Value = True Then ActiveSheet.Cells(2, 15) = 1.25
            If opt13.Value = True Then ActiveSheet.Cells(2, 15) = 1.5
            If opt14.Value = True Then ActiveSheet.Cells(2, 15) = 1.75
            If opt15.Value = True Then ActiveSheet.Cells(2, 15) = 2
            If opt5.Value = True Then ActiveSheet.Cells(2, 16) = "PREVENTIVO"
            If opt6.Value = True Then ActiveSheet.Cells(2, 16) = "CORRECTIVO"
            If opt7.Value = True Then ActiveSheet.Cells(2, 16) = "FALLA DE USUARIO"
            If opt8.Value = True Then ActiveSheet.Cells(2, 16) = "CONECTIVIDAD"
            If opt9.Value = True Then ActiveSheet.Cells(2, 16) = "FALLA DE EQUIPO"
            If opt10.Value = True Then ActiveSheet.Cells(2, 16) = "PENDIENTE"
            If opt11.Value = True Then ActiveSheet.Cells(2, 16) = "RECARGA DE TONER"
            If CheckBox1.Value = True Then ActiveSheet.Cells(2, 17) = 1
            If CheckBox2.Value = True Then ActiveSheet.Cells(2, 18) = 1
            If CheckBox3.Value = True Then ActiveSheet.Cells(2, 19) = 1
            If CheckBox4.Value = True Then ActiveSheet.Cells(2, 20) = 1
            If CheckBox5.Value = True Then ActiveSheet.Cells(2, 21) = 1
            If CheckBox6.Value = True Then ActiveSheet.Cells(2, 22) = 1
            If CheckBox11.Value = True Then ActiveSheet.Cells(2, 23) = 1
            If CheckBox12.Value = True Then ActiveSheet.Cells(2, 24) = 1
            If CheckBox13.Value = True Then ActiveSheet.Cells(2, 25) = 1
            If CheckBox14.Value = True Then ActiveSheet.Cells(2, 26) = 1
            If CheckBox7.Value = True Then ActiveSheet.Cells(2, 27) = 1
            If CheckBox8.Value = True Then ActiveSheet.Cells(2, 28) = 1
            If CheckBox9.Value = True Then ActiveSheet.Cells(2, 29) = 1
            If CheckBox10.Value = True Then ActiveSheet.Cells(2, 30) = 1
            If CheckBox15.Value = True Then ActiveSheet.Cells(2, 37) = "INSTALACION"
            If CheckBox16.Value = True Then ActiveSheet.Cells(2, 37) = "CAMBIO"
            If CheckBox17.Value = True Then ActiveSheet.Cells(2, 37) = "RETIRO"
            If CheckBox18.Value = True Then ActiveSheet.Cells(2, 37) = "RESPALDO"
            ActiveSheet.Cells(2, 31) = TextBox1
            ActiveSheet.Cells(2, 32) = TextBox2
            ActiveSheet.Cells(2, 33) = TextBox3
            ActiveSheet.Cells(2, 35) = TextBox4
            ActiveSheet.Cells(2, 36) = TextBox5
            ActiveSheet.Cells(2, 34) = TextBox7
            ActiveSheet.Cells(2, 38) = cartucho
            reporte = Empty
            folio = Empty
            econo = Empty
            client = Empty
            lectura = Empty
            department = Empty
            modelo = Empty
            hllegada = Empty
            fexpuesta = Empty
            tecasignado = Empty
            zona = Empty
            opt1 = Empty
            opt2 = Empty
            opt3 = Empty
            opt4 = Empty
            opt5 = Empty
            opt6 = Empty
            opt7 = Empty
            opt8 = Empty
            opt9 = Empty
            opt10 = Empty
            opt11 = Empty
            opt12 = Empty
            opt13 = Empty
            opt14 = Empty
            opt15 = Empty
            CheckBox1 = Empty
            CheckBox2 = Empty
            CheckBox3 = Empty
            CheckBox4 = Empty
            CheckBox5 = Empty
            CheckBox6 = Empty
            CheckBox7 = Empty
            CheckBox8 = Empty
            CheckBox9 = Empty
            CheckBox10 = Empty
            CheckBox11 = Empty
            CheckBox12 = Empty
            CheckBox13 = Empty
            CheckBox14 = Empty
            CheckBox15 = Empty
            CheckBox16 = Empty
            CheckBox17 = Empty
            CheckBox18 = Empty
            TextBox1 = Empty
            TextBox2 = Empty
            TextBox3 = Empty
            TextBox4 = Empty
            TextBox5 = Empty
            TextBox6 = Empty
            TextBox7 = Empty
            cartucho = Empty
            tecnico.SetFocus
    Select Case resultado
            Case vbNo:
            Exit Sub
           


End Select
End With
End Select

End Sub

Al inicio de tu macro tienes esta línea:

.Select Range("A2").Select

Deben ser 2 líneas, de esta forma:

.Select
Range("A2").Select

Prueba nuevamente y me comentas.


También dime si es una tabla de excel o los datos están en un rango de celdas

¿Tienes fórmulas?

es una tabla de Excel a donde se va la información capturada pues de ahí genero tablas dinámicas, no tengo formulas en esa hoja, lo curioso es que cada que ejecuto el userform y registro un dato nuevo me borra una fila de algún dato ya capturado con anterioridad, y curiosamente son siempre los mismos datos que esta borrando, y me deja la fila en blanco. Porque se generara esta acción?

¿Probaste nuevamente con lo que te envié?

Si me funciono Dante, muchas gracias ya capturando y no me arroja las celdas vacías, se sigue bloqueando para moverme en la pantalla con las teclas pero ya esta funcionando el código. ¿Aprovechando qué es mejor para moverme entre los formularios Hide o Unload me?

Tal vez tienes otras macros que están bloqueando la pantalla.

.

Para moverte entre formularios depende de lo que necesites. Si ya no lo vas a utilizar entonces lo cierras con Unload, si lo vas a mostrar otra vez, entonces lo ocultas con Hide y después lo muestras con Show.

[Si te sirvió la información, no olvides valorar la respuesta.

Respuesta
1

Tal vez encuentres algo útil para que automatices tus hojas en el link

Si borra los registros puede pasar dos cosas una que cuando sales no estas guardando el libro eso se hace son el comando save

La segunda es que tengas un código para borrar registros y no esta bien indicado que debe borrar

Por ejemplo si pones activesheet. Range("A1:C10"). Clear borrará el rango de la hoja activa en ese momento se la hoja 1 la 2 o la que sea si tu requeires borrar una hoja especifica debes indicar cual es exactamente asi sheets("Hoja1"). Range("A1:C10"). Clear, de esta forma cuando se ejecute el código por más que esté en cualquier hoja solo borrara lo de la hoja 1, es probable que en tu código tengas algo apuntando a la hoja equivocada por eso borra registros, o que simplemente no los guardes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas