• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Timer mail concepten

  • Onderwerp starter Onderwerp starter thst
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

thst

Gebruiker
Lid geworden
10 apr 2001
Berichten
655
Beste allemaal,

Hieronder een code die alle mails in de map concepten in een keer verstuurd.

Graag zou ik een timer tussen het versturen van de mails willen hebben.
Ben al wel bezig geweest, maar dat lukt niet helemaal.

Wie kan me daarmee helpen ?

Angela

Code:
Sub AlleEmailVerzenden()
    With Outlook.Application.GetNamespace("Mapi").GetDefaultFolder(16)
        Do While .Items.Count > 0
            .Items(1).Send
        Loop
    
       End With
End Sub


Code:
Dim T_EindTijd, T_StartTijd As Date
T_EindTijd = Time
T_EindTijd = DateAdd("s", 5, T_EindTijd) ' 5 seconden wachten
Do Until T_StartTijd >= T_EindTijd
T_StartTijd = Time ' verschil tussen huidige tijd en start-tijd
Loop
 
Angela,

Gebruik de volgende code eens:

Code:
Application.Wait (Now + TimeValue("0:00:10"))

Verander 10 in bijvoorbeeld 1 om 1 seconde te wachten.
 
Beste Superzeeuw,

Nee helaas, hij verzend in een keer alle mails, en wacht dan 10 seconden.

Angela
 
Angela,

Je moet de code wel op de juiste plek in je macro zetten.

Probeer de code eens onder de volgende coderegel te plaatsen: .Items(1).Send
 
Krijg nu de melding:

Deze eigenschap of methode wordt niet ondersteund in dit object.

En als ik daar mijn timer zie #1 op die plek zet, wacht de code 10 sec en verstuurd ook alle mails in een keer.
Angela
 
Laatst bewerkt:
Angela,

Kun je een voorbeeld bestand plaatsen, dat praat een stuk makkelijker.
 
de onderstaande code staat in outlook

Code:
Sub AlleEmailVerzenden()
    
    With Outlook.Application.GetNamespace("Mapi").GetDefaultFolder(16)
Do While .Items.Count > 0
      .Items(1).Send
'Dim T_EindTijd, T_StartTijd As Date
'T_EindTijd = Time
'T_EindTijd = DateAdd("s", 10, T_EindTijd) ' 5 seconden wachten
'Do Until T_StartTijd >= T_EindTijd
'T_StartTijd = Time ' verschil tussen huidige tijd en start-tijd
'Loop
        Loop
    
       End With
End Sub


Angela
 

Bijlagen

Angela,

Met de volgende code moet het wel lukken.
Code:
Sub AlleEmailVerzenden()
    With Outlook.Application.GetNamespace("Mapi").GetDefaultFolder(16)
        Do While .Items.Count > 0
            .Items(1).Send
            WaitTime
        Loop
    End With
End Sub

Sub WaitTime()
    Application.Wait (Now + TimeValue("0:00:10"))
End Sub

Waarom het niet werkte?
Met het commando With geef je nadien delen van de regel op dmv ".items(1).Send
Application.Wait is hiermee in conflict vandaar de oplossing met een tweede Sub.
 
Beste Superzeeuw,

Ik vind het erg vervelend om dit te melden, maar krijg nog
steeds de melding:

Deze eigenschap of methode wordt niet ondersteund in dit object


Angela
 
VREEMD,

Ik heb 2003 en 2007 en in beide omgevingen werkt het perfect.
ik krijg geen foutmeldingen, de mail vliegt eruit en vervolgens wacht de applicatie 10 seconden.

Kun je mij het door jou aangepaste bestand dat de fouten genereert toesturen.
 
Beste superzeeuw,
Het zou als volgt moeten werken:

Stel er staan 3 mails in consepten.
Als de code start, 1 mail verzenden, 10 sec, wachten 2e mail verzenden
10 sec. wachten, 3e mail verzenden.

Angela

Ps de code die de fout genereert is die van jou in #8
 
Laatst bewerkt:
Angela,

De uitleg was overbodig, dit had ik al begrepen.
Maar ik kan mijn vinger niet op de zere plek leggen vandaar mijn verzoek om het bestand met de foutmelding te posten.

Morgen ben ik weer online.
 
Beste Superzeeuw,

Hij geeft alleen maar die melding,
in de code zelf geeft die geen foutmelding,
althans niet in de zin dat waar de foutmelding zou zitten geel wordt.

met deze code krijg ik geen foutmelding. Alleen hij wacht niet tussen de mails door.
Jouw tekst in #12
VREEMD,

Ik heb 2003 en 2007 en in beide omgevingen werkt het perfect.
ik krijg geen foutmeldingen, de mail vliegt eruit en vervolgens wacht de applicatie 10 seconden.

Dat is dus niet goed. mail versturen, wachten, mail versturen, wachten, mail versturen, enz. enz.

Sub AlleEmailVerzenden()
With Outlook.Application.GetNamespace("Mapi").GetDefaultFolder(16)
Do While .Items.Count > 0
.Items(1).Send
WaitTime
Loop
End With
End Sub

Sub WaitTime()
Dim T_EindTijd, T_StartTijd As Date
T_EindTijd = Time
T_EindTijd = DateAdd("s", 5, T_EindTijd) ' 5 seconden wachten
Do Until T_StartTijd >= T_EindTijd
T_StartTijd = Time ' verschil tussen huidige tijd en start-tijd
Loop
End Sub

Angela
 
Laatst bewerkt:
Angela,

Ik heb het idee dat jij de mail op de een of andere manier per stuk verzend door iedere keer opnieuw de code aan te roepen, klopt dat.
 
Ja, dat klopt en dan komen ze in concepten te staan.

En via de code in outlook wil ik ze dan allemaal versturen, alleen met tussen pozen van 30 seconden.

Angela
 
Angela,

De vinger op de zere plek leggen is heel erg lastig, zeker omdat het bij mij zowel met application.wait werkt, alsook met jouw code om 5 seconden te wachten.
ik heb het zowel in 2003 als in 2007 geprobeerd en het gaat als een speer.
Verzenden, 10sec wachten, verzenden, 10sec wachten, etc.

Kun je meer code plaatsen?
Hoe jij de code aanroept voor het aanmaken van de mail en het verzenden van de mail.

Trouwens een erg leuke code om een wachttijd in te stellen.
 
Zou ik nog iets in Extra, verwijzingen moet toevoegen dan ?

Ik heb

Ole automation
Visual basic for applications
Microsoft Outlook 11,0 object libary
Microsoft Office 11,0 object libary
Microsoft Office outlook vieuw control

Angela
 
Angela,

Wat er in het rijtje anders is dan bij mij is de verwijzing naar:
Microsoft Excel 11.0 Object Libary

Microsoft Office outlook vieuw control
Is niet noodzakelijk, deze heb ik helemaal niet gebruikt, maar het staat niet in de weg.

Maar ik mis nog steeds de manier van code aanroepen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan