[vba] Bij het openen van document 2, document 1 sluiten

Pagina: 1
Acties:

  • Zym0tiC
  • Registratie: Februari 2001
  • Laatst online: 01:36
Ik heb een zeer irritant probleem bij vba in Word waar ik maar niet uitkom.

Even een situatie schets.

Ik heb 1 main.dot bestand wat in de startup dir staat van Word. Dit bestand zorgt ervoor dat een button wordt toegevoegd in de menubalk waarmee je een popup kunt oproepen. Aan de hand van deze popup is het mogelijk om verschillende templates te kiezen (brieven, faxen, etc).

Nu opent die template goed maar zo gauw de template geopend is verdwijnt de focus weer naar het eerste document (met het popup menu).
Nu dacht ik dit dus op te lossen door ActiveDocument.Close(wdDoNotSave) mee te geven.
Werkt perfect :)

Alleen wanneer ik dus vanuit dat 2de document op de button klik om het popup menu op te roepen wordt het opgeroepen document afgesloten, en dat was nu net niet de bedoeling :X

nu heb ik het idee dat de manier waarop ik het doe niet echt de meest efficiente is, waarschijnlijk zullen er wel een paar foefjes voor zijn, misschien dat iemand me een beetje in de juiste richting wil sturen :)

There is no such thing as innocence, only degrees of guilt | Flickr!


Verwijderd

Kan je de popup die je oproept niet gewoon modal oproepen. Dan ben je er ook.

Voorbeeldje
Visual Basic:
1
2
3
4
5
6
7
Public sub prcShowForm()
     Dim frmMain as New FMain 'of Form, kan ook

     frmMain.show vbModal
     set frmMain = Nothing

End Sub

  • Zym0tiC
  • Registratie: Februari 2001
  • Laatst online: 01:36
Verwijderd schreef op 29 juni 2004 @ 08:25:
Kan je de popup die je oproept niet gewoon modal oproepen. Dan ben je er ook.

Voorbeeldje
Visual Basic:
1
2
3
4
5
6
7
Public sub prcShowForm()
     Dim frmMain as New FMain 'of Form, kan ook

     frmMain.show vbModal
     set frmMain = Nothing

End Sub
Ik heb al een andere manier gevonden om het op te lossen:

Dit gaat trouwens over de OK button in het main form

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Private Sub ok_Click()
   Dim doc As Document
   
    If ListBox.Value = "Brief" Then
        Set doc = Documents.Add(Template:= _
            "c:\brief.dot" _
            , NewTemplate:=False, DocumentType:=0)
    End If
    
    If ListBox.Value = "Fax" Then
        Set doc = Documents.Add(Template:= _
            "c:\fax.dot" _
            , NewTemplate:=False, DocumentType:=0)
    End If
    
    If ListBox.Value = "Notitie" Then
        Set doc = Documents.Add(Template:= _
            "c:\notitie.dot" _
            , NewTemplate:=False, DocumentType:=0)
    End If
    
    If ListBox.Value = "Rapportage" Then
        Set doc = Documents.Add(Template:= _
            "c:\rapport.dot" _
            , NewTemplate:=False, DocumentType:=0)
    End If
    
    If ListBox.Value = "Agenda" Then
        Set doc = Documents.Add(Template:= _
            "c:\agenda.dot" _
            , NewTemplate:=False, DocumentType:=0)
    End If
    
    MainMenu.Hide
    
    doc.Activate

End Sub

There is no such thing as innocence, only degrees of guilt | Flickr!