Modulo VBA exporta txt no funciona al cambiar celda origen tabla
publicado
Buenos dias,
Tengo un modulo en VBA que me coge una tabla y me la exporta a txt por Tabulaciones.
Funciona perfectamente siempre que la tabla empiexe en la celda "A1".
El problema es que cuando quier por ejemplo que la tabla empieze a partir de "C10" y lo indico en la fila que cuenta filas y columnas no funciona.
El codigo que uso es el siguiente:
Sub ASM()
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
tx.Write Ht.Cells(i, j).Value
If j < nColumnas Then tx.Write vbTab
Next j
tx.WriteLine
Next i
tx.Close
Set obj = Nothing
MsgBox "El txt creado con exito..."
End Sub
Estando la tabla en A1 funciona prefectamente tal y como en el adjunto TABLA EN A1
een cambio si la muevo a C10 me sale totalmente descuadrado, con filas vacias por encima y se come parte de las columnas tal como el adjunto TABLA EN C10.
Lo unico que de moneto he cambiado es la primera posicion de la tabla, es decir:
Buenos dias,
Tengo un modulo en VBA que me coge una tabla y me la exporta a txt por Tabulaciones.
Funciona perfectamente siempre que la tabla empiexe en la celda "A1".
El problema es que cuando quier por ejemplo que la tabla empieze a partir de "C10" y lo indico en la fila que cuenta filas y columnas no funciona.
El codigo que uso es el siguiente:
Sub ASM()
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 = "pedidos"
RutaArchivo = "C:\IMPORTA_PEDIDOS\IMPORTA_ASM" & "\" & NombreArchivo & ".txt"
Set Ht = Worksheets("CARGA_ETIQUETAS")
Set obj = New FileSystemObject
Set tx = obj.CreateTextFile(RutaArchivo)
nColumnas = Ht.Range("A1", Ht.Range("A1").End(xlToRight)).Cells.Count
nFilas = Ht.Range("A1", Ht.Range("A1").End(xlDown)).Cells.Count
For i = 1 To nFilas
For j = 1 To nColumnas
tx.Write Ht.Cells(i, j).Value
If j < nColumnas Then tx.Write vbTab
Next j
tx.WriteLine
Next i
tx.Close
Set obj = Nothing
MsgBox "El txt creado con exito..."
End Sub
Estando la tabla en A1 funciona prefectamente tal y como en el adjunto TABLA EN A1
een cambio si la muevo a C10 me sale totalmente descuadrado, con filas vacias por encima y se come parte de las columnas tal como el adjunto TABLA EN C10.
Lo unico que de moneto he cambiado es la primera posicion de la tabla, es decir:
nColumnas = Ht.Range("C10", Ht.Range("C10").End(xlToRight)).Cells.Count
nFilas = Ht.Range("C10", Ht.Range("C10").End(xlDown)).Cells.Count
Pero el resultado no es el deseado. Alguna solucion de como indicar correctamente el inicio de la tabla??
Ya me estoy volviendo un poco loco.
Muchas gracias, saludos.
TABLA EN A1.txt TABLA EN C10.txt