............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Macro para buscar una palabra dentro de un texto en una celda

Ver el tema anterior Ver el tema siguiente Ir abajo

Macro para buscar una palabra dentro de un texto en una celda

Mensaje por ESHM13 el Jue Ene 04, 2018 2:12 pm

buenos días a todos

ando buscando una macro que me permita buscar una palabra dentro de un texto que esta en la celda b3 y que me ponga la palabra en la celda c3, ejemplo en la celda b3 dice: la estufa esta en aparador la macro me tiene que buscar la palabra estufa y colocarla en la celda c3 y asi sucesivamente en las celdas hacia abajo pero no solo que busque una palabra si no que tiene que buscar las siguientes palabras licuadora, estufa y baño si aparece una de ellas en la celda b3 y que me la ponga en la celda c3 envió ejemplo en un archivo de Excel con formula pero quisiera me digan si hay una macro para hacerlo sin poner formula en la celda:

esta es la formula que quisiera que estuviera en una macro:

=SI(ESNUMERO(ENCONTRAR("ESTUFA",MAYUSC(B3))),"ESTUFA",SI(ESNUMERO(ENCONTRAR("BAÑO",MAYUSC(B3))),"BAÑO",SI(ESNUMERO(ENCONTRAR("LICUADORA",MAYUSC(B3))),"LICUADORA")))
Archivos
reporte.xlsx No tienes los permisos para descargar los archivos.(9 KB) Descargado 2 veces

ESHM13

Masculino Cantidad de envíos : 6
Edad : 39
Ciudad - Pais : CDMX
Version de Excel : 2010
Fecha de inscripción : 08/06/2017

Volver arriba Ir abajo

Re: Macro para buscar una palabra dentro de un texto en una celda

Mensaje por gfellay el Mar Ene 16, 2018 9:59 am

Podés usar directamente la grabadora de macros, escribir la fórmula y ver como queda el código. Ten en cuenta que el archivo tendrá que ser .xlsm (ya que tendrá macros).
Básicamente el código que podrías tener es el evento Change en la hoja, de esta forma cada vez que ingresen 'algo' en la columna B, hará el análisis que tu quieres en la columna C
Código:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then     'columna B
   Target.Offset(0, 1).FormulaR1C1 = _
      "=IF(ISNUMBER(FIND(""ESTUFA"",UPPER(RC[-1]))),""ESTUFA"", IF(ISNUMBER(FIND(""BAÑO"",UPPER(RC[-1]))),""BAÑO"",IF(ISNUMBER(FIND(""LICUADORA"",UPPER(RC[-1]))),""LICUADORA"")))"
   Target.Offset(0, 1).Copy
   Target.Offset(0, 1).PasteSpecial Paste:=xlPasteValues
   Application.CutCopyMode = False
End If
End Sub
avatar
gfellay

Masculino Cantidad de envíos : 29
Edad : 47
Ciudad - Pais : Bs. As. - Argentina
Version de Excel : 2010
Fecha de inscripción : 12/09/2008

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.