Jump to content

Guardar y reemplazar archivo


Recommended Posts

Posted

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

Posted

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

Un saludo,

Tese

Posted

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 .... :)

Archived

This topic is now archived and is closed to further replies.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Files

  • Download Statistics

    • Files
      187
    • Comments
      97
    • Reviews
      28

    More information about "Un juego del Rabino en Excel"
    Latest File
    By pegones1

    1    1

  • Crear macros Excel

  • Posts

    • Si puedes subir el libro mejor, en caso contrario la hoja afectada y la macro
    • Hola, primero indicar que soy un novato y estoy aprendiendo con Excel. Tengo un formulario para añadir filas a una tabla llamada "Clientes". Me ocurre una cosa curiosa y es que aparentemente la macro ha funcionado y funciona bien salvo que ahora, cuando se ejecuta la macro, al añadir la última fila a la tabla, me da el siguiente error a pesar de no estar ninguna hoja protegida: Cuando se ejecuta la macro sale este error y se para en la línea: "Set Nuevafila2 = Tabla.ListRows.Add" llegando a añadir la última línea a la tabla. Cuando se ejecuta la macro sale este error y se para en la línea: "Set Nuevafila2 = Tabla.ListRows.Add" llegando a añadir la última línea a la tabla. Si vuelvo a ejecutar la macro, ya si me añade bien la siguiente fila. Y ya no da más el error. Puedo seguir ejecutando la macro añadiendo filas sin problema. Como he dicho, no hay ninguna hoja protegida, ni ningún formato condicional. Por más que reviso y busco en Internet no encuentro la solución. En el resto de formularios que tengo en el mismo libro para añadir registros en otras tablas, también ocurre lo mismo. Agradecería ayuda.
    • En lo que usted sube el archivo en base a lo que menciona esta podría ser una idea: Suponiendo que la ruta esta en B1 Public Sub Listaynombra_Manual() Dim ruta As String ' Obtiene la ruta de la celda B1 ruta = ActiveSheet.Range("B1").Value ' Verifica si la ruta no está vacía If ruta <> "" Then ' Llama a la función List_Fols_Files con la ruta obtenida List_Fols_Files ruta Else MsgBox "La celda B1 está vacía. Por favor, ingresa una ruta válida.", vbExclamation End If End Sub Es importante resaltar que si la ruta es válida pero la carpeta no existe tendrá un error, en ese supuesto caso para evitar que la macro falle, puede agregar una verificación adicional para asegurar que la carpeta existe antes de llamar a la función. Puede hacer eso utilizando la función Dir en VBA, que verifica la existencia del elemento. También algo tan sencillo como escribir en la celdas de manera nvertidas las diagonales // puede causar error. Saludos cordiales a ambos.
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy