Problema al enviar un libro por email!

11/05/2006 - 12:00 por kusflo | Informe spam
El siguiente código esta metido en una macro de excel y sirve para enviar un
libro de excel por email. El problema que tengo es que si pego la hoja de
cálculo en un equipo con S.O. = Windows 2000 Profesional me funciona
perfectamente pero si pego la hoja en un equipo con S.O. Windows XP me da el
error 1004. El Office es igual en ambos equipos (Officce 2000).

Código:

'--

'Enviar hoja por email

Err.Clear
On Error GoTo CONTROLERROR
ActiveSheet.Unprotect
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim fecha As String
Dim descripcion As String
Dim wbname As String
fecha = Format(Now, "dd-mm-yy")
descripcion = "Cuadrante emitido por Tecsem, S.L. el - " & fecha & ""


'Definimos el libro
Set wb1 = ActiveWorkbook
'Establecemos una ruta para guardar el libro
wbname = "C:/" & wb1.Name & ".xls"
'Guardamos el libro
wb1.SaveCopyAs wbname
'Abrimos un segundo libro
Set wb2 = Workbooks.Open(wbname)
'Lo enviamos por email
With wb2
.SendMail "" & email & "", _
"" & descripcion & ""
.ChangeFileAccess xlReadOnly
'Lo eliminamos
Kill .FullName
.Close False
End With

'--

CONTROLERROR:
If Err <> 0 Then
AVISO = MsgBox("¡¡Ha ocurrido el error " & Err & ". Envío no realizado!!",
, "Error en el envío")
End If
ActiveSheet.Protect



'--

'Borrar hoja de calculo creada por CCS

Kill (RUTACOMPLETA)

Application.ScreenUpdating = True

"Saber que se sabe lo que se sabe y que no se sabe lo que no se sabe; he
aquí el verdadero saber." Confucio.
 

Leer las respuestas

#1 Héctor Miguel
11/05/2006 - 19:39 | Informe spam
hola, marcos "

El siguiente codigo... para enviar un libro de excel por email.
... en un equipo con S.O. = Windows 2000 Profesional me funciona perfectamente
... en un equipo con S.O. Windows XP me da el error 1004. El Office es igual en ambos equipos (Officce 2000).



[segun yo]... no es necesario efectuar tantos 'pasos' para [a final de cuentas] 'terminar' enviando el libro activo -?-
-> independientemente de si necesitas des/re/proteger la hoja activa...
prueba con las lineas que terminan siendo 'el corazon' del codigo que estas usando...

ActiveWorkbook.SendMail email, descripcion

-> asumiendo que las variables 'email' y 'descripcion' YA han sido previamente 'establecidas' ;)

[aunque seria bueno si mencionas cual/es linea/s de codigo causa/n el error 1004 en win-xp] :D

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el codigo expuesto __
'Enviar hoja por email
Err.Clear
On Error GoTo CONTROLERROR
ActiveSheet.Unprotect
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim fecha As String
Dim descripcion As String
Dim wbname As String
fecha = Format(Now, "dd-mm-yy")
descripcion = "Cuadrante emitido por Tecsem, S.L. el - " & fecha & ""
'Definimos el libro
Set wb1 = ActiveWorkbook
'Establecemos una ruta para guardar el libro
wbname = "C:/" & wb1.Name & ".xls"
'Guardamos el libro
wb1.SaveCopyAs wbname
'Abrimos un segundo libro
Set wb2 = Workbooks.Open(wbname)
'Lo enviamos por email
With wb2
.SendMail "" & email & "", _
"" & descripcion & ""
.ChangeFileAccess xlReadOnly
'Lo eliminamos
Kill .FullName
.Close False
End With
CONTROLERROR:
If Err <> 0 Then
AVISO = MsgBox("¡¡Ha ocurrido el error " & Err & ". Envà­o no realizado!!",
, "Error en el envà­o")
End If
ActiveSheet.Protect
'Borrar hoja de calculo creada por CCS
Kill (RUTACOMPLETA)
Application.ScreenUpdating = True

Preguntas similares