sunnyboy59
Nieuwe gebruiker
- Lid geworden
- 1 nov 2011
- Berichten
- 2
Ik ben een portal aan het maken van waaruit diverse formulieren en documenten geopend worden en worden gevuld met wat basisinformatie.
De portal wordt gemaakt in Excel en de documenten kunnen Excel-sheets zijn of Worddocs. Voor de Excelsheets heb ik alles werkend, maar bij de worddocs loop ik nog tegen wat probleempjes aan.
Het te openen document kan in drie toestanden verkeren:
- Het is al geopend. Dat wordt bij A gecontroleerd en het document wordt actief gemaakt. Dat lijkt goed te gaan, maar het document wordt niet op de voorgrond geplaatst (zie F)
- Het is al eerder geopend voor dit project en staat in de projectdirectory, het wordt nu vanuit de projectdirectory geopend en op de voorgrond geplaatst
- Het is nog niet eerder geopend voor dit project en er wordt een leeg document uit de moederdirectory in de projectdirectory geplaatst, geopend en op de voorgrond geplaatst
Het vreemde is, dat als ik een reeds geopend document op de voorgrond wil plaatsen, er niets gebeurd, maar als ik het document open wel.
De vervelendste fout treed op als er meerdere Worddocs geopend worden en men die afsluit. Dan begint Word te roepen dat Normal.dotm gewijzigd is en of ik die op wil slaan. Ik weet niet hoe ik dat kan voorkomen.
Nog een fout is, dat als ik het laatste Worddoc afsluit en daarna nog een Worddoc probeer te openen, hij het Excel het Wordobject niet meer kan vinden, terwijl de variable Wordapp nog wel een verwijzing naar het Wordobject bevat.
Heeft iemand misschien wat meer ervaring hiermee dan ik en kan mij een paar tips geven?
Bij voorbaat dank
Henri Sonnenschein
De portal wordt gemaakt in Excel en de documenten kunnen Excel-sheets zijn of Worddocs. Voor de Excelsheets heb ik alles werkend, maar bij de worddocs loop ik nog tegen wat probleempjes aan.
Het te openen document kan in drie toestanden verkeren:
- Het is al geopend. Dat wordt bij A gecontroleerd en het document wordt actief gemaakt. Dat lijkt goed te gaan, maar het document wordt niet op de voorgrond geplaatst (zie F)
- Het is al eerder geopend voor dit project en staat in de projectdirectory, het wordt nu vanuit de projectdirectory geopend en op de voorgrond geplaatst
- Het is nog niet eerder geopend voor dit project en er wordt een leeg document uit de moederdirectory in de projectdirectory geplaatst, geopend en op de voorgrond geplaatst
Het vreemde is, dat als ik een reeds geopend document op de voorgrond wil plaatsen, er niets gebeurd, maar als ik het document open wel.
De vervelendste fout treed op als er meerdere Worddocs geopend worden en men die afsluit. Dan begint Word te roepen dat Normal.dotm gewijzigd is en of ik die op wil slaan. Ik weet niet hoe ik dat kan voorkomen.
Nog een fout is, dat als ik het laatste Worddoc afsluit en daarna nog een Worddoc probeer te openen, hij het Excel het Wordobject niet meer kan vinden, terwijl de variable Wordapp nog wel een verwijzing naar het Wordobject bevat.
Heeft iemand misschien wat meer ervaring hiermee dan ik en kan mij een paar tips geven?
Bij voorbaat dank
Henri Sonnenschein
Code:
Public WordApp, Worddoc As Variant
Sub ActiveerWrd(best As String)
Dim i As Integer
Dim fnd As Boolean
Dim strBestandInclFolder As String
'Zet een berichtregel in de Excelsheet
Call Berichtrgl("P", "U opent een Word-bestand - " _
& "Helaas vergt het openen van Word-bestanden meer tijd - " _
& "Een ogenblik geduld a.u.b.............")
If IsEmpty(WordApp) Then
Set WordApp = CreateObject("Word.Application")
End If
wbName = ActiveWorkbook.Name
A ' Controleer of het bestand al is geopend
fnd = False
With WordApp
For i = 1 To .Application.documents.Count
If .Application.documents(i).Name = best Then
.documents(i).Activate
fnd = True
End If
Next i
End With
If Not fnd Then
strBestandInclFolder = Application.ThisWorkbook.Path & "\" & best
If (FileFolderExists(strBestandInclFolder)) Then
fnd = True
Else
CopyFile (best)
If (FileFolderExists(strBestandInclFolder)) Then fnd = True
End If
If fnd Then
Set Worddoc = WordApp.documents.Open( _
Filename:=strBestandInclFolder, _
ReadOnly:=False, AddToRecentFiles:=False)
Else
MsgBox "Kan het gevraagde formulier niet vinden, raadpleeg uw formulierbeheerder.", vbOKOnly, "Foutje"
End If
End If
If fnd Then
F WordApp.Visible = True
End If
Set Worddoc = Nothing
Call Berichtrgl("D")
End Sub
Laatst bewerkt door een moderator: