es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Enviar correo electrónico con archivos adjuntos ubicados en la misma carpeta que el libro de trabajo.

Genero un correo electrónico en formato HTML de Outlook para enviar a la dirección de correo electrónico designada por la celda.

Adjunto varios archivos ubicados en la misma carpeta que el libro de trabajo con el cuadro de diálogo FileDialog.
Me gustaría que la carpeta inicial que aparezca sea la ubicación del libro de trabajo actual.

Private Sub CommandButton1_Click()
    Dim xStrFile As String
    Dim xFilePath As String
    Dim xFileDlg As FileDialog
    Dim xFileDlgItem As Variant
    Dim xOutApp As Outlook.Application
    Dim xMailOut As Outlook.MailItem
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
    If xFileDlg.Show = -1 Then
        With xMailOut
            .Display
            .To = Range("C14").Value
            .Subject = Range("B6").Value & " " & Range("B7").Value & " - " & Range("B9").Value & " Estimación de Azulejo"
            .HTMLBody = Range("B14").Value & "," & "<br>" & vbCrLf & "Aquí está nuestra estimación de azulejos para el proyecto de" & Range("B6").Value & " " & Range("B7").Value & " - " & Range("B9").Value & ". Por favor, responda a este correo electrónico para confirmar que ha recibido la propuesta." & .HTMLBody
            For Each xFileDlgItem In xFileDlg.SelectedItems
                .Attachments.Add xFileDlgItem
            Next xFileDlgItem
            .Display
        End With
    End If
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub
Private Sub CommandButton3_Click()

End Sub
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para hacer que la carpeta inicial para el cuadro de diálogo de FileDialog sea la ubicación del libro de trabajo actual, reemplace la línea:

    Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
    

    con el siguiente código:

    Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
    xFilePath = Application.ActiveWorkbook.Path
    xFileDlg.InitialFileName = xFilePath & "\"
    

    Esto establece la ruta de archivo inicial para el cuadro de diálogo de FileDialog en la ruta del libro de trabajo actual e incluye una barra invertida al final para asegurarse de que se muestre la carpeta correcta.

Comments are closed.