Plantilla de Excel 2003, no funcional con Excel 2007 y superior?

al abrir el primer filtro para que se genere el la numeración automática ocurre el siguiente problema con la macro. (nota, "ActiveWorkbook.SaveAs FileName:=NombreArchivo" se pone en color amarillo)

' Asinar nombre archivo de paso (Calc1) y extensión a variable
NombreArchivoPaso = Range("L84") & ".xls"
' Guardar cotiz de paso (Calc1.xls)
NombreArchivo = Range("L83")
ActiveWorkbook.SaveAs FileName:=NombreArchivo

' Generar el Nº de la cotización
Windows("NoCotiz.xls").Activate
Sheets("NoCotiz").Select
Range("B5") = Range("B5") + 1
' Copiar Nº de cotización
Range("B5").Select
Selection.Copy
Sheets("NoCotiz").Select
' Volver al archivo de paso Calc1.xls
Windows(NombreArchivoPaso).Activate
Sheets("base").Select
' Pegar Nº de cotización desde LisCliet
Range("Z2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False

' Guardar archivo de paso Calc1.xls con nombre correcto
NombreArchivo = Range("L79")
ActiveWorkbook.SaveAs FileName:=NombreArchivo
' Eliminar archivo de paso (Calc1)
NombreArchivo = Range("L83") & ".xls"
Kill (NombreArchivo)
' Desplegar mensaje si cotiz existe (tiene Nº)
ElseIf Range("Z2") > 0 Then
strMensaje = "La cotización actual ya tiene un Nº (" & Range("Z2") & "), si quiere copiarla con un nuevo Nº, presione el botón 'Si'"
strTitulo = "orgNet"
IngRespuesta = MsgBox(strMensaje, vbYesNo + vbExclamation + vbDefaultButton2, strTitulo)
If IngRespuesta = vbYes Then
' Actualizar cliente/interesado
Range("D3") = Range("L31")
Range("D8") = Range("L32")
' Chequear RUT
If Range("V32") < 10 Then
strMensaje = "Falta el RUT!" + vbCrLf + " " + vbCrLf + "El archivo actual se cancelará. Usted debe ingresar el RUT en la lista de clientes"
strTitulo = "OrgNet"
IngRespuesta = MsgBox(strMensaje, vbOKOnly + vbExclamation, strTitulo)
Range("D3") = "" ' neutralizar Raz. Soc.
Range("D8") = "" ' neutralizar RUT
ActiveWorkbook.Close
End If

' Asinar nombre archivo de paso (Calc1) y extensión a variable
NombreArchivoPaso = Range("L84") & ".xls"
' Guardar cotiz de paso (Calc1.xls)
NombreArchivo = Range("L83")
ActiveWorkbook.SaveAs FileName:=NombreArchivo

' Generar el Nº de la cotización
Windows("NoCotiz.xls").Activate
Sheets("NoCotiz").Select
Range("B5") = Range("B5") + 1
' Copiar Nº de cotización
Range("B5").Select
Selection.Copy
Sheets("NoCotiz").Select
' Volver al archivo de paso Calc1.xls
Windows(NombreArchivoPaso).Activate
Sheets("base").Select
' Pegar Nº de cotización desde LisCliet
Range("Z2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False

' Neutralizar código MAIL (código 1 = mail no existe)
Sheets("cotiz").Select
Range("Y2") = 1
Sheets("base").Select
' Guardar cotización Calc1.xls con nombre correcto
NombreArchivo = Range("L79")
ActiveWorkbook.SaveAs FileName:=NombreArchivo
' Eliminar archivo de paso (Calc1)
NombreArchivo = Range("L83") & ".xls"
Kill (NombreArchivo)

ElseIf IngRespuesta = vbNo Then
' Actualizar cliente/interesado y RUT
Range("D3") = Range("L31")
Range("D8") = Range("L32")
End If
End If
End If

End Sub

1 respuesta

Respuesta

Si te marca de amarillo en esta línea: NombreArchivo = Range("L83")

 (nota, "ActiveWorkbook.SaveAs FileName:=NombreArchivo" se pone en color amarillo)

Debe ser porque en la celda L83 no le estás agregando la extensión. En las nuevas versiones hay varios tipos de extensiones y las tenés que agregar.

Por ej: 

ActiveWorkbook.SaveAs FileName:=NombreArchivo & ".xlsm"

Sdos

Elsa: es un archivo de paso que se llama Calc1 y esta en esa celda, le agregue y le cambie las extensiones, pero no hay caso...

Al inicio tenés 2 líneas, una para NombreArchivoPaso que tiene la extensión y otra solo para NombreArchivo (sin extensión).

NombreArchivoPaso = Range("L84") & ".xls"
' Guardar cotiz de paso (Calc1.xls)
NombreArchivo = Range("L83")

Y a continuación lo guardás... ahí le falta la extensión, debiera ser: NombreArchivo & ".xls" si la celda L83 no lo tiene.

ActiveWorkbook.SaveAs FileName:=NombreArchivo 

Más adelante volvés a activar el NombreArchivoPaso que sí tiene la extensión x la 1er línea de la rutina:

' Volver al archivo de paso Calc1.xls
Windows(NombreArchivoPaso). Activate

Y lo guardás ahora con el contenido de la celda L79 y allí nuevamente no se sé la extensión:

' Guardar cotización Calc1.xls con nombre correcto
NombreArchivo = Range("L79")
ActiveWorkbook.SaveAs FileName:=NombreArchivo

La prueba está de que te falta la extensión xq más adelante al eliminar el archivo, le indicas la extensión:

' Eliminar archivo de paso (Calc1)
NombreArchivo = Range("L83") & ".xls"

Revisalo con cuidado pero creo que con este podrás encontrar el problema, sinó me avisas.

O quizás te lo resuelva el otro experto si ya le enviaste el libro. En ese caso solo finaliza aquí también.

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas