Macro guardar como.. (2)

Otra vez acudo a ti, en busca de ayuda. Es en relación a la pregunta anterior, para la macro de Guardar como...
La macro me funciona perfectamente, aunque no tanto, pues algo me he descuidado, te explico:
Utilizo en mi proyecto, una libro principal con tres hojas. Una hoja principal (FACTURA BIG CAP) y otras dos que proveen datos fijos a la primera. Y aparte, el ARCHIVO DE FACTURACIÓN.
La FACTURAB C, TIENE DOS BUTTONS, uno es la macro para guardar como... Y el otro, lo utilizo para limpiar el contenido, después de imprimir y guardar como. Y en la misma hoja
Lleno las siguiente facturas..
Mi rutina para limpiar es la siguiente:
Private Sub CommandButton1_Click()
' Nuevafac Macro
' Macro grabada el 28/04/2007 por PEDRO LUIS MARTIN
''
Range("F4:F6,G4:G6,I2,H3:I3,H4:I4,H5:I5,H6:I6,B11:G54").Select
ActiveSheet.Unprotect Password:="1500"
Range("F4:F6,G4:G6,I2,B11:G54").ClearContents
Range("I2").Activate
ActiveSheet.Protect Password:="1500"
End Sub
La celda principal de identificación de la hoja, no esta incluida para su borrado, Y varia según los datos introducidos. (Concatenación de dos celdas).
Lo que me ocurre, es que después de limpiar, he comprobado que las facturas guardadas habían perdido sus datos, y estaban en blanco, o se habían guardado con el numero de la factura anterior. ¿Permanece el libro Guardado como..., vinculado a la hoja principal ¿. Debo guardar, antes de guardar como...?. ¿O después...? ¡¿O falta alguna instrucción en el button de limpiar?.
En fin, que me he hecho un lio con los guardares.
Respuesta
2
Creo que la confusión se da en que 'Guardar como' no es lo mismo que Cerrar, guardando como.
Con instrucciones como Sabe As lo que estás haciendo es cambiar el nombre al archivo y a partir de ahí ese es el libro activo. Todo lo que hagas lo estás haciendo en el nuevo libro.
Interpreto en esta consulta que deseas guardar el libro con cierta información y volver al original. Entonces te falta la instrucción de cerrar, a continuación de la de guardado:
ActiveWorkbook. Close
De esta manera debieras volver a tu libro original.
No tengo a mano tu rutina anterior. Fíjate si agregando esto solucionás tu problema.
Pues si, esto es lo que quería.
Efectivamente al añadir el Close. Guarda la factura como es debido.
Lo que ocurre es que se cierra todo el libro y no vuelve al original.Te vuelvo a enviar toda la rutina, a ver que me falta.
Private Sub CommandButton2_Click()
ActiveWorkbook.Save
Dim ruta, carpeta, libro, texto As String
ruta = "C:\Documents and Settings\PEDRO LUIS MARTIN\Mis documentos\ARCHIVO FACTURACION\"
carpeta = ActiveSheet.Range("H3").Value
libro = ActiveSheet.Range("A1").Value
texto = ruta & carpeta & "\" & libro & ".xls"
ActiveWorkbook.SaveAs Filename:=texto, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close
End Sub
Y ahora no se que instrucción darle, para que vuelva a la hoja principal de factura.
Un aludo.
Pedro
Clarisima la explicacion, Elsa.
Muchisimas gracias por todo y hasta la proxima duda.
Pedro.
Perfecta Elsa. De maravilla.No lo dude ni por un instante.
Pregunta de ampliación de mis conocimientos (... Que no son dem asiados):
*wb ¿Es Workbook?
*Veo que Display Alerts esta arriba en "False" y abajo en "True".
He probado a introducir datos repetidos, y no muestra ventana para corregir posible error.
No es importante, porque al introducir los datos erróneos a sabiendas, no copia la hoja.
*Elsa dime como puedo conseguir tu libro de Macros, que no dudo me sera de gran ayuda.
Un saludo
Pedro.
Si, ahora comprendo.
Aquí va otra rutina entonces:
Private Sub CommandButton1_Click()
'rutina extraída del manual 400Macros de Elsamatilde
Dim wb
Dim ruta, carpeta, libro, texto As String
ruta = "C:\Documents and Settings\All Users\Documentos\CONSULTAS TODOEXPER\"
carpeta = ActiveSheet.Range("H3").Value
libro = ActiveSheet.Range("A1").Value
texto = ruta & carpeta & "\" & libro & ".xls"
Application.ScreenUpdating = False
ActiveSheet.Copy
Application.DisplayAlerts = False
Set wb = ActiveWorkbook
'por error (ya existe archivo o nbre inválido) muestra ventana para cambiar nbre o ruta
On Error Resume Next
With wb
.SaveAs texto
Application.DisplayAlerts = True
.Close True
End With
Set wb = Nothing
Sheets("Hoja1").Select 'reemplaza por tu hoja factura
End Sub
Wb es el nombre de la variable que guarda el libro activo, puede ser pedro, no importa.
DisplayAlerts en false impide que Excel muestre el mensaje como que ya existe libro de = nombre, etc y ejecuta la acción del botón predeterminado. La volvemos a True que es su estado normal. Podes quitarlas y ver qué sucede, quizás prefieras que te muestre el mensaje y optar por tomar la decisión.
Con respecto a los manuales, podes adquirirlos abonando con tarjeta desde el enlace que aparece en mi sitio o escribime a mi correo para que te pase los datos para una transferencia por correo y otros detalles (desde aquí no tengo el tuyo):
Cibersoft_argARROBAyahooPUNTOcomPUNTOar o a meyerelsaar del mismo yahoo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas