¿Se podrá hacer un formulario de entrada con macros para distintas hojas?

¿Me gustaría saber si es posible crear un formulario de entrada con macros para distintas hojas?

Es que tengo un archivo para control de inventarios de una bodega. Son 51 artículos. Y en una hoja tengo el listado o base de los artículos y abrí 51 hojas más (identicas), en donde a iré detallando las entradas y salidas. De momento las tengo con hipervínculos.

Pero tenía curiosidad si era es posible crear un un único formulario y relacionarlo con esas 51 hojas, e indicando por ejemplo:

1. La hoja en cuestión

2. Código del artículo

3. Si es una entrada + cantidad

4. Si es una salida + cantidad

Para que así se registre automáticamente.

Pd. De ser posible, y necesitar visualizar el archivo, si es permitido, podría enviarlo a quién lo requiera para una mejor idea.

Respuesta
1

Pues si es posible de hecho mira esta imagen cada hoja tiene el nombre del producto y es cargada en la lista desplegable en cuanto seleccionas se abre esa hoja y te muestra el ultimo registro que capturaste

esta es la estructura que debe tener cada hoja para que la macro funcione adecuadamente

y estas son las macros que debes pegar en el formulario, nota son solo un ejemplo de lo que pides estas se tiene que adecuar a lo que necesitas realmente, la ventaja que tienes es que al crear una nueva hoja esta se añadira la siguiente vez que corras el formulario como ves con un formulario se pueden controlar muchas hojas.

Private Sub ComboBox1_Change()
NOMBRE = ComboBox1.Value
Sheets(NOMBRE).Select
Set inventario = Range("a1").CurrentRegion
With inventario
    R = .Rows.Count: C = .Columns.Count
    For I = 1 To C
        UserForm1.Controls("TEXTBOX" & I) = .Cells(R, I)
    Next I
End With
Set inventario = Nothing
End Sub
Private Sub CommandButton1_Click()
Set inventario = Range("a1").CurrentRegion
With inventario
    R = .Rows.Count: C = .Columns.Count
    For I = 1 To C
    .Cells(R + 1, I).Value = UserForm1.Controls("TEXTBOX" & I).Text
    Next I
End With
set inventario=nothing
End Sub
Private Sub UserForm_Initialize()
For Each hoja In Worksheets
    NOMBRE = hoja.Name
    ComboBox1.AddItem NOMBRE
Next hoja
End Sub

1 respuesta más de otro experto

Respuesta
2
A la orden, me puedes enviar tu archivo [email protected]

Ahrens Ruana, perfecto. Eso si, te lo envío mañana ya que ya salí de la oficina y lo tengo ahí.

Muchas gracias por responder!

Muy bien mañana lo revisamos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas