¿Excel?

Lo que pasa es que cuando exporto los datos del msflexgrid a excel los rut que empiezan con 0 no los coloca lo salta
Ejemplos
El rut es 09837363 y en el excel me coloca 987363 sin el 0
Por que pasa eso ayuda por favor
Private Sub exportar_Click()
Dim i As Integer, j As Integer
Dim objExcel As Excel.Application
Dim HojaExcel As Excel.Worksheet
Set objExcel = Excel.Application
objExcel.Workbooks.Add
Set HojaExcel = objExcel.ActiveWorkbook.Worksheets(1)
For i = 1 To MS.Rows - 1
For j = 1 To MS.Cols - 1
objExcel.Cells(i, j) = MS.TextMatrix(i, j)
Next
Next
objExcel.Visible = True
Set HojaExcel = Nothing
Set objExcel = Nothing
End Sub
Private Sub llenar2()
MS.TextMatrix(0, 1) = "Periodo"
MS.TextMatrix(0, 2) = "rut"
MS.TextMatrix(0, 3) = "nombre"
MS.TextMatrix(0, 4) = "cpais"
MS.TextMatrix(0, 5) = "pais"
MS.TextMatrix(0, 6) = "monto"
fil = 1
Do While Not m1.EOF
MS.Rows = MS.Rows + 1
MS.TextMatrix(fil, 1) = m1!periodo
MS.TextMatrix(fil, 2) = m1!rut
MS.TextMatrix(fil, 4) = m1!codigopais
'MS.TextMatrix(fil, 5) = pp!pais
MS.TextMatrix(fil, 6) = m1![Suma De MONTO]
m1.MoveNext
fil = fil + 1
Loop
End Sub
Gracias
Respuesta
1
¿Ruta qué es?
¿Es un campo que sumas?
El excel por antigüedad nunca utiliza los cero adelante
Tienes que forzarlo poniendo una comilla simple adelante
"'" & m1!rut
Avisame cualquier cosa
¿Gracias adonde sale ruta? Si es rut es el código del producto que esta en la base de datos y todos empiezan con 0 y en el msflexgrid me los muestra pero en el excel no y como coloco esto de las comillas en que parte en el
Private Sub exportar_Click()
Dim i As Integer, j As Integer
Dim objExcel As Excel.Application
Dim HojaExcel As Excel.Worksheet
Set objExcel = Excel.Application
objExcel.Workbooks.Add
Set HojaExcel = objExcel.ActiveWorkbook.Worksheets(1)
For i = 1 To MS.Rows - 1
For j = 1 To MS.Cols - 1
objExcel.Cells(i, j) = MS.TextMatrix(i, j)
Next
Next
objExcel.Visible = True
Set HojaExcel = Nothing
Set objExcel = Nothing
End Sub
Gracias amigo
¿Vos lo estas pasando todo junto?
Tendrías que darle formato a la celda del excel o
Decir que cuando la columna de la grilla sea igual a j del for formatea el campo ms.textmatrix(i, j) agregándole & "'" la comilla.
Proba sino buscaremos otra solución
Si lo paso todo junto pero si se puede pasar por uno y así es más fácil mejor intente y no resulta
Coloque esto
ms.textmatrix(i,"' & j & '")
No se si era eso lo que me dijiste
Gracias
No, así
For i = 1 To MS.Rows - 1
For j = 1 To MS.Cols - 1
if j = 4 (ejemplo) then
objExcel.Cells(i, j) = "'" & MS.TextMatrix(i, j)
else
objExcel.Cells(i, j) = MS.TextMatrix(i, j)
end if
Next
Next
Pruébalo y avisame

1 respuesta más de otro experto

Respuesta
1
Eso tiene que ver con el formato de la celda en excel, el por defecto lo esta guardando como numero, pero en tu caso debería ser texto, de esta forma no te quita el 0 que precede al numero de rut.
No olvides finalizar tu pregunta si ya terminaste.. ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas