Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Formulario Aplicado a la búsqueda de productores

| 2 comentarios

Se tiene una base de datos, en la cual se quiere obtener en otra hoja los resultados que mas se necesita, como son los pesos que se tiene por cada productor y los mg de Ag que son las leyes a reportar.

44444111111

(Para mayor visualización de la imagen, hacer click en la misma)

Primero creamos un formulario

4-11111

Luego aplicamos :

Private Sub CommandButton1_Click()

If (ComboBox1.Text <> "" And TextBox1.Text <> "") Then

Dim filaActual As Integer

Dim ultimaFila As Integer

Dim filaDeResultados As Integer

filaDeResultados = 1

ultimaFila = 9999

For filaActual = 2 To ultimaFila Step 1

Dim codigo As String

codigo = Sheets(3).Cells(filaActual, 1).Value

If ComboBox1.Text = "PESO" And _

Sheets(3).Cells(filaActual, 4).Value = TextBox1.Text Then

filaDeResultados = filaDeResultados + 1

variableSinUso = escribirResultados(filaActual, filaDeResultados)

ElseIf ComboBox1.Text = "AGmg" And _

Sheets(3).Cells(filaActual, 6).Value = TextBox1.Text Then

filaDeResultados = filaDeResultados + 1

variableSinUso = escribirResultados(filaActual, filaDeResultados)

End If

If codigo = "" Then

filaActual = ultimaFila

End If

Next

If filaDeResultados = 1 Then

MsgBox "No se encontraron resultados"

Else

BUSCAR_PRODUCTOR.Hide

Sheets(2).Select

End If

Else

MsgBox "Ingresa al menos un dato"

End If

End Sub

Private Sub btnNuevabusqueda_Click()

limpiarFormulario

End Sub

Private Sub Label4_Click()

End Sub

Private Sub UserForm_Activate()

limpiarFormulario

End Sub

Private Sub limpiarFormulario()

ComboBox1.Clear

ComboBox1.AddItem ("PESO")

ComboBox1.AddItem ("AGmg")

TextBox1.Text = ""

Worksheets(2).Select

Worksheets(2).Rows("2:9999").Select

Selection.Delete shift:=x1up

End Sub

Function escribirResultados(filaActual, filaDeResultados)

Worksheets(2).Cells(filaDeResultados, 1).Value = Sheets(3).Cells(filaActual, 1).Value

Worksheets(2).Cells(filaDeResultados, 2).Value = Sheets(3).Cells(filaActual, 2).Value

Worksheets(2).Cells(filaDeResultados, 3).Value = Sheets(3).Cells(filaActual, 3).Value

Worksheets(2).Cells(filaDeResultados, 4).Value = Sheets(3).Cells(filaActual, 4).Value

Worksheets(2).Cells(filaDeResultados, 5).Value = Sheets(3).Cells(filaActual, 5).Value

Worksheets(2).Cells(filaDeResultados, 6).Value = Sheets(3).Cells(filaActual, 6).Value

Worksheets(2).Cells(filaDeResultados, 7).Value = Sheets(3).Cells(filaActual, 7).Value

Worksheets(2).Cells(filaDeResultados, 8).Value = Sheets(3).Cells(filaActual, 8).Value

End Function

Creamos en la hoja principal un ComboBox y llamamos al formulario creado.

4444-4444

Los resultados los podemos observar en la siguiente hoja llamada resultados, en la cual se especifico un peso de 2.5 para la data.

2.55555

(Para mayor visualización de la imagen, hacer click en la misma)

 

Creado por: VICTOR VEGA LUQUE

2 comentarios

  1. Yo ejecuté esta macro y cuando llegué al siguiente paso :

    If ComboBox1.Text = “PESO” And _

    Me resulta error diciendo: "Error de sintaxis". Creo que deberìa ser reemplazado por "Then" o en todo caso por qué se daría el error.

  2. Excelentes ejercicios un favor me podrás apoyar estoy tratando de crear un sistema de control de almacén pero no se como comenzar gracias

Deja una respuesta

Los campos requeridos estan marcados con *.