Como puedo borrar un archivo csv de internet con una macro de excel?

El tema esta en que yo en la red local estoy conectado con un PLC que me registra datos en csv en un usb, estos los importo a un excel a través de la dirección IP. Lo que quiero es que una vez importados pueda borrar dichos archivos para vaciar la memoria del usb. ¿Es posible hacerlo?

1 Respuesta

Respuesta
1

H o l a :

Si quieres borrar un solo archivo, utiliza esta macro, cambia la ruta y el nombre de archivo a borrar.

Sub BorrarCsv()
'Por.Dante Amor
    ruta = "G:\Pruebas\"
    arch = "libro1.csv"
    If Dir(ruta & arch) <> "" Then
        Kill ruta & arch
        MsgBox "Archivo Borrado"
    Else
        MsgBox "Archivo no existe"
    End If
End Sub

Si quieres borrar todos los archivos Csv, utiliza esta macro, solamente tienes que indicarle la ruta:

Sub BorrarTodosCsv()
'Por.Dante Amor
    On Error Resume Next
    ruta = "G:\Pruebas\"
    arch = "*.csv"
    Kill ruta & arch
    MsgBox "Archivos Borrados"
End Sub

Gracias por tu respuesta, pero no me sirve.

La ruta es una dirección IP como se lo tengo que poner?

Sub BorrarTodosCsv()
'Por.Dante Amor
    On Error Resume Next
    ruta = "URL;http://192.168.1.118/disk/usb1/trend/COMPARACIO/"
    arch = "*.csv"
    Kill ruta & arch
    MsgBox "Archivos Borrados"
End Sub

Porque así no me los borra.

¿Puedes montar la ip en un disco virtual?

De otra forma prueba así:

Sub BorrarTodosCsv()
'Por.Dante Amor
    On Error Resume Next
    ruta = "//192.168.1.118/disk/usb1/trend/COMPARACIO/"
    arch = "*.csv"
    Kill ruta & arch
    MsgBox "Archivos Borrados"
End Sub

Revisa el nombre de las carpetas y me parece que la diagonal debe ser así:

Sub BorrarTodosCsv()
'Por.Dante Amor
    On Error Resume Next
    ruta = "\\192.168.1.118\disk\usb1\trend\COMPARACIO\"
    arch = "*.csv"
    Kill ruta & arch
    MsgBox "Archivos Borrados"
End Sub

s a l u d o  s

De estas formas tampoco, quizás lo mejor es esto que dices de montar la ip en un disco virtual, no lo he echo nunca, sabes de algún programa o como puedo hacerlo?

Porque sino estaba pensando, puedo entrar en ese archivo que me seleccione todas las celdas y me las borre? Quizás sea mas complicado no?

Muchas gracias por tu ayuda.

Esta macro ya la probé con el número de Ip y me funciona

Sub BorrarTodosCsv()
'Por.Dante Amor
    On Error Resume Next
    ruta = "\\192.168.1.118\disk\usb1\trend\COMPARACIO\"
    arch = "*.csv"
    Kill ruta & arch
    MsgBox "Archivos Borrados"
End Sub

Revisa que estén bien escritas las carpetas.

La diagonal debe ser esta: \

La última carpeta dice COMPARACIO y tal vez le falta la última letra N: COMPARACION.

Prueba nuevamente esta última macro, te repito, yo ya la probé en una dirección de IP y me funciona.

Si te envía error, dime qué erro te aparece en cuál línea de la macro se detiene.

S a l u d o s

Error no me sale si lo hace bien, pero los archivos siguen ahí, debe ser otra cosa.

No se quizás el tema es que no puedo entrar en dicho usb a través de la IP, que solo se puedan ver los datos pero no modificar-los.  

Lo único que quizás si se podría es entrar en el archivo csv. Y borrar lo de dentro, no se, como lo ves? 

¿Qué error te envía?

Si no se pueden leer los archivos, tampoco se podrán abrir y borrar.

Prueba nuevamente con esta:

Sub BorrarTodosCsv()
'Por.Dante Amor
    ruta = "\\192.168.1.118\disk\usb1\trend\COMPARACIO\"
    arch = "*.csv"
    Kill ruta & arch
    MsgBox "Archivos Borrados"
End Sub

Y revisa los nombres de las carpetas.

Leerlos si, porque yo los exporto sin ningún problema:

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://192.168.1.118/disk/usb1/trend/COMPARACIO/COMPARACIO.csv", Destination:=Range( _
"COMPARACIO!$A$1"))
.Name = "COMPARACIO_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With

El tema seria después de exportarlos borrarlos.

¿Probaste la macro?

¿Qué error te envía y en cuál línea se detiene la macro?

No me da error me la ejecuta, lo que no borra nada.

Vamos a probar con un solo archivo, cambia en la macro "un_nombre_ejemplo.csv", por un nombre de archivo que sepas que existe en la IP

Sub BorrarTodosCsv()
'Por.Dante Amor
    ruta = "\\192.168.1.118\disk\usb1\trend\COMPARACIO\"
    arch = "un_nombre_ejemplo.csv"
    Kill ruta & arch
    MsgBox "Archivos Borrados"
End Sub

De esta forma me da error de archivo no encontrado.

Probé con las 2 primeras diagonales así // y las otras diagonales así: \ y sí me funciona, haz el intento:

Sub BorrarTodosCsv()
'Por.Dante Amor
    ruta = "//192.168.1.118\disk\usb1\trend\COMPARACIO\"
    arch = "COMPARACIO.csv"
    Kill ruta & arch
    MsgBox "Archivos Borrados"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas