Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/02/2011, 13:16
Avatar de mrocf
mrocf
 
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Funcion para asignar Caracteres a un Texto con V B

O sea que las respuestas a mis re-preguntas son:

-> Si, quise decir "dar formato" (numberformat no es una función sino una propiedad)

-> No tienes campos numéricos que multiplicar por 100

-> Todos los campos numéricos tienen una longitud especificada

-> Las tabulaciones son del archivo de texto generado
________________________

Para evitar entrar en el problema de generar un archivo de texto con tabulaciones innecesarias, pues -simplemente- no lo generamos así.
Una alternativa sería (considero que tu BD tiene sólo 3 columnas):

Código PHP:
Sub Grabar_fichero_de_texto()
Dim misLongAs BytemiForm As StringFichero As String
misLong 
= Array(10620)
Application.ScreenUpdating False

With ThisWorkbook
  ActiveSheet
.Copy After:=.Sheets(.Sheets.Count)
End With
With Range
([a1], [a1].SpecialCells(xlCellTypeLastCell))
  .
Value = .Value
End With

For 0 To UBound(misLong)
miForm miForm "&Te(" _
  Cells
(11).Address(FalseFalse) & "," _
  CByte
(misLong(i)) & ")"
Next i
With Range
("AA1:AA" & [a1].End(xlDown).Row)
  .
Formula "=" Right(miFormLen(miForm) - 1)
  .
NumberFormat "@"
  
.Value = .Value
End With

[a:z].Delete
ActiveSheet
.Move

Fichero 
ThisWorkbook.FullName
Fichero 
Left(FicheroInStr(Fichero".") - 1) & ".txt"
If Dir(Fichero) <> "" Then Kill Fichero
ActiveWorkbook
.SaveAs Filename:=FicheroFileFormat:=xlText
ActiveWorkbook
.Close False

Application
.ScreenUpdating True
End Sub

Function Te(rng As RangeAs Byte)
Te Format(rngString(Q"0"))
End Function 
Como advierto que conoces del tema, será redundarte comentarte que el Variant "misLong" contiene las longitudes de los campos numéricos.
A tí te queda completar con las 10 restantes.

Además puedes constatar que para generar una sola columna con la información total, utilizo una función personalizada: "Te()".

¿Te sirve la idea?
Saludos, Cacho.

Última edición por mrocf; 24/02/2011 a las 13:22