¿Colocar rango en userform?

¿Hola qué tal? Ojala puedas ayudarme, veras tengo este código:
.
Private Sub CommandButton1_Click()
On Error Resume Next
fil = Application.WorksheetFunction.Match(Val(TextBox1), Range("A1:A10"), 0)
If fil = "" Then
    Label1 = "No encontrado"
Else
    Label1 = Range("B" & fil)
End If
End Sub
.
Que sirve para buscar datos en la columna A y según la busque si no existe aparece no encontrado y si existe aparece lo que esta a su lado en la comuna B
. Quisiera modificarlo para que la búsqueda de haga en desde A8:a20, C8:c20 y E8:E19
y aparezca el resultado así como era en B antes, ahora la que esta a su lado, de A-B de C-D y de E-F´pero intente hacerlo y no me resultó, ojala me logres ayudar con esta pregunta que no logro resolver, gracias

3 respuestas

Respuesta
1
Te respondo durante este día.
Gracias
No sabía si querías elegir en que columna buscar o buscar en todas al mismo tiempo. Así que resolví las dos. Sigue las indicaciones en la hoja1
La dirección para la descarga del archivo que preparé para ti.
http://www.megaupload.com/?d=4KCHMQ5I
Saludos y espero haber resuelto tus dudas. No olvides valorar la respuesta y cerrar la pregunta!
Verga pana, que bueno quedo, gracias por un millón, me preocupe cuando escribí en mayúsculas y vi que no funciono pero me di cuenta que en minúsculas si jaja gracias
Respuesta
1
Prueba los siguiente:
1. Crea un Form (UserForm1)
2. Dentro del Form, crea los siguientes controles:
* 1 frame (Frame1)
* dentro del frame, 3 optionbuttons (OptionButton1...)
* 1 label (Label1)
* 1 Textbox (Textbox1)
* 1 button (CommandButton1)
3. Asocia este código a CommandButton1:
Private Sub CommandButton1_Click()
 Dim Fila_inicio, Fila_fin, col, fil As Integer
  If OptionButton1 = True Then col = 1
  If OptionButton2 = True Then col = 2
  If OptionButton3 = True Then col = 3
  Fila_inicio = 2
  Fila_fin = 8
  For fil = Fila_inicio To Fila_fin
    If Cells(fil, col).Value = TextBox1.Value Then
      Label1.Caption = Cells(fil, col + 1).Value
      Exit Sub
    End If
  Next
Label1.Caption = "¡No se encontró!"
End Sub
Los datos se deben escribir en el rango A2:B8.
Ya me contarás qué tal te fue.
Ya había creado el userform para el código que escribí, probé con el tuyo pero no me funciona =/ aparece error 1004 y al depurar resalta
.
If Cells(fil, col).Value = TextBox1.Value Then
.
Ya veo que me faltaron los optionbuttons, pero no quiero hacerlo con ello, solo quiero el textbox, el label y el botón comando..
Para que busque en las columnas la cifra que busco y así me muestre al pulsar el botón lo que aparece en la celda de su lado derecho.
¿Es posible hacerlo?
Pensaba que querías seleccionar en qué columna buscar; por eso hacía una selección previa de columna. Si lo que deseas es buscar en todo el rango puedes probar con un bucle anidado. Por ejemplo:
Col_inicio=1; Col_fin=3
For fil = Fila_inicio To Fila_fin 
   for col= Col_inicio to Col_fin 
      If Cells(fil, col).Value = TextBox1.Value Then 
        Label1.Caption = Cells(fil, col + 1).Value 
        Exit Sub 
      End  If
   next
  next
Este código recorre todas las filas y todas las columnas del rango.
Coloque el código como me dijiste pero no funciono: lo tengo así:
Private Sub CommandButton1_Click()
Dim Fila_inicio, Fila_fin, col_inicio, col_fin, col, fil As Integer
col_inicio = 1
col_fin = 4
Fila_inicio = 3
Fila_fin = 41
For fil = Fila_inicio To Fila_fin
   For col = col_inicio To col_fin
      If Cells(fil, col).Value = TextBox1.Value Then
        Label1.Caption = Cells(fil, col + 1).Value
        Exit Sub
      End If
   Next
  Next
End Sub
El que esta en negrita sigue teniendo el mismo problema al depurar,
Tengo las columnas así MÁS O MENOS:
A B C D
322 tiene 425 alterno
323 no tiene 525 tiene
345 tiene 313 otro
Quisiera que al pulsar el CommandButton1 si escribí, por ejemplo, "525" aparezca en el label "TIENE", si no, aparezca "no existe"
Perdón lo ultimo que quise decir es que si la fila esta vacía mostrar "no posee"
Pega este código, que está probado bajo Excel 2003. Está insertado dentro del form.
Private Sub CommandButton2_Click()
Dim Fila_inicio, Fila_fin, col, fil As Integer
col_inicio = 1
col_fin = 4
Fila_inicio = 3
Fila_fin = 41
For fil = Fila_inicio To Fila_fin
 For col = col_inicio To col_fin
  If Cells(fil, col).Value = TextBox1.Value Then
    Label1.Caption = Cells(fil, col + 1).Value
    Exit Sub
  End If
 Next
Next
Label1.Caption = "no posee"
End Sub
El error 1004 puede hacer referencia a un valor de índice fuera de rango o una referencia incorrecta a una página del libro.
Si sigue sin funcionar, te puedo enviar el código a la cuenta que me digas.
Respuesta
1
Disculpa que no te haya respondido pero ando demasiado ocupado pero bueno
Esta seria una solución.
For x = 8 To 20
For y = 1 To 6
If Cells(x, y).Value = TextBox1.Value Then
`aca le pones el resultado que desees
Cells(x, y + 1).value = resultado
End If
y = y + 1
Next
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas