Avatar billede tom0603 Nybegynder
25. august 2006 - 12:16 Der er 3 kommentarer og
1 løsning

Udsend e-mail via makro

Hej

Jeg har et problem med en makro som jeg gerne vil have til at virke lidt anderledes.  Makkroen fungerer i dag på den måde at den går ind og udsender mails med nogle vedhæftede filer og i det tilfælde du kan se nedenfor er der 4 filer der vedhæftes. Makroen går ind og læser i regnearket på nogle definerede felter om hvilke filer der skal vedhæftes.

Nu har jeg så fået behov for at udvide denne makro til at sende op til 16 filer og det er heller ikke noget problem, men da ikke alle modtagere skal have det samme antal filer vil jeg jo gerne have muligheden for at blot slette felterne. Men hvis jeg gør det i den nuværende makro melder den fejl og stopper.

Jeg havde forestillet mig noget med at man kunne tjekke om feltet var blankt og hvis det er blankt springer den til næste osv.  Så jeg slipper for at lave sub makroer for det antal felter der skal udsendes for.

Makroen ser ud som følger (jeg har dog slettet mailen der sendes med da den er irrelevant for mit spørgsmål.)

Dim olNewMail As Outlook.MailItem
For Each c In Selection
Set olApp = New Outlook.Application
Set olNewMail = CreateItem(olMailItem)
Vedhæft1 = c.Offset(0, 3)
vedhæft2 = c.Offset(0, 9)
Vedhæft3 = c.Offset(0, 15)
Vedhæft4 = c.Offset(0, 21)
With olNewMail
    .Recipients.Add c.Offset(0, 1)

"Bare et brev som jeg skriver og som ikke er relevant her"

    .Attachments.Add Vedhæft1
    .Attachments.Add vedhæft2
    .Attachments.Add Vedhæft3
    .Attachments.Add Vedhæft4
    .Save
    .Display
'    .Send
End With

Set olNewMail = Nothing
Set olApp = Nothing
Next c
End Sub
Avatar billede excelent Ekspert
25. august 2006 - 16:38 #1
Hvor mange celler er markeret når du kører makro?
og hvad er der i disse celler?
Avatar billede supertekst Ekspert
28. august 2006 - 11:17 #2
Et forsøg:
Dim xSti, kol
Sub send()
Dim olNewMail As Outlook.MailItem
    xSti = ActiveWorkbook.Path + "\"                        'i min model ligger alle filer i samme mappe

    For Each c In Selection
        Set olApp = New Outlook.Application
        Set olNewMail = CreateItem(olMailItem)
        kol = 3
 
Rem gennemse celler for vedhæftFil (max 16 - start i off-set 3 - spring m/6)
        For a = 0 To 15
            filnavn = c.Offset(0, kol)
            If filnavn <> "" Then
                olNewMail.Attachments.Add xSti + filnavn
            End If
            kol = kol + 6
        Next a
       
        With olNewMail
            .Recipients.Add c.Offset(0, 1)
Rem "Bare et brev som jeg skriver og som ikke er relevant her
        .Save
        .Display
    '    .Send
        End With
   
        Set olNewMail = Nothing
        Set olApp = Nothing
    Next c
End Sub
Avatar billede tom0603 Nybegynder
05. september 2006 - 16:52 #3
Hej Supertekst

Jeg har prøvet dit script og det virkede ikke umiddelbart på min Excel. Jeg ændrede dog lidt i parametrene og lagde den fulde sti ind i felterne der skulle hentes fra og så virkede det uden problemer.

Den endte med at se ud som følger

Dim xSti, kol
Sub Udsendelse_mange_filer()
Dim olNewMail As Outlook.MailItem

    For Each c In Selection
        Set olApp = New Outlook.Application
        Set olNewMail = CreateItem(olMailItem)
        kol = 3
 
Rem gennemse celler for vedhæftFil (max 16 - start i off-set 3 - spring m/6)
        For a = 0 To 15
            filnavn = c.Offset(0, kol)
            If filnavn <> "" Then
                olNewMail.Attachments.Add filnavn
            End If
            kol = kol + 6
        Next a
       
        With olNewMail
            .Recipients.Add c.Offset(0, 1)

"Mit brev"

      .Save
        .Display
    '    .Send
        End With
   
        Set olNewMail = Nothing
        Set olApp = Nothing
    Next c
End Sub
Avatar billede supertekst Ekspert
05. september 2006 - 17:50 #4
Hej - fint....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester