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 de fejoal
1
1
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
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