Cuadro de dialogo

Hola fejoal, de nuevo yo :-). Mis amigos dicen que se de excel, pero yo cada día se que se menos y me considero más inútil. Te explico. En una hoja de calculo necesito ir rellenando datos (fecha, vendedor, operación, importe...). Seria perfecto el datos formulario de excel, peeeeeeeeeeeeeeeeeeero, aparte de inútil soy caprichosa, así que... No me vale. Yo quiero una especie de cuadro de dialogo, con simples cuadros de edición en los que introducir los datos, pulsar el tabulador entre dato y dato y cuando acepte el cuadro que se me coloquen esos datos en la siguiente fila vacía de mi hoja de calculo y automáticamente pueda rellenar en el cuadro la siguiente linea, pero, por ejemplo, que mantenga los resultados de los dos primeros cuadros de edición que rellene antes (serian por ejemplo la fecha y el nombre del vendedor), y me ofrezca la posibilidad de rellenar el tercero y los siguientes. En caso de querer volver al anterior pulsar esc y listo. Ya se, es complicarse demasiado la existencia, pero es lo que necesito. He estado jugueteando y he descubierto algo que se llama hoja de dialogo, pero... Me pierdo chico. No se programar en visual basic (para cuatro cosinas que se hacer... Como si no supiera) pero he aprendido mucho con lo que vosotros me habéis ayudado.
En principio esa es la ayuda simple que necesito, luego ya la complicaría yo, en caso de no ser capaz volvería a pedir ayuda.
Espero que hayas entendido algo (a veces me sorprende lo que sois capaces de entendernos).
Muchísimas gracias de antemano
Besotes

1 Respuesta

Respuesta
1
OK si insistes que Pelé es rubio, haremos el formulario que necesitas.
Siguiendo los datos que das diseñé la siguiente rutina, que deberás ingresar en un módulo de Visual Basic:
Public HojaDest, LCol, LCell
Sub FormCarga()
'==================
HojaDest = "HojaCarga"
Firstcell = "B5"
'==================
Sheets(HojaDest).Select
Range(Firstcell).Select
LCol = Selection.Column
LCell = Selection.Row
LCell = LCell + Selection.CurrentRegion.Rows.Count
UserForm1.Show
End Sub
(Hay dos variables entre las lineas de ==== que deberás reemplazar por tus datos propios. Corresponden a la hoja donde se deben volcar los datos y la primer celda superior de la derecha donde comienza tu tabla)
Esta macro sirve para identificar la última celda ocupada en la hoja de carga y luego activa un formulario.
---
Obviamente, tendrás que insertar uno en el Editor de Visula Basic, agregándole los siguientes controles:
1 TextBox para la Fecha (TextBox1)
1 TextBox para el Nombre del Vendedor (TextBox2)
1 TextBox para la Operación(TextBox3)
1 TextBox para el importe(TextBox4)
1 Botón de comando para cambiar la Fecha (CommandButton1)
1 Botón de comando para cambiar el Vendedor(CommandButton2)
1 Botón de comando para Aceptar (CommandButton3)
1 Botón de comando para Cancelar (CommandButton4)
---
Una vez armado, deberás pegar estos códigos en el panel de macro del formulario (F7 para verlo):
Private Sub UserForm_Initialize()
TextBox1.Value = Cells(LCell - 1, LCol + 1).Value
TextBox2.Value = Cells(LCell - 1, LCol + 0).Value
TextBox1.SetFocus
End Sub
Private Sub CommandButton1_Click()
TextBox1.Text = ""
TextBox1.SetFocus
End Sub
Private Sub CommandButton2_Click()
TextBox2.Text = ""
TextBox2.SetFocus
End Sub
Private Sub CommandButton3_Click()
If Len(TextBox1) = 0 Or Len(TextBox2) = 0 Or Len(TextBox3) = 0 Or Len(TextBox4) = 0 Then
MsgBox "Faltan datos", vbCritical, "OMITIO DATO"
TextBox1.SetFocus
Else
Cells(LCell, LCol + 0).Value = Trim(TextBox2.Text)
Cells(LCell, LCol + 1).Value = CDate(TextBox1.Text)
Cells(LCell, LCol + 2).Value = Trim(TextBox3.Text)
Cells(LCell, LCol + 3).Value = Val(TextBox4.Text)
LCell = LCell + 1
TextBox3.Text = ""
TextBox4.Text = ""
TextBox3.SetFocus
End If
End Sub
Private Sub CommandButton4_Click()
Unload Me
End Sub
---
Con esto tendrás un formulario de carga que, al iniciarlo, mostrará la última Fecha y Usuario que haya en tu base. Luego podrás cargar Operación e Importe y, al presionar Aceptar, los colocará después del último.
(La macro controla que no hayan quedado casillas vacías)
Luego volverá a la casilla de Operación para que sigas cargando otras para el mismo día y vendedor.
Pero si quieres cambiar de fecha o vendedor tienes un par de botones para hacerlo.
Fiuuu!, espero que esto sea lo que necesitas.
Aprovechando que cuento con tu dirección de e-mail (2) te mando el archivo que usé para desarrollar tu formulario.
Un beso!
Fer
¿Tengo qué decirlo? como siempre... GENIAL! super rapido y justo lo que quería, y con aclaraciones para poder aprender, que es de lo que se trata.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas