![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
27/03/2007, 20:42
|
![Avatar de mrocf](http://static.forosdelweb.com/customavatars/avatar174421_2.gif) | | | Fecha de Ingreso: marzo-2007 Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 10 meses Puntos: 88 | |
Crear macro que: busque una palabra, la reemplace por otra y la ponga en negrita... Te dejo la macro:
Código:
Sub BuscoReemplazoNegrita()
WordSearch = InputBox(prompt:="Palabra a buscar:", Title:="Búsqueda y Reemplazo")
If WordSearch = "" Then Exit Sub
WordReplacement = InputBox(prompt:="Palabra de reemplazo:", Title:="Búsqueda y Reemplazo")
If WordReplacement = "" Then Exit Sub
On Error GoTo Fin
Cells.Find(What:=WordSearch, After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
On Error GoTo 0
Cells.Replace What:=WordSearch, Replacement:=WordReplacement, _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
FirstCell = ActiveCell.AddressLocal
Do
MyPos = InStr(1, ActiveCell, WordReplacement)
While MyPos > 0
ActiveCell.Characters(Start:=MyPos, Length:=Len(WordReplacement)).Font.FontStyle = "Negrita"
MyPos = InStr(MyPos + 1, ActiveCell, WordReplacement)
Wend
Cells.Find(What:=WordReplacement, After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate
Loop Until ActiveCell.AddressLocal = FirstCell
Fin:
End Sub
Este código:
a) interrumpe su procedimiento si se selecciona "Cancelar" en cualquiera de los dos "InputBox".
b) tiene previsto salir del procedimiento si no se encuentra la palabra en cuestión.
c) tiene previsto varias ocurrencias de la palabra buscada en la misma celda.
Espero que te sirva.
Última edición por mrocf; 28/03/2007 a las 13:22 |