Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

nach jedem Eintrag eine Pause, aber wie nur ?

nach jedem Eintrag eine Pause, aber wie nur ?
10.02.2015 14:16:35
Joern
Hallo Zusammen, ich hab mehr eien VBA Frage, brauch das aber in Outlook.
Ich habe mir einen Code im Internet gemopst, der zwar funktioniert aber bei zuviel Einträgen in einem Laufzeitfehler endet. Es wird in Outlook nach Geburtstagseinträgen gesucht und dann das Alter für jeden Eintrag errechnet. Nun hab ich ca. 300 Einträge im Outlook aber nach 170 stoppt das Makro und gibt mir einen Laufzeiutfehler aus. Kann man nach jeder Berechnung eine Pause einbauen, ich poste mal den Code:
'Durchlaufen aller Kalendereinträge und suchen nach Einträgen die im Betreff "Geburtstag" enthalten
For i = myitems.Count To 1 Step -1
If InStr(myitems(i).Subject, "Geburtstag") Then
myitems(i).Display
'----- Alter ermitteln
AddAgeYearOfBirth = myitems(i).GetRecurrencePattern.PatternStartDate
Age = DateDiff("yyyy", AddAgeYearOfBirth, Now())
myitems(i).Location = "[Alter: " + Age + "]"
myitems(i).Save
myitems(i).Close 0 'geöffnete Datensätze wieder schliessen
AddAgeCounter = AddAgeCounter + 1 'Anzahl der geänderten Einträge mitzählen
End If
Oder hat jemand eine andere Idee wie ich diesen Laufzeitfehler unterbinden kann?! Da wär ich sehr dankbar :-)
Viele Grüße Jörn

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nach jedem Eintrag eine Pause, aber wie nur ?
10.02.2015 17:40:13
Luschi
Hallo Jörn,
in Schleifen ist es sinnvoll, ab und zu dem Betriebssystem sein Recht zukommen zu lassen, _ insbesondere dann, wenn Speichern-Befehle mit im Spiel sind (.Save) - deshalb mache es so:

For i = myitems.Count To 1 Step -1
'Dein Code
'am Schleifenende
If i mod 20 = 0 Then
DoEvents
End if
Next i
Gruß von Luschi
aus klein-Paris

AW: nach jedem Eintrag eine Pause, aber wie nur ?
10.02.2015 18:01:53
Joern
Hallo Luschi,
also nur das hier,
If i mod 20 = 0 Then
DoEvents
End if
Next i
hintendran? Hinter Next i ist dann Schluß? Schau mal bitte ob das hier unten dann richtig ist, probier ich morgen gleich aus :-)
Danke schon mal für die schnelle Antwort!
Gruß Jörn
'Durchlaufen aller Kalendereinträge und suchen nach Einträgen die im Betreff "Geburtstag" enthalten
For i = myitems.Count To 1 Step -1
If InStr(myitems(i).Subject, "Geburtstag") Then
myitems(i).Display
'----- Alter ermitteln
AddAgeYearOfBirth = myitems(i).GetRecurrencePattern.PatternStartDate
Age = DateDiff("yyyy", AddAgeYearOfBirth, Now())
myitems(i).Location = "[Alter: " + Age + "]"
myitems(i).Save
myitems(i).Close 0 'geöffnete Datensätze wieder schliessen
AddAgeCounter = AddAgeCounter + 1 'Anzahl der geänderten Einträge mitzählen
If i mod 20 = 0 Then
DoEvents
End if
Next i

Anzeige
AW: nach jedem Eintrag eine Pause, aber wie nur ?
11.02.2015 08:41:14
Joern
Ich habs, vielen Dank!!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige