Pasar Txt a Excel con distinto formato de separador de miles

Que me funciona a la perfección el problema es que los archivos txt dependiendo del pc que se descargue llegan con la diferencia de separador de miles

Es decir que ejemplo algunos precios son 1.990 y el otro txt es 1,990 necesito que la macro convierta el, a punto y si es en punto lo deje tal cual adjunto macro y txt de ejemplo y como debe quedar

comparto enlace : https://drive.google.com/open?id=1twBvDpPYBEdRQuyFzvsotJWhk16VAxDO 

Sub TRERSTOCK()
Application.ScreenUpdating = False
MsgBox "INGRESE STOCK TXT"
Sheets("ANALISIS").Select
Dim NombreArchivo As String
NombreArchivo = Application.GetOpenFilename()
Application.CutCopyMode = False
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & NombreArchivo, Destination:=Range( _
"$Q$7"))
.Name = "STOCK 611"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 14
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(23, 20, 32, 32, 32, 34, 8, 14, 14, 10)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False

End With
End Sub

1 respuesta

Respuesta
1

Corrí tu macro y este es el resultado sin hacerle hecho ninguna modificación, en mi maquina lo deja con comas, así que basado en esto te recomiendo que verifiques la configuración de tu windows lo más probable es que tengas definido como separador por default el punto y no la coma

Hola Muchas gracias por la pronta respuesta y darte el tiempo de revisar

Si el problema es que los archivos se descargan de distintos pc, y la configuración es distinta

Lo que me gustaría es que la macro revisara si es con separador de miles con (.) O con (,)

si es con (.) No realizar nada ya que se convierte bien con (.)

Si es con (,) realizara la acción de transformar a (.)

teagradesco tu ayuda, me solucionaría el problema

Saludos

Entonces prueba con esta macro, la macro analizara unicamente las celdas POR y Y leerá los valores y si encuentra puntos los cambiara a comas ojo si manejas decimales también ese punto lo pasara a comas.

Sub TRERSTOCK()
Application.ScreenUpdating = False
MsgBox "INGRESE STOCK TXT"
Sheets("ANALISIS").Select
Dim NombreArchivo As String
NombreArchivo = Application.GetOpenFilename()
Application.CutCopyMode = False
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & NombreArchivo, Destination:=Range( _
        "$Q$7"))
        .Name = "STOCK 611"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 14
        .TextFileParseType = xlFixedWidth
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileFixedColumnWidths = Array(23, 20, 32, 32, 32, 34, 8, 14, 14, 10)
        .TextFileThousandsSeparator = ","
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
    Set datos = Range("q7").CurrentRegion
    filas = datos.Rows.Count
    With datos.Columns(8).Resize(filas, 2)
        .Replace what:=".", replacement:=","
        .HorizontalAlignment = xlRight
    End With
    Set datos = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas