Foros del Web » Soporte técnico » Ofimática »

Macros excel Función edición/buscar

Estas en el tema de Macros excel Función edición/buscar en el foro de Ofimática en Foros del Web. Saludos a todos Soy nuevo en esto de las macros en excel y estoy tratando de hacer que con un boton de comando "Buscar" excel ...
  #1 (permalink)  
Antiguo 26/09/2008, 20:19
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 15 años, 7 meses
Puntos: 0
Macros excel Función edición/buscar

Saludos a todos
Soy nuevo en esto de las macros en excel y estoy tratando de hacer que con un boton de comando "Buscar" excel me de una lista de todos los nombres de una columna que coincidad con el textbox1, he intentado de todo, pero solo me da un solo registro (el primero segun orden):


Estos son los codigos que puse primero:
Private Sub CommandButton1_Click()
Dim n As Range
Set n = Cells.Find(What:=TextBox1)
If n Is Nothing Then
MsgBox "No hay"
Else
Range(n.Address).Select
Selection.Copy
Range("D6").Select
ActiveSheet.Paste
End If



Estos son otros codigos que probe:
Set n = Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

If n Is Nothing Then
MsgBox "No hay"
Else
ActiveCell.Offset(1, 0).Select
Range("D7") = ActiveCell
ActiveCell.Offset(1, 0).Select
Range("D8") = ActiveCell
ActiveCell.Offset(1, 0).Select
Range("D9") = ActiveCell
ActiveCell.Offset(1, 0).Select
Range("D10") = ActiveCell
ActiveCell.Offset(1, 0).Select
Range("D11") = ActiveCell
ActiveCell.Offset(1, 0).Selectt
Range("D12") = ActiveCell
ActiveCell.Offset(1, 0).Select
Range("D13") = ActiveCell
ActiveCell.Offset(1, 0).Select
Range("D14") = ActiveCell
Range("D15") = ActiveCell
ActiveCell.Offset(1, 0).Select
Range("D16") = ActiveCell
ActiveCell.Offset(1, 0).Select
Range("D17") = ActiveCell
ActiveCell.Offset(1, 0).Select
Range("D18") = ActiveCell
ActiveCell.Offset(1, 0).Select
Range("D19") = ActiveCell
ActiveCell.Offset(1, 0).Select
Range("D20") = ActiveCell
End If
End Sub


Ninguno me ha funcionada, solo busca el primer registro que coincida y lo copia en la celda que indico (C6)
  #2 (permalink)  
Antiguo 27/09/2008, 10:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Macros excel Función edición/buscar

De hecho el método Find siempre te devolverá un solo elemento, para buscar otras coincidencias usa sucesivas llamadas al método FindNext hasta que devuelva Nothing.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 27/09/2008, 14:22
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Macros excel Función edición/buscar

Gracias por tu aporte David, pero aun no me sale nada :S , algo le falta a mis codigos, estoy que trato de diferentes formas, lo ultimo:
Columns("A:A").Select
Dim n As Range
Set n = Selection.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Selection.FindNext(After:=ActiveCell).Activate
If n Is Nothing Then
MsgBox "No hay"
Else
Range(n.Address).Select
Selection.Copy
Range("D6").Select
ActiveSheet.Paste
End If

End Sub

No me da resultado, y si utilizo FindNext sale que no se admite esta propiedad. Trate de separar los procesos con diferentes botones de comando y no entiendo mucho eso de findnext
Lo que trato es que copie todos los valores posibles y los pegue en una celda
  #4 (permalink)  
Antiguo 28/09/2008, 22:18
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Respuesta: Macros excel Función edición/buscar

Hola! espiritu64. Intenta con:
Código:
Private Sub CommandButton1_Click()
Dim Celda As Range, Primera As String
Set Celda = [A:A].Find(What:=TextBox1, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
If Celda Is Nothing Then
  MsgBox "No hay": Exit Sub
End If
Primera = Celda.Address: [D6] = Celda
Set Celda = [A:A].FindNext(Celda)
Do Until Celda.Address = Primera
  [D65536].End(xlUp).Offset(1, 0) = Celda: Set Celda = [A:A].FindNext(Celda)
Loop
End Sub 
Aunque no lo hayas comentado, estoy interpretando que el valor de las celdas que contienen al texto especificado por TextBox1, deseas copiarlas a partir de la celda [D6] y hacia abajo.

Saludos, Cacho.
  #5 (permalink)  
Antiguo 12/10/2008, 20:26
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Macros excel Función edición/buscar

Gracias por el aporte, me ayudo mucho
  #6 (permalink)  
Antiguo 12/10/2008, 22:33
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
Macros excel Función edición/buscar

Me alegra que te haya sido útil. Hasta la próxima.

Saludos, Cacho.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:54.