Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

VBA Excel - Outlook attachment

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heb een vraagje. Ik ben bezig met een macro in VBA in Excel 2003. Maar nu loop ik - als VBA newbie -tegen een probleem op.
Het probleem is als volgt: er worden bestanden aangeleverd met een steeds andere naam, dus de ene keer haasje.doc en dan de volgende keer een bestand met de naam kruisboog.doc, bijvoorbeeld. Maar deze bestanden moeten als attachment in een outlook mailtje terechtkomen. Dus in het eerste mailtje moet als attachment haasje.doc worden toegevoegd, en in een ander mailtje dus als attachment kruisboog.doc, etc. Omdat nooit van te voren bekend is hoe de bestandsnaam van het doc zal zijn, lukt het me niet om het doc binnen het Outlook-mailtje als attachment toe te voegen. Hoe krijg ik dat toch voor elkaar?
Het moet echt in een VBA-tje, en ik wil geen user-input hebben om de filenaam op te vragen. Wie oh wie?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waar hoort mijn topic?
PRG >> OFF

Los van 't feit dat dit feitelijk een scriptrequest is; ik weet niet of het topic daar een lang leven beschoren is ;)

[ Voor 49% gewijzigd door RobIII op 06-04-2009 17:40 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op maandag 06 april 2009 @ 17:39:
Heb een vraagje. Ik ben bezig met een macro in VBA in Excel 2003. Maar nu loop ik - als VBA newbie -tegen een probleem op.
Het probleem is als volgt: er worden bestanden aangeleverd met een steeds andere naam, dus de ene keer haasje.doc en dan de volgende keer een bestand met de naam kruisboog.doc, bijvoorbeeld. Maar deze bestanden moeten als attachment in een outlook mailtje terechtkomen. Dus in het eerste mailtje moet als attachment haasje.doc worden toegevoegd, en in een ander mailtje dus als attachment kruisboog.doc, etc. Omdat nooit van te voren bekend is hoe de bestandsnaam van het doc zal zijn, lukt het me niet om het doc binnen het Outlook-mailtje als attachment toe te voegen. Hoe krijg ik dat toch voor elkaar?
Het moet echt in een VBA-tje, en ik wil geen user-input hebben om de filenaam op te vragen. Wie oh wie?
Leg eens de procedure (zoals het zou moeten gaan werken) in stappen uit: 1. 2. 3. 4. etc :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
Ik zal het proberen duidelijker te maken.

1. Via een email komt er een mail binnen met daarin een x-aantal attachments, word-docs, steeds met een andere naam.
2. 1 van deze docs wordt in een directory c:\Temp\ gesaved.
3. Excel probeert in c:\Temp\ deze doc te vinden.
4. Deze doc moet in een te versturen email als attachment toegevoegd worden, plus nog een aantal andere attachments.

Er staat in de c:\Temp folder dus altijd maar 1 doc file, maar deze heeft NOOIT dezelfde naam. Je kunt niet - voor zover ik het kan zien - een file in de email attachen met wildcards, maar dat wil ik dus eigenlijk wel: outlook.attach("c:\Temp\*.doc")
Weet dat dit niet de correcte syntax is, maar is om aan te geven het enige doc file (waar de naam dus niet bekend van is) in de genoemde directory te attachen als attachment in outlook.

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Gewoon alle files in die dir uitlezen met de file functies? Als er altijd maar 1tje staat krijg je maar 1 resultaat terug.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

De reden dat hierboven om een stappenplan was gevraagd, was inderdaad vooral omdat de syntax het minste denkwerk vereist, maar dat het enige is dat je niet kent. Het idee is dus een volledig stappenplan te bedenken van hoe je het wilt doen. Dus: schrijf juist stap3 uit en je bent er al bijna.

Maar inderdaad, in Excel kan je de files in een directory uitlezen: [google=excel vba list files] en neem een willekeurige hit. Vervolgens kan je de resulterende lijst bestandsnaam/namen checken om te zien of de laatste vier karakters ".doc" zijn, of de laatste vijf ".docx". Dan is het simpelweg die bestandsnaam uit de lijst pakken en sturen die hap: [google=excel vba send e-mail with attachment] :)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
Het probleem met het gebruik van "file"-functie is, dat de gebruiker een handeling moet verrichten, omdat er wel andere niet-doc files in de c:\Temp folder staan. En dat wil ik niet.

Verwijderd

Bij stap 1 weet je toch al de bestandsnaam van de attachment? Deze kun je opvragen of, bij het opslaan in je Temp-directory, opgeven. Deze bestandsnaam kun je in de volgende stappen toch doorgeven?

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Verwijderd schreef op maandag 06 april 2009 @ 19:56:
Het probleem met het gebruik van "file"-functie is, dat de gebruiker een handeling moet verrichten, omdat er wel andere niet-doc files in de c:\Temp folder staan. En dat wil ik niet.
Zie mijn reactie :+

Er zijn dus zat codevoorbeeldjes te vinden, het is alleen zaak om die slim te combineren (zonder er spaghetticode van te maken, natuurlijk). Laat het even weten wat het geworden is (dan kunnen we nog even meedenken om te zien of er nog foutjes in zitten), of waar je vastloopt.

Edit: ik snap trouwens niet waarom je dit in Excel wilt doen. Waarom niet 'gewoon' via WSH/VBScript of zelfs een batch file? Dan geldt overigens verder hetzelfde qua vindbaarheid: ook daar is al heel veel over geschreven :)

[ Voor 16% gewijzigd door F_J_K op 06-04-2009 20:08 . Reden: Excel? ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
Ik doe dit in excel omdat ik van een 4-tal andere filetjes welke txt bestanden zijn xls bestanden moet maken, en die 4 bestanden plus het word-doc dus via email moet versturen. Daarom dus Excel-Outlook :)

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
En als je nu eens begint in outlook vba ( dat is toch stap 1 ) en dan via binding een excel opent en daarin de txt bestandjes omzet?

Dan heb je en je file naam en je houdt alles bij het stuk waar het start en eindigt.

Ik zie de volgorde namelijk even niet, stap 1 is dat er een mailtje binnenkomt en dan moet iemand excel gaan openen om het geheel in gang te zetten ofzo?

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 13:07
Of kiijk naar deze: Dir

Verwijderd

Topicstarter
Met Dir werkt het perfect. Bedankt!
Pagina: 1