Userform heeft een hogere prioriteit nodig (op de voorgrond)

Status
Niet open voor verdere reacties.

Nicknero1405

Gebruiker
Lid geworden
16 jul 2010
Berichten
18
Hallo helpers.

Ik heb met VBA een macro gemaakt voor solidworks met daarin een eigen userform. Alleen af en toe lijkt het erop dat hij het niet doet en heel Solidworks vast loopt, maar ik ben er achter gekomen dat de macro wel werkt, maar dat de userform op de achtergrond van Solidworks (erachter dus) verschijnt zodat je hem niet kan zien. Het verschijnt ook niet op je taakbalk, dus je kunt het ook niet naar de voorgrond halen.

Is er een code, of misschien een andere oplossing om er voor te zorgen dat de userform altijd op de voorgrond blijft, en dus een hogere prioriteit heeft dan de andere programma's?

Alvast bedankt.
Nick
 
Oke, Ik denk dat ik mijn eerste probleem zelf al op gelost hebt.
Met
Code:
UserForm1.Show vbModal
Heb ik er voor gezorgd dat hij op de voorgrond opent, alleen dat duurt behoorlijk lang. Ik weet niet of het iets met dit te maken heeft, of dat het kan zijn dat Excel opstarten gewoon behoorlijk traag is.
Ik zal hieronder de eerste deel van mijn macro neerzetten in de hoop dat iemand mij kan vertellen waarom het zo lang duurt voor de userform eindelijk tevoorschijn komt.

Code:
Sub main()
Dim oExcel As Excel.Application
Dim oWB As Workbook
Dim oWS As Excel.Worksheet
Dim strartno, strmodel As String, strtimesfound As String, strconf As String, Showonce As String
Dim RetVal As Boolean
Dim strRow
Dim part As SldWorks.ModelDoc2
Dim noMatch As String
Dim frmCustom
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swConfigMgr As SldWorks.ConfigurationManager
Dim swConfig As SldWorks.Configuration
Dim myForm As UserForm1
Set myForm = New UserForm1

Set oExcel = New Excel.Application
Set swApp = CreateObject("SldWorks.Application")
Set part = swApp.ActiveDoc

If part Is Nothing Then
    MsgBox "Er is geen document open."
    GoTo Einde:
End If

strfilename = part.GetTitle
    Dim posn As Integer, i As Integer

    'get filename without extension
    posn = InStr(strfilename, ".")
        If posn <> 0 Then
            strfilename = Left(strfilename, posn - 1)
        End If



oExcel.Visible = False

Set oWB = oExcel.Workbooks.Open("file:///\\savas-sbs1\Openbaar\400 Ont\00 Bibliotheek\Tekeningen\TEKART.xls")

On Error GoTo Einde:

With oWB.Sheets("Sheet1")

    Dim rSearch As Range
    Dim r As Long
    
    Set rSearch = .Columns("D").Find(strfilename, LookIn:=xlValues, lookat:=xlPart, MatchCase:=False)
    
    If Not rSearch Is Nothing Then
        strtimesfound = 0
        r = rSearch.Row
        Set swConfigMgr = part.ConfigurationManager
        Set swConfig = swConfigMgr.ActiveConfiguration
        Unload UserForm1
        UserForm1.Partnaam.Value = rSearch.Value & " - " & swConfig.Name
            Do
                strtimesfound = strtimesfound + 1
                UserForm1.ComboBox1.AddItem rSearch.Offset(, -2).Value & " - (" & rSearch.Offset(, -3).Value & ")"
                UserForm1.ComboBox1.Value = rSearch.Offset(, -2).Value & " - (" & rSearch.Offset(, -3).Value & ")"
            
                Set rSearch = .Columns("D").Find(strfilename, After:=rSearch, LookIn:=xlValues, _
                              lookat:=xlPart, MatchCase:=False)
                If r >= rSearch.Row Then Exit Do
        
            Loop

        If strtimesfound > 1 Then
            Load UserForm1
            UserForm1.Show vbModal
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan