Error de ejecución de macro en excel

Saludos.

tengo una UF que esta conectada a una hoja como base de datos. Cuando ejecuto el botón de guardar este me genera un error que no logro descifrar, este me pone en la celda ("A4" Y ("A5") el dato de la celda ("C4"), dañando el consecutivo de la columna "A" que es el numero de registro. Mi excel es 2010. Adjunto código mas representativo para ver si me puedes ayudar.

Private Sub UserForm_Activate()
Hoja37.Activate
Range("A4").Select
TextBox9 = Range("A4") + 1
End Sub

Private Sub TextBox9_Change()
Range("A3").Select
ActiveCell.FormulaR1C1 = TextBox9
End Sub

Private Sub CommandButton1_Click()
Rows("3:3").Select
Selection.Copy
Rows("4:4").Select
Selection.Insert Shift:=xlDown
Range("A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3,M3,N3,O3,P3,Q3,R3,S3,T3,U3,V3,W3,X3,Y3,Z3,AA3,AB3,AC3,AD3,AE3,AF3,AG3,AH3,AI3,AJ3,AK3").Select
Selection.ClearContents
Unload FTOENCUESTA
SAGAD.Show
End Sub

al dar click en commandbutton1 se genera el error y me pega el dato de la celda c4 en la celda "A4" y "A5".

la verdad no tengo ni idea que sucede te agradeceria si puedes ayudarme.

1 Respuesta

Respuesta
1

Sin revisarlo muy a fondo, lo primero que haría es cambiar el evento Change del Textbox9 por otro, por ej Exit o AfterUpdate, porque cada cambio que hagas y que tenga que ver con este control se ejecuta la rutina del evento Change (cambio).

Luego me comentas...

Sdos

Elsa

PD) Aún se mantiene vigente la promoción de 2x1 en manuales: Excel 2010 + Programación VBA

buenas noches

intente lo que me recomendaste pero no funciona.

Uhhh, qué poca aclaración...

Te comento qué hacen tus rutinas que dejaste al inicio:

Parto de una hoja con un valor inicial de 0 en A4

Al activarse el Userform se muestra ese valor en el textbox pero no lo ves porque se ejecuta el evento Change por lo que se muestra en A3 el valor 1 y también en el textbox

Cuando se ejecuta el botón, se inserta una fila pasando lo que estaba en fila 3 a la fila 4, es decir que ahora A4 muestra 1 y ese es el nuevo consecutivo para el próximo paso.

Hasta ahí es correcto... ¿el único detalle que veo es que el valor queda como texto (*) ... dónde está tu problema?

(*) Si lo necesitas como valor debes utilizar esta sintaxis:

Range("A3").Select
ActiveCell = Val(TextBox1)

¿Cómo vamos?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas