Nicknero1405
Gebruiker
- Lid geworden
- 16 jul 2010
- Berichten
- 18
Goedemiddag.
Ik ben op mijn werk bezig met het programmeren van een VBA script in SolidWorks waarmee ik het volgende stap voor stap kan doen:
- Het script (macro) word geactiveerd in Solidworks.
- Een inputbox word ge-opent waarin je een naam kunt typen
- Het script opent automatisch een excel bestand en gaat in kolom D naar de ingevulde naam zoeken.
- Het script geeft de rij waarin de naam gevonden is terug in een andere string
- Vervolgens kopieert het script de tekst in kolom B in de rij die hij gevonden heeft in punt 3/4
- Nu plakt hij de tekst automatisch in een custom property in Solidworks.
Alles werkt voor 90%, alleen heb ik een aantal foutmeldingen waar ik echt geen raad mee heb.
Hier heb ik het script waar ik tot zover gekomen ben:
Ik hoop dat jullie mij met de volgende punten kunnen helpen:
Error 1:
- Als ik de macro voor de tweede keer run, krijg ik de volgende error: Runtime error '1004': Methode 'Range' of Object'_Global' failed.
en de debugger selecteert de volgende regel:
Dit blijft zo om en om door gaan, dus eerst werkt het wel, dan niet, dan wel, dan niet etc etc.
Error 2:
- Als het script geen match kan vinden in kolom D geeft hij de volgende error: Runtime error '1004': Eigenschappen van de klasse WorksheetFunction kan niet worden opgehaald.
en opnieuw selecteert de debugger de volgende regel:
Ik wil graag hebben dat als er geen match kan worden gevonden hij een message box stuurt met het bericht "Naam niet gevonden in het database." en vervolgens sluit hij de macro af zodat het niet verder uitgevoerd kan worden.
Error 3:
Nouwja, niet echt een error. Maar ik kom er achter dat ondanks mijn script excel op het einde weer moet afsluiten, ik alsnog een aantal EXCEL.EXE in mijn taken beheer terug vind (ctrl alt del)
Ik denk dat dit komt doordat het script excel opstart, maar door een error eindigt VOOR dat hij excel weer afsluit, maar dat weet ik niet zeker.
Alvast bedankt, en ik hoop echt dat ik zo snel mogelijk dit gefixed krijg.
Ik ben op mijn werk bezig met het programmeren van een VBA script in SolidWorks waarmee ik het volgende stap voor stap kan doen:
- Het script (macro) word geactiveerd in Solidworks.
- Een inputbox word ge-opent waarin je een naam kunt typen
- Het script opent automatisch een excel bestand en gaat in kolom D naar de ingevulde naam zoeken.
- Het script geeft de rij waarin de naam gevonden is terug in een andere string
- Vervolgens kopieert het script de tekst in kolom B in de rij die hij gevonden heeft in punt 3/4
- Nu plakt hij de tekst automatisch in een custom property in Solidworks.
Alles werkt voor 90%, alleen heb ik een aantal foutmeldingen waar ik echt geen raad mee heb.
Hier heb ik het script waar ik tot zover gekomen ben:
Code:
Sub main()
Dim oExcel As Excel.Application
Dim oWB As Workbook
Dim oWS As Excel.Worksheet
Dim strartno As String
Dim sConfig As String
Dim retval As Boolean
Dim strRow As Long
Set oExcel = New Excel.Application
Set swApp = CreateObject("SldWorks.Application")
Set part = swApp.ActiveDoc
strModel = InputBox("Vul hier de naam in waar je naar wilt zoeken.")
oExcel.Visible = True
Set oWB = oExcel.Workbooks.Open("file:///\\savas-sbs1\Openbaar\400 Ont\00 Bibliotheek\Tekeningen\Tekeningenlijst op artikel.xlsx")
strRow = WorksheetFunction.Match((strModel), Range("D1:D500"), 1)
strartno = Cells(strRow, 2).Value
MsgBox ("Artiekel code van " & strModel & " is: " & strartno & " En is te vinden in rij nummer: " & strRow)
sConfig = "" 'not config specific in this case
'set all custom defaults
part.AddCustomInfo3 sConfig, "Artiekelcode", swCustomInfoText, strartno
Excel.Application.DisplayAlerts = False
Excel.Application.Quit
End Sub
Ik hoop dat jullie mij met de volgende punten kunnen helpen:
Error 1:
- Als ik de macro voor de tweede keer run, krijg ik de volgende error: Runtime error '1004': Methode 'Range' of Object'_Global' failed.
en de debugger selecteert de volgende regel:
Code:
strRow = WorksheetFunction.Match((strModel), Range("D1:D500"), 1)
Error 2:
- Als het script geen match kan vinden in kolom D geeft hij de volgende error: Runtime error '1004': Eigenschappen van de klasse WorksheetFunction kan niet worden opgehaald.
en opnieuw selecteert de debugger de volgende regel:
Code:
strRow = WorksheetFunction.Match((strModel), Range("D1:D500"), 1)
Error 3:
Nouwja, niet echt een error. Maar ik kom er achter dat ondanks mijn script excel op het einde weer moet afsluiten, ik alsnog een aantal EXCEL.EXE in mijn taken beheer terug vind (ctrl alt del)
Ik denk dat dit komt doordat het script excel opstart, maar door een error eindigt VOOR dat hij excel weer afsluit, maar dat weet ik niet zeker.
Alvast bedankt, en ik hoop echt dat ik zo snel mogelijk dit gefixed krijg.