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.
(Para mayor visualización de la imagen, hacer click en la misma)
Primero creamos un formulario
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.
Los resultados los podemos observar en la siguiente hoja llamada resultados, en la cual se especifico un peso de 2.5 para la data.
(Para mayor visualización de la imagen, hacer click en la misma)
Creado por: VICTOR VEGA LUQUE
03/08/2013 a las 12:27 am
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.
15/02/2015 a las 9:30 am
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