Saludos,
Me gustaría pediros sugerencias para depurar el código de una macro
que tengo y que me está creando algun "problema", que no soy capaz de
localizar.
Antes de nada, os cuento que la macro está asociada a un botón de la
hoja y su función es salvar el archivo con un nombre determinado (que
en parte toma de alguna de las celdas) y enviar este archivo por
correo electrónico a unas direcciones que incluye la propia macro.
La versiónde excel que utilizo es excel 2002. Y por si fuera
relevante, os cuento que el programa gestor de correo que utilizo es
Lotus Notes.
El "problema" del que os hablaba no es con la propia misión de la
macro, que se realiza correctamente, sinó después de lanzarla y
finalizar (?) que, a menudo (no siempre), excel queda parpadeando y
aparece un mensaje de error diciendo que se ha producido un error en
la aplicación y que debe reiniciarse. Tras darle a aceptar, excel se
cierra y abre con la hoja con todos los datos salvados y sin mayor
problema. Más que nada es la molestia y la "mala imagen" que produce
ese error.
El error no es de la macro sino de la aplicación, pero no me ocurre
con ningún otro documento ni macro, salvo este. Y siempre ocurre
después de completar la tarea de salvar y crear el mensaje de correo.
Como digo, es algo raro porque aparentemente la macro ya ha
finalizado, pero el problema siempre aparece después de lanzar esta
macro.
Y aquí os paso la macro...:
Private Sub Guardar_y_enviar()
Dim titulo As String, producto As String, ref As String
If (Range("C9").Value = "-") Or (Range("C9").Value = "") Then
MsgBox "Por favor, escoge un producto"
Else
If (Range("C11").Value = "") And (Range("C12").Value = "") And
(Range("D12").Value = "") Then
MsgBox "Por favor, indica una cantidad"
Else
If (Range("L8").Value = "") Then
MsgBox "Por favor, escoge la sección de origen"
Else
If (Range("L9").Value = "") Then
MsgBox "Por favor, escoge la sección de destino"
Else
If (Range("K27").Value = "") Then
MsgBox "Por favor, introduzca la firma del solicitante"
Else
On Error GoTo fallo
Range("X12345").Value = "1"
Range("I5").Value = Format(Now)
Range("M6").Value = Range("L6").Value
ref = Range("M6").Value
producto = normalitzarNom(Range("C9"))
titulo = "Traspaso de " & producto & " - " & ref & ".xls"
ChDir "C:\Traspasos"
ActiveWorkbook.SaveAs Filename:= _
"C:\Traspasos\" & titulo, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Application.ActiveWorkbook.SendMail Recipients:=" correo1@yahoo.com,
correo2@yahoo.com"
End If: End If: End If: End If: End If
On Error GoTo 0
Exit Sub
fallo:
MsgBox ("Error no previsto. Llame al responsable facilitando la
información que sigue: " _
& Chr(13) & Chr(13) & "Número de Error : " & _
Err.Number & Chr(13) & "Descripción : " & Err.Description)
End Sub
Os agradecería cualquier sugerencia o aporte que podais hacerme,
puesto que yo ando haciendo pruebas pero no soy capaz de localizar el
problema.
Leer las respuestas