Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
Private Sub CommandButton1_Click()
Set xlApp = New Excel.Application
xlApp.Visible = False
Set xlWB = xlApp.Workbooks.Open("X:\PROJECTEN\WIJZIGINGEN BEHEER.xlsx")
'Doe iets
xlApp.Quit
Set xlApp= Nothing
End sub
Option Explicit
Sub ImportValueFromExcel()
Dim myExcel As Object, myFile As Object
'Nieuwe instance van Excel maken.
Set myExcel = CreateObject("Excel.Application")
'Deze nieuwe instance hoeven we niet te zien.
myExcel.Visible = False
'Het Excel-document bevat misschien macro's, maar dat mag geen aanleiding geven
'tot een vraag aan de gebruiker.
myExcel.DisplayAlerts = False
'Het Excel-document als Read Only openen.
Set myFile = myExcel.workbooks.Open(FileName:=ThisDocument.Path & "\test1.xls", ReadOnly:=True)
'Hier komt de code om gegevens uit het Excel-bestand te importeren.
'Doe iets...
'Zolang deze Msgbox zichtbaar is zou men Excel moeten terugvinden in de Task Manager.
MsgBox "Excel nog in Task Manager ?"
'Excel hebben we niet meer nodig.
myExcel.Quit
'Volgens sommige bronnen is het op Nothing zetten van de objectvariabelen niet
'nuttig, zelfs belachelijk. Andere bronnen, ook de VBA-help-file van Microsoft
'zelf, vinden het nodig. We nemen dan maar de veiligste weg.
Set myExcel = Nothing
Set myFile = Nothing
End Sub
Private Sub UserForm_Initialize()
'Excel en MyFile als object dimensioneren
Dim myExcel As Object, myFile As Object
'Een instantie maken van Solidworks document dat nu actief is.
Set swModel = Application.SldWorks.ActiveDoc
'Onderdeel krijgt de naam van projectnummer van onderdeel.
Onderdeel = swModel.GetTitle
'Verander de title van de userform naar projectnummer
UserForm1.Caption = "WIJZIGINGENBEHEER: " & Onderdeel
'Controleer of excel al is geopend, zo nee, maak een nieuwe instantie aan.
If Excel.Application Is Nothing Then
Set myExcel = CreateObject("Excel.Application")
Else
'Zo ja, maak de geopende excel aan als instantie.
Set myExcel = Excel.Application
End If
'Deze nieuwe instance hoeven we niet te zien.
myExcel.Visible = False
'Het Excel-document bevat misschien macro's, maar dat mag geen aanleiding geven tot een vraag aan de gebruiker.
myExcel.DisplayAlerts = False
'Het Excel-document openen.
Set myFile = myExcel.Workbooks.Open("X:\PROJECTEN\WIJZIGINGEN BEHEER.xlsx")
'Doe iets
'Wijzigingen opslaan
ActiveWorkbook.Save
'Excel is niet meer nodig.
myExcel.Quit
'Volgens sommige bronnen is het op Nothing zetten van de objectvariabelen niet nuttig, zelfs belachelijk. Andere bronnen,
'ok de VBA-help-file van Microsoft zelf, vinden het nodig. We nemen dan maar de veiligste weg.
Set myExcel = Nothing
Set myFile = Nothing
End Sub
Lol. Maar ik hoop dat je dit bedoelt: "taskmanager geeft aan dat er 6 excel instanties open staan. Die heeft altijd gelijk, dus ik doe iets fout in mijn code."Taskmanager is een beetje wispelturig
Heb je je code ook getest door er met F8 doorheen te stappen? Heb je ooit gezien dat die CreateObject wordt uitgevoerd? Ik vermoed van niet...Dus ik ben 2 keer zo veilig te werk gegaan:
Set myExcel = CreateObject("Excel.Application")
Set myFile = myExcel.Workbooks.Open("X:\PROJECTEN\WIJZIGINGEN BEHEER.xlsx")
myFile.Save
myFile.close
Set myFile = Nothing
myExcel.Quit
Set myExcel = Nothing
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.