Visual Basic - borrar un caracter de una columna de excel

Life is soft - evento anual de software empresarial
 
Vista:

borrar un caracter de una columna de excel

Publicado por claudia (3 intervenciones) el 26/04/2018 02:46:39
Hola buen dia, tengo una base de datos en excel, mismo que creo una macro para pasar la informacion en un archivo de txt

Pero en la columna 4 hay un numero que debo de pasar con una longitud de 4 caracteres en txt, y al pasarlo en archivo txt le agrego tres ceros es decir:

ejemplo : Columna D: tiene valor de 2, lo paso en el txt 0002

Pero al terminar el ciclo que recorre las filas y las columas, me pone el 2 (dato de la columna) mas 0002. es decir 20002, no quiero que me imprima en el txt el numero 2, solo los 4 caracteres que es 0002

Alguien puede ayudarme

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

borrar un caracter de una columna de excel

Publicado por Antoni Masana (558 intervenciones) el 26/04/2018 07:40:40
Si, te podemos ayudar.

Sube el fichero y le damos un vistazo.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar un caracter de una columna de excel

Publicado por claudia (3 intervenciones) el 27/04/2018 01:50:14
Hola gracias! aqui esta

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
For i = 1 To nFilas
 
    For j = 1 To nColumnas
 
        tx.Write ht.Cells(i + 2, j)
 
          If k = j Then
 
             m = ht.Cells(n, k)
             p = String(4 - Len(m), "0") & m
 
             tx.Write p
 
          End If
 
     Next j
 
    n = n + 1
    tx.WriteLine
 
Next i
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

borrar un caracter de una columna de excel

Publicado por Antoni Masana (558 intervenciones) el 27/04/2018 07:55:22
No entiendo que es lo que hace el código que has enviado y desde luego no es el fichero.

Prueba esto

1
2
3
4
5
6
7
8
9
10
11
12
For i = 1 To nFilas
    For j = 1 To nColumnas
        tx.Write ht.Cells(i + 2, j)
        If k = j Then
            m = ht.Cells(n, k)
            p = Format(m, "000#")    ' --- String(4 - Len(m), "0") & m
            tx.Write p
        End If
    Next j
    n = n + 1
    tx.WriteLine
Next i

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar un caracter de una columna de excel

Publicado por claudia (3 intervenciones) el 27/04/2018 22:24:59
este es el código completo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Sub CrearTXT()
 
    Dim NombreArchivo, RutaArchivo As String
    Dim obj As FileSystemObject
    Dim tx As Scripting.TextStream
    Dim ht As Worksheet
    Dim i, j, k, m, n, p, nFilas, nColumnas As Integer
 
    NombreArchivo = "Dispersion"
    RutaArchivo = ActiveWorkbook.Path & "\" & NombreArchivo & ".txt"
 
    Set ht = Worksheets("Dispersion")
    Set obj = New FileSystemObject
    Set tx = obj.CreateTextFile(RutaArchivo)
 
    nColumnas = ht.Range("A2", ht.Range("A2").End(xlToRight)).Cells.Count
    nFilas = ht.Range("A3", ht.Range("A3").End(xlDown)).Cells.Count
 
    k = 5
    n = 3
 
    For i = 1 To nFilas ' recorre las filas
        For j = 1 To nColumnas ' recorre las columnas
            tx.Write ht.Cells(i + 2, j)   ´pasa la información de las filas y columnas a un archivo txt
                  If k = j Then
 
                 m = ht.Cells(n, k)  ‘ obtiene el valor de la celda
                'p = String(4 - Len(m), "0") & m   ‘ agregar tres ceros, si la longitud es menor a 4 caracteres
 
                 tx.Write p   ‘ se imprime en txt el valor de la columna mas los 3 ceros
    }
              End If
    Next j
 
            n = n + 1
            tx.WriteLine
      Next i
End Sub



Saludos y gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar