Reemplazar texto determinado en ficheros "html" de una carpeta

Es mi primera pregunta en este foro. Espero hacerla correctamente.

He estado viendo, y la verdad, mucha gran ayuda por parte de los expertos...

Mi pregunta es ésta:

¿Se puede crear una macro en Excel para que reemplace un texto determinado en una gran cantidad de archivos de una carpeta?, es decir, tengo una carpeta con unos 2500 ficheros en html, y necesito buscar código en esos ficheros (localizar los que la tienen) y cambiar esa frase del código (de los que la tengan) por otra frase.

Siempre será la misma frase a reeemplazar por otra también igual siempre.

1 respuesta

Respuesta
1

Puedes enviarme un archivo html con la información original.

Me envías otro html pero con la información que cambiaste.

Me dice qué texto hay que buscar y qué texto hay que poner.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Alfonso Javier Tonano” y el título de esta pregunta.

Ya te mandé los ficheros.

Espero que puedas ayudarme.

Gracias por atenderme.

Te anexo la macro para cambiar el texto en los archivos Html

Sub ProcesarArchivos()
'Por.Dante Amor
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    ruta = ThisWorkbook.Path & "\"
    If Dir(ruta & "cambiados", vbDirectory) = "" Then
        MkDir ruta & "cambiados"
    End If
    Set h1 = Sheets("Hoja1")
    archivo = Dir("*.html")
    m = 0
    Do While archivo <> ""
        h1.Cells.Clear
        i = 1
        Open archivo For Input As #1
        Do While Not EOF(1)
             Line Input #1, LineofText
             Cells(i, "A") = LineofText
             i = i + 1
        Loop
        Close #1
        '
        h1.Cells.Replace What:="Servicio Especiales", _
            Replacement:="Servicio Integrales", LookAt:=xlPart
        h1.Cells.Replace What:="Servicios Normalizados", _
            Replacement:="Servicios Por Normalizar", LookAt:=xlPart
        h1.Cells.Replace What:="Número", _
            Replacement:="Número de eventos", LookAt:=xlPart
        '
        n = InStrRev(archivo, ".")
        nombre = Left(archivo, n - 1)
        h1.Cells.Copy
        Workbooks.Add
        ActiveSheet.Paste
        ActiveWorkbook.SaveAs Filename:=ruta & "cambiados\" & nombre & ".html", _
            FileFormat:=xlTextPrinter, CreateBackup:=False
        ActiveWindow.Close False
        m = m + 1
        archivo = Dir()
    Loop
    h1.Cells.Clear
    Application.ScreenUpdating = True
    MsgBox "Archivos procesados: " & m, vbInformation, "TERMINADO"
End Sub

Pon la macro en un archivo de excel y guarda el archivo de excel en la misma carpeta en donde tienes tus archivos Html, lo que hace la macro es cambiar el texto, crea un nuevo archivo y lo guarda en una carpeta llamada "cambiados".


Saludos. Dante Amor

Recuerda valorar la respuesta.

En cuanto pueda lo veo y te valoro.

Gracias por tu esfuerzo.

Alfonso J.

Hola Dante !.

He hecho lo que me dijiste, y he probado con el fichero original que te mandé en .html, pero lo único que hace la macro es crear el directorio "cambiados".

Al fichero original no le hace cambio alguno, y no lo procesa ni lo cambia.

No sé si he hecho bien.... tengo la carpeta C:\Eventos\ y todos los ficheros .html en él, incluso el que contiene la macro. Abro la macro y la ejecuto con el botón que me has añadido, pero sólo hace lo que te comenté, crea la subcarpeta "cambiados".

Saludos. J.A.

Te envié una nueva versión, faltaba esta instrucción:

ChDir ruta

¡Estupendo ! Funciona correcto.

He hecho algún cambio para que sobrescriba directamente y no cree el directorio "cambiados", y va ok.

Gracias Dante.

Te cojo como "experto" de cabecera..., je, je.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas