¿Me da error 70 en tiempo de ejecución permiso denegado?

¿A qué se debe que me marque error 70 en tiempo de ejecución?

Option Explicit

Sub creatxt()

Dim nombrearchivo, rutaarchivo As String
Dim obj As FileSystemObject
Dim tx As Scripting.TextStream
Dim ht As Worksheet
Dim i, j, nfilas, ncolumnas As Integer
nombrearchivo = "batch"
rutaarchivo = ActiveWorkbook.Path & "\" & nombrearchivo & ".txt"
Set obj = New FileSystemObject
Set tx = obj.CreateTextFile(rutaarchivo)
Set ht = Worksheets("Hoja1")
nfilas = ht.Range("a2", ht.Range("a2").End(xlDown)).Cells.Count
ncolumnas = ht.Range("a1", ht.Range("a1").End(xlToRight)).Cells.Count
For i = 1 To nfilas
For j = 1 To ncolumnas
tx.Write ht.Cells(i + 1, j)
tx.Write ","
Next j
tx.WriteLine

Next i
End Sub

1 Respuesta

Respuesta
1

¿Tienes la carpeta protegida contra escritura?

Probé tu macro y no tengo problemas.

Prueba con esta otra versión

Private Sub Exportar_a_Txt()
'Por.Dante Amor
    nFileNum = FreeFile
    nombrearchivo = "batch"
    rutaarchivo = ThisWorkbook.Path & "\" & nombrearchivo & ".txt"
    Set ht = Worksheets("Hoja1")
    Open rutaarchivo For Output As #nFileNum
    nfilas = ht.Range("a2", ht.Range("a2").End(xlDown)).Cells.Count
    ncolumnas = ht.Range("a1", ht.Range("a1").End(xlToRight)).Cells.Count
    For i = 1 To nfilas
        For j = 1 To ncolumnas
            salida = salida & ht.Cells(i + 1, j) & ","
        Next j
        Print #nFileNum, salida
        salida = Empty
    Next i
    Close #nFileNum
    MsgBox "Fin"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

disculpe ahora me sale error 75

¿Y qué dice el error?

¿Y en cuál línea de la macro se detiene?

Me manda error 75 en tiempo de ejecución. Error de acceso a la ruta o el archivo

 Open rutaarchivo For Output As #nFileNum

Por lo que dicen los 2 mensajes:

"error 70 en tiempo de ejecución permiso denegado"

"Error de acceso a la ruta o el archivo"

Es claro que no tienes permisos para crear archivos en esa carpeta, o está protegida o está en algún servidor o en alguna nube, no lo sé.

Porque no intentas escribir en otra carpeta, por ejemplo en C:\

Cambia esto

rutaarchivo = ThisWorkbook.Path & "\" & nombrearchivo & ".txt"

Por esto

rutaarchivo = "C:\" & nombrearchivo & ".txt"

Prueba y me comentas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas