Cambiar a txt varios archivos con extensión desconocida mediante una macro

Estoy atorada con un problema, tengo varios archivos con extensión desconocida y solo quiero que una macro renombre el archivo poniendo .txt al final pero son varias carpetas con 24 archivos asi se de macros a nivel básico pero me atore en es tema

1 respuesta

Respuesta
1

- ¿Quieres qué a todos los archivos se les agregue al final ".txt" o que se les cambie la extensión que tengan por ".txt"?

- Tú elijes la carpeta y que la macro cambie todos los archivos de esa carpeta, ¿luego si quieres otra carpeta nuevamente la eliges y que la macro cambie archivos?

Gracias por responder y esta es mi aclaración :)

-Que se le agregue txt al final y

-Yo elijo la carpeta y que de los archivos que se encuentran dentro les agregue la extensión

Gracias de antemano

Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel y en una hoja en blanco
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: listar_archivos
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

La macro te va a poner en la hoja en blanco en la columna A el nombre anterior del archivo y en la columna B el nombre nuevo

Sub listar_archivos()
'Por.DAM
On Error Resume Next
Set navegador = CreateObject("shell.application")
    carpeta = navegador.browseforfolder(0, "SELECCIONE UNA CARPETA", 0, "C:\trabajo").items.Item.Path
    If carpeta = "" Then Exit Sub
    carpeta = carpeta & "\"
    ChDir carpeta
    archi = Dir("*.*")
    f = 2
    Range("A:B").Clear
    Do While archi <> ""
        Cells(f, "A") = carpeta & archi
        Name carpeta & archi As carpeta & archi & ".txt"
        Cells(f, "B") = carpeta & archi & ".txt"
        f = f + 1
        archi = Dir()
    Loop
Set navegador = Nothing
End Sub

Saludos.Dam
Si es lo que necesitas.

WOW.... de verdad muchísimas gracias esta excelente

yo me estaba complicando la vida con muchas cosas mas

estoy muy agradecida

Si puedes explicarme el código yo mas o menos le entiendo pero quisiera entenderle un poco mas

Muchísimas gracias :)

Te regreso la macro con la explicación

Sub listar_archivos()
'Agrega .txt a todos los archivos dentro de una carpeta
'Por.DAM
'Si hay algún error (al renombrar el archivo) se pasa a la siguiente línea de código,
'es decir, no se interrumpe la ejecución
On Error Resume Next
'Establece la variable navegador con la instrucción de crear un objeto de shell
Set navegador = CreateObject("shell.application")
'En la variable carpeta se almacena la ruta que escojas cuando se abre el navegador
    carpeta = navegador.browseforfolder(0, "SELECCIONE UNA CARPETA", 0, "C:\trabajo").items.Item.Path
    'si la carpeta no es selccionda se sale de la macro
    If carpeta = "" Then Exit Sub
    'le agrega al final de la carpeta seleccionada la diagonal \
    carpeta = carpeta & "\"
    'se cambia al directorio de la carpeta, para poder leer los archivos
    ChDir carpeta
    'almacena en la variable archi todos los archivos
    archi = Dir("*.*")
    'inicializa la variable f con un 2
    f = 2
    'las columnas A y B son borradas
    Range("A:B").Clear
    'Recuerdas que en la variable archi se almacenaron todos los archivos, bueno
 'en esta parte empieza a leer uno por uno hasta que llega a blanco
    Do While archi <> ""
        'almacena en la celda de A el nombre de la carpeta y el archivo
        Cells(f, "A") = carpeta & archi
        'renombra el archivo con el mismo archivo y le agrega .txt
        Name carpeta & archi As carpeta & archi & ".txt"
        'almacena en la celda de B el nombre de la carpeta y el archivo y .txt
        Cells(f, "B") = carpeta & archi & ".txt"
        'incrementa en uno el valor de f para poner en la siguiente línea
 'los siguientes archivos
 f = f + 1
 'con la siguiente instrucción se pasa al siguiente archivo
 archi = Dir()
    'inicia otra vez el ciclo
    Loop
'limpia la variable navegador
Set navegador = Nothing
'y colorin colorado este cuento se acabado
End Sub

Saludos.DAM

No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas