Problema con un userform

Hola feojal, espero que todo bien, bueno al grano con esto, mi ra tengo un problema hice un user form, pero no tengo la idea de como poner los valores pero no del todo claro, bueno básicamente quiero que a la hora de poner la fecha la lleve a una hoja en la celda b8, lugo vienen venta1 a la celda, venta2 a la celda d8, venta 3 celda f8, venta 4 celda g8 y total f8
, des pues cuando ponga otra fecha pase a la filade abajo poniendo los valores indicados
ya trate más o menos de hacer el código no se si me puedas echar una mano gracias
desde mexico l.a.m.t.

1 respuesta

Respuesta
1
A.M.T.
Bien visto que hablas de un formulario de VBA, deberías incorporarle al momento del vuelco a la base una rutina que considere cuál es la última celda ocupada. Así, supuesto que existan un textbox1 y un textbox2 en tu formulario, tal rutina será:
Private Sub CommandButton1_Click()
Dim CeldaIni As Range
Set CeldaIni = Range("b7") '*** Puedes cambiar esta referencia a la primera celda superior izquierdadel rango donde debe pegr los datos.
Pegadato1 = cdate(TextBox1.Value) 'fecha
Pegadato2 = Val(TextBox2.Value) 'venta1
Pegadato3 = Val(TextBox3.Value) 'venta2
Pegadato4 = Val(TextBox4.Value) 'venta3
Pegadato5 = Val(TextBox5.Value) 'venta4
Pegadato6 = Val(TextBox6.Value) 'Total
If IsEmpty(CeldaIni) Then
CeldaIni.Value = Pegadato1
CeldaIni.Offset(0, 1).Value = Pegadato2
CeldaIni.Offset(0, 2).Value = Pegadato3
CeldaIni.Offset(0, 3).Value = Pegadato4
CeldaIni.Offset(0, 4).Value = Pegadato5
CeldaIni.Offset(0, 5).Value = Pegadato6
ElseIf CeldaIni.End(xlDown).Row > 50000 Then
CeldaIni.Offset(1).Value = Pegadato1
CeldaIni.Offset(1, 1).Value = Pegadato2
CeldaIni.Offset(1, 2).Value = Pegadato3
CeldaIni.Offset(1, 3).Value = Pegadato4
CeldaIni.Offset(1, 4).Value = Pegadato5
CeldaIni.Offset(1, 5).Value = Pegadato6
Else
CeldaIni.End(xlDown).Offset(1).Value = Pegadato1
CeldaIni.End(xlDown).Offset(1, 1).Value = Pegadato2
CeldaIni.End(xlDown).Offset(1, 2).Value = Pegadato3
CeldaIni.End(xlDown).Offset(1, 3).Value = Pegadato4
CeldaIni.End(xlDown).Offset(1, 4).Value = Pegadato5
CeldaIni.End(xlDown).Offset(1, 5).Value = Pegadato6
End If
End Sub
Esta rutina (rústica, pero funciona) es general y analiza si a partir de la celda b7 (puedes cambiarla, desde luego) existen datos en esa celda (si no los hay, pega allí lo ingresado en TextBox1 y en la celda a su derecha, lo de TextBox2 y así con las otras).
Si fuera la única fila ocupada (como si fuera un titulo de columna), pega aquellos datos en la fila inmediata siguiente (en B8 y siguientes a la derecha) y, finalmente, si hubiera más datos ingresados previamente, dejará la información en la celda inmendiata inferior a la última ocupada.
- Ingresa al sitio www.porloschicos.com y, si quieres,
presiona el botón de donación (es gratis).
Confío en que lo harás.
Hola fer perdón por no haber dado respuesta antes pero no me había dado cuenta de que tenia repuesta tuya, bueno como siempre muchas gracias y de ja checo eso
Excelente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas