Toon posts:

[VBA/Office] Wachten na elke uitvoering bij een loop *

Pagina: 1
Acties:
  • 745 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hier mijn probleem.

Ik heb een macro gemaakt in excel, deze moet 12000 Word bestanden openen. (Zijn Hyperlinks in een sheet).

Dit is mij gelukt:

For Repeat = 12000 To 1 Step -1

Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Application.WindowState = xlNormal

ActiveCell.Offset(1, 0).Range("A1").Select

Next Repeat

Alleen wil ik dat ie tussen het openen van elk bestand (dus per loop) Dat de macro 10 seconden (bv) wacht totdat Word klaar is met zijn handelingen.

Kan iemand mij helpen... (ik ben een super newbie in VBA)

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Weet je zeker dat je dit wilt? Als je alleen de 10 sec. wachttijd rekent, zit je al op

((12000 * 10 ) /60 ) /60 = ruim 33 uur!

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Hoe wil je het anders doen... als ik 1 seconde zeg loopt de boel waarschijnlijk vast omdat word 12000 documenten moet openen. (misschien wachttijd 5 seconden of 3... maar het gaat om de functie)

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Kun je iets uitgebreider vertellen wat je wilt? Misschien dat er andere oplossingen zijn.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Ik heb een lijst met 12000 bestanden (speciaal soort tekst formaat)

Uit deze bestanden moeten bepaalde stukken tekst zoals ontslag datum, patienten code etc in een .ini bestand gezet worden. Waarna het Orginele bestand opgeslagen moet worden als RTF bestand.

Wat ik nu gedaan heb is dmv: dir >bestanden.txt

een Tekst bestand gemaakt, deze geopend in excel, alle info behalve de namen gedelete.

De namen vervangen voor hyperlinks die verwijzen naar de bestanden (op mijn c:schijf)

Nu wil ik de bestanden 1 voor 1 openen (in word dus) bij het openen automatisch een macro laten lopen die de juiste gegevens in het .ini bestand zet het Document opslaat als rtf en het document sluit (dus niet het ini bestand)

Waarna dus het volgende bestand afgewerkt wordt.

  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 01-08 16:55
Hoi,

Voor het open van de diverse files in een dir kan je beter een andere functie gebruiken. Zie hier

Het gaat om het eerste stukje code

/edit

Voor word :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub ProcessFilesInFolder()

Dim sFileName As String
Dim sFolder As String

sFolder = "C:Jouw_directory"
sFileName = Dir(sFolder & "*.doc")



Do While sFileName <> ""
 Documents.Open (sFolder & sFileName)
 
    Application.Run MacroName:="Je_eigen_macro"
'    Hieronder het wel of niet opslaan van het originele (active) document
'    ActiveDocument.Close savechanges:=wdSaveChanges
'    ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
    sFileName = Dir()
Loop



 
End Sub


Bovenstaande code heb ik zelf ook gebruikt voor 15.000+ documenten, geen problemen omdat je word netjes laat afsluiten , en niet alle documenten gelijktijdig opent

[ Voor 77% gewijzigd door Bud_s op 13-11-2003 12:32 ]


Verwijderd

Topicstarter
Tnx.

Maar waar het mij om gaat is dat ik niet wil dat er 12000 documenten geprobeerd worden te openen door word.

Dus moet ik nog steeds een waiting time hebben in de loop van de macro die bestanden opent.

  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 01-08 16:55
Verwijderd schreef op 13 november 2003 @ 12:01:

Nu wil ik de bestanden 1 voor 1 openen (in word dus) bij het openen automatisch een macro laten lopen die de juiste gegevens in het .ini bestand zet het Document opslaat als rtf en het document sluit (dus niet het ini bestand)

Waarna dus het volgende bestand afgewerkt wordt.
Wat jij beschrijft, word precies gedaan door de code.
1 voor 1, en na uitvoeren macro sluit hij het word document
Pagina: 1