Form

Tengo un form que inserta unos datos en las celdas pero los datos los inserta colocando una nueva fila
antes de los datos ya escritos, el problema es que quiero
que el registro nuevo se inserte al final de la tabla porque en este
y quiero que la fórmula siga debajo.
Sumando los datos que se han ido acumulando
si quieres te mando el archivo

1 respuesta

Respuesta
1
Prueba la siguiente macro...
Public Sub InsertarDatos()
Dim Valor As Integer
Dim UltimaFila As Integer
Valor = Val(InputBox("Cual es el nuevo valor?"))
If Valor = 0 Then Valor = 100
UltimaFila = Range("A65536").End(xlUp).Row
If UltimaFila = 1 Then UltimaFila = 2
Cells(UltimaFila + 1, 1).EntireRow.Insert
Cells(UltimaFila + 1, 1).Value = Valor
Cells(UltimaFila + 1, 2).Value = Valor
End Sub
Estoy considerando, que la fórmula que me suma los valores, ya existe en la columna B, pero en la columna A NO hay nada, excepto los datos que vamos introduciendo, como la fórmula es relativa, al insertar la fila, esta se actualizara para sumar el nuevo dato insertado, también estoy considerando que dejas una fila en blanco entre tu ultimo dato y la fila donde introduces la formular.
Otro favor me podrías explicar esto es que no lo entiendo muy bien... UltimaFila = Range("A65536"). End(xlUp).Row
Mira si funciona como me lo diste intente pasarlo a mi hoja... pero sucede lo siguiente... la fórmula que esta abajo... no lo recalcula
Como tengo un titulo con unas celdas rellens.. me inserta las filas pero las rellena también... luego sigue insertando la fórmula.. en otra fila.. espero me comprendas de todas formas te envío el código que tengo en un botón de un form...
Range("c3").Select
Range("c3").Value = txtNombre.Text
Range("d3").Value = txtApaterno.Text
Range("e3").Value = txtAmaterno.Text
Dim UltimaFila As Integer
If txtSalario.Text = "" Then MsgBox "no hay salario"
UltimaFila = Range("A65536").End(xlUp).Row
If UltimaFila = 1 Then UltimaFila = 2
Cells(UltimaFila + 1, 1).EntireRow.Insert
Cells(UltimaFila + 1, 6).Value = txtSalario.Text
txtNombre = ""
txtApaterno = ""
txtAmaterno = ""
txtSalario = ""
txtNombre.SetFocus
Range("f9").FormulaLocal = "=PROMEDIO(F4:F10)"
Cuando insertas por código, se comporta igual que cuando insertas manualmente, si tienes formatos en la fila inmediata superior, estos serán los mismos cuando insertes, en tu código veo algunas cosas que se pueden mejorar, enviame tu archivo y te lo comento, saludos...
Mauricio
Mbs A inbox P net
Quita los espacios y sustituye
A = @
P = .
No te olvides de finalizar...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas