Entiendo que en el momento que tuviera dos celdas consecutivas sin fórmula que tuviera que recuperar ese código que planteas no me valdría, porque estoy copiando una fórmula que no existe de la celda de arriba en la celda de abajo de ella. imagino que con borrar unas lineas te refieres a eliminar esos registros, estirar hacia abajo la tabla y en las nuevas líneas creadas añadirlos al final con los datos que tuvieran los antiguos, con las fórmulas arrastradas y creadas de nuevo. Entonces habria que escribir a mano todos los datos de cada columna a rellenar de todas las filas nuevas, dando lugar a cometer errores de copia/pega o reeescritura. Además, los registros los tengo ordenados con cierto orden , le perdería. es lo que comentaba antes, era solución funcional trabajando con un excel en el mismo idioma en los dos ordenadores, por eso esto queda descartado, ya que por lo que veo excel no reconoce las funciones de un idioma a otro. No sé, la verdad que me sorprende un poco que no se pueda hacer lo que planteo aquí al inicio.. Al final me voy a conocer todos los foros, ajja. Un saludo!
Por
MANTONIOPM , · publicado el 11 de septiembre 11 sep
Mi Macros transforma datos del Excel a txt separando las columnas por un palote, mi problema es que transfiere también la información de filas vacías agregando los palotes hasta el infinito.
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 = "LE" & Cells(2, 4).Value & Cells(3, 4) & "0008010000" & Cells(4, 5) & Cells(5, 5) & Cells(6, 5) & "1"
RutaArchivo = ActiveWorkbook.Path & "\" & NombreArchivo & ".txt"
Set obj = New FileSystemObject
Set tx = obj.CreateTextFile(RutaArchivo)
Set ht = Worksheets("REGISTRO FINAL")
nfilas = ht.Range("a6", ht.Range("a6").End(xlDown)).Cells.Count
ncolumnas = ht.Range("a5", ht.Range("a5").End(xlToRight)).Cells.Count
For i = 5 To nfilas
For j = 1 To ncolumnas
tx.Write ht.Cells(i + 1, j)
If j < ncolumnas Then tx.Write "|"
Next j
tx.WriteLine
Next i
tx.Close