Saltar al contenido

MACRO QUE CAMBIO DE REPENTE


Recommended Posts

Hola,

Lo siento por las molestias pero me paso algo muy extraño.

Resulta que tengo una plantilla guardada en un PENDRIVE y voy trabajando sobre ella en casa y en el trabajo cuando puedo.

Ayer lo tenia bien y trabaje en casa sobre pequeños detalles y hoy al abrir el documento, la macro "ENVIAR mail" me indica este error:

  1. Se ha producido el error’-2147024772(8007007b)’ en tiempo de ejecución:
  2. No se guardo el documento

La macro que me habéis ayudado en conseguirla es la siguiente:

Sub PdfMail()
Dim Archivo As String, Destinatario As String
Dim Asunto As String, Cuerpo As String
Dim OutlApp As Object, H1 As Worksheet
'--
Application.ScreenUpdating = False
With Sheets("FICHA")
   Destinatario = .Range("C11")
   Asunto = .Range("B72")
   Cuerpo = .Range("B85")
   Archivo = Replace(.Range("B70"), "/", "-")
   Archivo = Replace(Archivo, ":", "")
   Archivo = ThisWorkbook.Path & "\" & Archivo & ".pdf"
   .ExportAsFixedFormat _
      Type:=xlTypePDF, _
      Filename:=Archivo, _
      Quality:=xlQualityStandard, _
      IncludeDocProperties:=True, _
      IgnorePrintAreas:=False, _
      OpenAfterPublish:=False
End With
'--
On Error Resume Next
Set OutlApp = GetObject(, "Outlook.Application")
If Err Then
   Set OutlApp = CreateObject("Outlook.Application")
End If
'--
With OutlApp.CreateItem(0)
   .To = Destinatario
   .Subject = Asunto
   .Body = Cuerpo
   .Attachments.Add Archivo
   .Display
End With
'--
Application.ScreenUpdating = True
End Sub
Es muy extraño ya que unas horas antes hize las pruebas pertinentes y me ha funcionado de maravilla.

Saludos,

Enlace a comentario
Compartir con otras webs

Buenos días Luis Paz,

El archivo que tengo pesa más de lo permitido para subirlo. Voy trabajando en copias de prueba que pesan menos.

Algo raro paso, es la primera vez que me pasa y nunca me he encontrado con estas molestias. Despues de varias pruebas me ha vuelto funcionar.

De lo que yo he entendido, era porque en las celdas "ASUNTO" y "NOMBRE" he utilizado la formula concatenar con TEXTO fecha en cada una de las formulas. He quitado el TEXTO fecha del "ASUNTO" y "voila" me ha vuelto a funcionar.

Saludos y perdonar las molestias.

 

Enlace a comentario
Compartir con otras webs

Hola a todos,

Respondere a cada uno según rcomentarios/preguntas.

La "MACRO QUE CAMBIA DE REPENTE" esta solucionado. De hecho con las respuestas he logro de entender varias cosas a la vez y arreglar los errores que cometia.

Antonio;

Si, me leo las respuestas. Pero aveces me  lio a mi mismo y hago errores de novato.

Sergio;

Simplemente queria felicitar y agradecer la ayuda de todas las personas que me han atendido hasta ahora ya que estamos en fechas Navideñas.

Una vez mas, os agradezco vuestra ayuda y os felicito a todos:

Feliz Navidad y Feliza Año Nuevo.

Jose

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 96 ¿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
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Saludos a ambos. Copiar y pegar por sí solas, no tengo el conocimiento de que sirvan como "evento" para actualizar las referencias que buscas hacer, en la forma que lo quieres hacer, ó la fórmula como la quieres hacer. Te recomiendo abrir un tema similar en Macros, es posible que algún Maestro te de alguna idea. Por otro lado, si debe ser con funciones, entonces tendías que interactuar con COLUMNA() y FILA() para que al pegar el destino "sepa" donde está ubicado e intentar cambiar la referencia. =INDIRECTO(CARACTER(COLUMNA()+64)&FILA()) Algo como eso se podría usar para obtener el código ASCII de la letra de la columna (donde 65 es el código para “A”), y FILA() devuelve el número de la fila. La función CARACTER() convierte el código ASCII en una letra. Luego, INDIRECTO() toma la cadena resultante (por ejemplo, “A1”, “B2”, etc.) y la usa como una referencia de celda. En ese caso, una posible idea de editar tu ejemplo sería: =SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&"1")="Resultados Ciclo 1"; SI(CONTAR.SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&":"&CARACTER(COLUMNA()+64)); "OK")=0; 0; CONTAR.SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&":"&CARACTER(COLUMNA()+64)); "OK")); 0)   Enfatizo que es una idea, es muy probable que hay que editar. Así como esta su tema, la recomendación del maestro toma relevancia porque especular o deducir no es lo adecuado para intentar ayudar en este tipo de consultas. Por esta causa de mi parte por ejemplo no puedo aportar algo adicional.
    • En el ejemplo te he puesto 1 segundo para no hacer largo el gif, cámbialo a tu necesidad
    • Sub RecorrerRangoC() Set hoja = ActiveSheet Set rango = hoja.Range("C2:C" & hoja.Cells(hoja.Rows.Count, "C").End(xlUp).Row) If rango.Cells.Count = 0 Then MsgBox "No hay datos en la columna C.", vbExclamation Exit Sub End If For Each celda In rango.SpecialCells(xlCellTypeVisible) celda.Select Application.Wait Now + TimeValue("00:00:01") Next celda End Sub Prueba y comenta
    • Gracias   Al final funciona con esta formula. =SI.ERROR(C5*BUSCARV(A$2;TablaReparto[#Todo];COINCIDIR(D5;TablaReparto[#Encabezados];));C5) En la celda C5 he puesto la OT. Es similar a lo que me das como solución. ¡Muchas gracias por la ayuda!  
    • Hola, Mejor que subas un archivo que contenga esas fórmulas, indicando qué resultados esperas conseguir. Así ayudas a quien quiera ayudarte; no le obligas a que reproduzca ese modelo, y de paso podrá ver cuál es el objetivo buscado con esa/s fórmula/s. Saludos,
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.