Saltar al contenido

Guardar y reemplazar archivo


Recommended Posts

publicado

hola a toodos :

mi duda es la siguiente, tengo este codigo en el cual me guarda un archivo y me lo reemplaza pero al momento de reemplazarlo me genera otro archivo excel ....

    '4. Guardamos el libro   
sFileXLS = ThisWorkbook.Path & "\" & NOMBRE_DOCUMENTO & ".xlsx"
On Error GoTo sincopia
wbNuevoLibro.SaveAs sFileXLS
Exit Sub
sincopia:
MsgBox "NO se ha generado la copia"


'5. Cerramos el libro
wbNuevoLibro.Close

End Sub
[/CODE]

no se donde estara el error :/, ojala alguien me pueda ayudar :D

publicado

Incluye un archivo ejemplo ó al menos incluye todo el código.........por si el problema lo tienes en alguna sentencia anterior.

Un saludo,

Tese

publicado

Private Sub CREAR_LISTA2()    
Dim n As Integer
Dim wbNuevoLibro As Workbook
Dim nFilaSalida As Integer
Dim sFileXLS$
Dim ruta
Dim NIVEL_ant As Integer 'nivel de jerarquía del ítem inmediato anterior
Dim RAIZ_ant As String 'raíz o padre del ítem inmediato anterior
Dim J As Integer 'variable contador

'1. Comprobamos si hay algún elemento seleccionado en la lista
If Not ElementosSeleccionados() Then
MsgBox "Debes seleccionar algún elemento de la lista", vbInformation
Exit Sub
End If

'2. Abrimos un nuevo libro de trabajo excel
Set wbNuevoLibro = Workbooks.Add()
nFilaSalida = 7

wbNuevoLibro.Worksheets(1).Cells(nFilaSalida, 1) = "ITEM"
wbNuevoLibro.Worksheets(1).Cells(nFilaSalida, 2) = "DESCRIPCION"
wbNuevoLibro.Worksheets(1).Cells(nFilaSalida, 3) = "UNIDAD"
wbNuevoLibro.Worksheets(1).Cells(nFilaSalida, 4) = "CANT."
wbNuevoLibro.Worksheets(1).Cells(nFilaSalida, 5) = "PRECIO UNITARIO $"
wbNuevoLibro.Worksheets(1).Cells(nFilaSalida, 6) = "PRECIO TOTAL $"
Columns("B:B").ColumnWidth = 81.57
Columns("D:D").ColumnWidth = 14.57
Columns("E:E").ColumnWidth = 13.86
Columns("F:F").ColumnWidth = 13.29
nFilaSalida = nFilaSalida + 1

'Fecha
Range("F3").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("F3").Select
Selection.NumberFormat = "[$-340A]d"" de ""mmmm"" de ""yyyy;@"
Columns("F:F").ColumnWidth = 19.71

'3. Recorremos la lista de elementos y pasamos los seleccionados al nuevo libro
NIVEL_ant = -1
RAIZ_ant = ""
For n = 0 To LIS.ListCount - 1
If LIS.Selected(n) = True Then
'Re-enumerar los ítems, de modo que los de una misma jerarquía
'se enumeren consecutivamente, a partir del 1.
'Sólo aplica para objetos hijo, es decir, objetos con jerarquía mayor
'que cero.
If nFilaSalida > 7 Then
If NIVEL(LIS.List(n, 0)) > 0 Then
If raiz(LIS.List(n, 0)) = RAIZ_ant Then
J = J + 1
Else
J = 1
End If
Else
J = 0
End If
Else
J = 0
End If

'esto es para evitar que los "puntos" se vuelvan "comas"
With wbNuevoLibro.Worksheets(1).Cells(nFilaSalida, 1)
.NumberFormat = "@"
.HorizontalAlignment = xlRight

If J = 0 Then
.Value = CStr(LIS.List(n, 0))
Else
.Value = CStr(raiz(LIS.List(n, 0))) & "." & CStr(J)
End If
.Value = Replace(.Text, ",", ".")

If NIVEL(LIS.List(n, 0)) = 0 Then
'pone en negrilla los ítems de nivel jerárquico cero
.Font.Bold = True
.Offset(0, 1).Font.Bold = True
End If
End With
wbNuevoLibro.Worksheets(1).Cells(nFilaSalida, 2) = LIS.List(n, 1)
wbNuevoLibro.Worksheets(1).Cells(nFilaSalida, 3) = LIS.List(n, 2)
wbNuevoLibro.Worksheets(1).Cells(nFilaSalida, 4) = LIS.List(n, 3)
wbNuevoLibro.Worksheets(1).Cells(nFilaSalida, 5) = LIS.List(n, 4)
wbNuevoLibro.Worksheets(1).Cells(nFilaSalida, 6) = LIS.List(n, 5)
nFilaSalida = nFilaSalida + 1

NIVEL_ant = NIVEL(LIS.List(n, 0))
RAIZ_ant = raiz(LIS.List(n, 0))
End If
Next
'pone líneas de cuadrícula
bordes nFilaSalida

'4. Guardamos el libro
sFileXLS = ThisWorkbook.Path & "\" & NOMBRE_DOCUMENTO & ".xlsx"
wbNuevoLibro.SaveAs sFileXLS

'5. Cerramos el libro
wbNuevoLibro.Close

MsgBox "Se ha generado el archivo: " & vbCrLf & sFileXLS, vbInformation

'6. Cerramos el formulario. Ya no es necesario.
Unload Me

End Sub[/CODE]

este es el codig el cual me crea la lista .... :)

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.