
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