Saltar al contenido

Como ELIMINAR ARCHIVOS DESDE un LISTBOX de Excel VBA #550

Macro para eliminar quitar suprimir archivos ficheros

ELIMINAR ARCHIVOS CON MACRO DE EXCEL

La macro que se muestra en este ejemplo permite eliminar un archivo con una macro de Excel, en este ejemplo se listan los archivos en un listbox, seleccionando un archivo y presionando el botón para eliminar, el mismo se borra de nuestra PC, todo se hace con una macro de Excel VBA.

Maneja Excel como los mejores, 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:

Case Is = 1
resp = MsgBox(«Está por eliminar el archivo seleccionado, seguro requiere eliminar el fichero?», vbInformation + vbOKCancel, «AVISO»)

Nótese que antes de eliminar el archivo solicita confirmación, en el caso de que se presione aceptar, la respuesta es =1, luego se evalúa el número de la respuesta obtenida por el Msgbox de confirmación.

En caso de la respuesta ser igual a uno, lo que equivale a aceptar eliminar el archivo, vuelve a preguntar para confirmar nuevamente si desea eliminar, es decir que se debe confirmar dos veces antes de que la macro elimine el archivo, se debe tener cuidado porque los archivos no van a la papelera de reciclaje, se usa el código:

Case Is = 1
resp = MsgBox(«Está por eliminar el archivo seleccionado, seguro requiere eliminar el fichero?», vbInformation + vbOKCancel, «AVISO»)
If resp = 1 Then

resp = MsgBox(«El archivo no se podrá recuperar, seguro requiere eliminar el archivo seleccionado?», vbCritical + vbOKCancel, «AVISO»)

Si se confirmó eliminar el archivo las dos veces procede suprimir el fichero de nuestra PC  y a su vez remueve del listbox el archivo eliminado con el siguiente comando:

Kill (myfilekill)
UserForm9.ListBox1.RemoveItem fila

Código VBA para eliminar archivos listados en listbox de Excel

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