buscar un fragmento de texto en una lista y pegar en otra hoja

9 envíos / 0 nuevos
Último envío
edu_gru
Imagen de edu_gru
Offline
última acción: Hace 13 años 11 meses
alta: 06/04/2010 - 12:59
Puntos: 60
buscar un fragmento de texto en una lista y pegar en otra hoja

 Tengo un codigo que me permite buscar un fragmento de texto en una lista, lo que no se es como llevar éste codigo para que busque en una hoja y lo pegue en otra hoja.

Agrego el código por cualquier duda.

Gracias

 

Sub Buscar_Texto_En_Lista()

'dimensiones
Dim lngUltimaFila As Long
Dim strObjetoBuscar As String
Dim lngResultado As Long
Dim lngColumna As Long, lngFila As Long
Dim lngPegarColumna As Long, lngPegarFila As Long
Dim x As Integer, n As Integer

'quitar resultados anteriores
Range("I9:l4000").ClearContents

'columna + fila donde empezar/terminar búsqueda
lngColumna = 6
lngFila = 9
lngUltimaFila = Columns(lngColumna).Range("A65536").End(xlUp).Row

'columna + fila donde empezar a pegar resultados
lngPegarColumna = 9
lngPegarFila = 9

'objeto a buscar
strObjetoBuscar = Range("I5").Text 'celda a filtrar
If strObjetoBuscar = "" Then GoTo 99
'minúsculas
strObjetoBuscar = LCase(strObjetoBuscar)

'bucle: realizar búsqueda
For n = lngFila To lngUltimaFila

  'evaluación
  lngResultado = InStr(1, Cells(n, 6), strObjetoBuscar, vbTextCompare)

   'copiar/pegar
    If lngResultado > 0 Then
     Range(Cells(n, 6), Cells(n, 8)).Copy 'para cambiar las columnas que quiero copiar/pegar
      Range( _
      Cells(lngPegarFila, lngPegarColumna), _
      Cells(lngPegarFila, lngPegarColumna + 2)) _
        .Select
      ActiveSheet.Paste
    lngPegarFila = lngPegarFila + 1
    End If

Next n

'aparcar
Application.CutCopyMode = False
Range("I5").Select

99:


End Sub
 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 10 horas 48 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: buscar un fragmento de texto en una lista y pegar en otra ho

Tal y como tienes el código, estás pegando en la hoja activa:

'copiar/pegar
    If lngResultado > 0 Then
     Range(Cells(n, 6), Cells(n, 8)).Copy 'para cambiar las columnas que quiero copiar/pegar
      Range( _
      Cells(lngPegarFila, lngPegarColumna), _
      Cells(lngPegarFila, lngPegarColumna + 2)) _
        .Select
      ActiveSheet.Paste

En primer lugar vamos a definir unas constantes (o variables si lo prefieres como tienes para las columnas y filas) con los nombres de las hojas de origen y destino

Const HojaOrigen = "tuhojadeorigen"
Const HojaDestino = "tuhojadedestino"

Ahora para antes de pegar los valores vamos a activar la hoja de destino, pegamos y volvemos a activar la hoja de origen para seguir buscando valores.

 Worksheets(HojaDestino).Activate
      Range( _
      Cells(lngPegarFila, lngPegarColumna), _
      Cells(lngPegarFila, lngPegarColumna + 2)) _
        .Select
      ActiveSheet.Paste
 Worksheets(HojaOrigen).Activate

espero que te sirva; ya me dirás qué tal

------
Ya sé Excel, pero necesito más

 

------
Ya sé Excel, pero necesito más.

visitante (no verificado)
Imagen de visitante
Re: buscar un fragmento de texto en una lista y pegar en otra ho

Ya quedó!!!! muchas gracias!!!!

 

visitante (no verificado)
Imagen de visitante
Re: buscar un fragmento de texto en una lista y pegar en otra ho

Gracias ya quedooooo!!!!

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 10 horas 48 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
me alegro

me alegro de haber sido de ayuda

------
Ya sé Excel, pero necesito más

 

------
Ya sé Excel, pero necesito más.

visitante (no verificado)
Imagen de visitante
Re: me alegro

 

Hola, me preguntaba si de la misma manera que busco unos datos y despue slo pego en otra hoja, seria posible buscar un dato y despues borrarlos de la misma lista?

Debe de ser de una forma parecida no?

Muchas gracias or su tiempo y ayuda

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 10 horas 48 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
eliminar una fila

Si por ejemplo quieres eliminar la fila de la celda activa, puedes emplear lo siguiente

Rows(ActiveCell.Row).Delete

Si sólo quieres borrar el contenido, emplea el método ClearContents en vez de Delete

------
Ya sé Excel, pero necesito más

 

------
Ya sé Excel, pero necesito más.

visitante (no verificado)
Imagen de visitante
Re: buscar un fragmento de texto en una lista y pegar en otra ho

Como hago si quisiera que

strObjetoBuscar = Range("I5").Text 'celda a filtrar

no solo fuese una sola celda sino que el programa busqque varios datos?. por ejemplo que sea desde la i5 hasta la i100 y que busque cada uno de esos datos en el rango de busqueda.

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 10 horas 48 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
for each...

puedes hacer un bucle que recorra todas las celdas que hay en I5:I100, para cada una de ellas repites los pasos.

algo parecido a esto:

Dim Celda As Range
For Each Celda In Range("I5:I100").Cells
    With Celda
      'aquí los pasos que quieras dar con cada celda
       ... 
    End With
Next
 

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.