Saltar al contenido

Como CAMBIAR NOMBRE de ARCHIVO desde un LISTBOX de Excel VBA #551

Renombrar archivos ficheros con macros

EDITAR ARCHIVOS Y RENOMBRARLOS CON MACRO DE EXCEL

En este post se muestra como renombrar un archivo que se encuentra listado en un listbox de Excel con una macro de Excel VBA. La macro cambiará el nombre del archivo seleccionado en el listbox, luego de presionar el ícono del aplicativo para renombrar el fichero.

Aprende a manejar Excel, click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.

  
 

Mira la macro en acción, una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestro canal de You Tube, mira el playlist con  vídeos relacionados donde podrás ver la macros relacionadas en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.

EDITAR ARCHIVO CON EXCEL VBA – Renombrar Archivos

Este ejemplo muestra como cambiar el nombre de un archivo seleccionado de un listado que se encuentra en un Listbox de Excel VBA, seleccionado el archivo se muestra un imputbox que nos solicita ingresar el nombre que deseamos dar al archivo, para luego proceder a renombrar dicho archivo con el nombre dado en el imputbox.

El botón que ejecuta o cambia el nombre del archivo es el que tiene in icono con un lápiz, al presionarlo se muestra el formulario que solicita password.

Antes de renombrar el archivo se muestra un formulario que solicita un password para proceder a cambiar el nombre del fichero, en este ejemplo el password es «admin» (todo junto en minúscula, sin las comillas).

Una vez ingresada la clave en el formulario, sale un mensaje de seguridad, preguntando se se desea cambiar el nombre del archivo, en caso de cancelar la macro no hace nada y si se presiona que si procede a cambiar el nombre del fichero, mostrándose también el nuevo nombre del fichero en el listbox.

Explicación del código para cambiar nombre de ficheros con macros VBA

Al presionar el botón para editar el archivo, se ejecuta el siguiente código, que en primer lugar toma el nombre actual del archivo, que es obtenido de la columna 3 del listbox y lo carga en la variable «nomold», también establece en la variable «fila» cual es la fila del listbox donde está el archivo a modificar, esto sirve para luego escribir en el listbox el nombre nuevo del archivo.

nomold = (UserForm9.ListBox1.List(ListBox1.ListIndex, 3))
fila = UserForm9.ListBox1.ListIndex

Luego se determinar o se asigna a la variable «nummacro» un número de macro para identificar posteriormente desde donde se está llamando la macro ya que es necesario, porque se usa parte del código en diferentes macros y es necesario identificar para agregar un código especifico a cada macro, posteriormente se muestra el formulario que solicita el password, el código es el siguiente:

nunmacro = 2
UserForm8.Show

El formulario que solicita password determina si la clave ingresada en el formulario de VBA es verdadera, en caso que sea verdadera y dependiendo de la variable «nunmacro » (número de macro), ejecutará un código diferente, en este caso el numero de macro era 2, por ende ejecutará la siguiente macro:

If TextBox1 = «admin» Then
Unload Me

Select Case nunmacro
Case Is = 1
macro …..
Case Is = 2

macro….

Como en este ejemplo el valor de la variable «nummacro» es igual a dos ejecutará el segundo código que es el siguiente: 

Con este código se muestra un msgbox que solicita una acción al operador d del aplicativo, si cancela la macro no hace nada, si acepta la macro procede a ejecutar la macro, se usa el código:

resp = MsgBox(«Está por cambiar el nombre del archivo seleccionado, seguro requiere editar el nombre del fichero?», vbInformation + vbOKCancel, «AVISO»)

Si se acepto la modificación del nombre del archivo la respuesta será uno entonces, luego de aceptar que sea cambiado el nombre del archivo sale un imputbox que pide que el usuario ingrese el nombre nuevo del archivo y se carga en una variable «nombich»:

If resp = 1 Then
nomfich = Application.InputBox(prompt:=»Establezca el nuevo nombre del archivo:», Type:=2)

Luego determino el nombre actual del archivo que es extraído del listado en el listbox, con los siguientes códigos:
nomcap = StrReverse(nomold)
exten = Left(nomcap, InStr(nomcap, «.») – 1)
exten = StrReverse(exten)
nomcap = Mid(nomcap, InStr(nomcap, «\») + 1)
nomcap = StrReverse(nomcap)
nomnew = nomcap & «\» & nomfich & «.» & exten

Por último renombramos el archivo con el siguiente código cambiando el nombre actual por en nuevo nombre del archivo, se la siguiente forma:

Name nomold As nomnew

Luego se carga en el listbox el nombre nuevo del archivo cuyo nombre acabamos de cambiar, se usan los códigos:

UserForm9.ListBox1.List(fila, 1) = nomfich & «.» & exten
UserForm9.ListBox1.List(fila, 3) = nomnew
MsgBox («El archivo se renombró con éxito»), vbInformation, «AVISO»
End If

Código VBA para Renombrar Archivos con una Macros de Excel VBA

Código insertado en el formulario 8

Private Sub CommandButton1_Click()
Dim resp As Integer
On Error Resume Next

If TextBox1 = «admin» Then
Unload Me

Select Case nunmacro
Case Is = 1
resp = MsgBox(«Está por eliminar el archivo seleccionado, seguro requiere eliminar el fichero?», vbInformation + vbOKCancel, «AVISO»)
If resp = 1 Then
‘Vuelve a preguntar por segunda vez que confirme eliminación archivo
resp = MsgBox(«El archivo no se podrá recuperar, seguro requiere eliminar el archivo seleccionado?», vbCritical + vbOKCancel, «AVISO»)
If resp = 1 Then
Kill (myfilekill)
UserForm9.ListBox1.RemoveItem fila
MsgBox («El archivo se eliminó con éxito»), vbInformation, «AVISO»
End If
End If
Case Is = 2
resp = MsgBox(«Está por cambiar el nombre del archivo seleccionado, seguro requiere editar el nombre del fichero?», vbInformation + vbOKCancel, «AVISO»)
If resp = 1 Then
nomfich = Application.InputBox(prompt:=»Establezca el nuevo nombre del archivo:», Type:=2)
nomcap = StrReverse(nomold)
exten = Left(nomcap, InStr(nomcap, «.») – 1)
exten = StrReverse(exten)
nomcap = Mid(nomcap, InStr(nomcap, «\») + 1)
nomcap = StrReverse(nomcap)
nomnew = nomcap & «\» & nomfich & «.» & exten
Name nomold As nomnew

UserForm9.ListBox1.List(fila, 1) = nomfich & «.» & exten
UserForm9.ListBox1.List(fila, 3) = nomnew
MsgBox («El archivo se renombró con éxito»), vbInformation, «AVISO»
End If

End Select

Else
MsgBox («La clave ingresada para eliminar archivos es incorrecta, verifique»), vbInformation, «AVISO»
TextBox1 = Clear
TextBox1.SetFocus
End If
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Código insertado en el formulario 9

UserForm9.ListBox1.AddItem
UserForm9.ListBox1.List(UserForm9.ListBox1.ListCount – 1, 3) = «Total de registros: » & UserForm9.ListBox1.ListCount – 4

Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Private Sub CommandButton25_Click()
On Error Resume Next
myfilekill = (UserForm9.ListBox1.List(ListBox1.ListIndex, 3))
fila = UserForm9.ListBox1.ListIndex
nunmacro = 1
UserForm8.Show
End Sub

Private Sub CommandButton26_Click()
Unload UserForm9
End Sub

Private Sub CommandButton27_Click()
On Error Resume Next
nomold = (UserForm9.ListBox1.List(ListBox1.ListIndex, 3))
fila = UserForm9.ListBox1.ListIndex
nunmacro = 2
UserForm8.Show
End Sub

Private Sub ListBox1_Click()

End Sub

Private Sub UserForm_Initialize()
UserForm9.Top = 100
UserForm9.Left = 135
UserForm9.Width = 830
UserForm9.Height = 350
End Sub

 


Descarga el Fichero como Renombrar Archivos con Macro

Descarga desde acá el archivo usado como ejemplo en este post y en el vídeo explicativo, el mismo es totalmente gratuito y libre su uso, solicito aportar para sostener esta web, si está dentro de tus posibilidades, desde ya muchas gracias.

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407