Hallo Vanuit solidworks start ik een macro met een USF die waarden uit een Excel-werkmap zou moeten weergeven bij het openen ervan
Deze code werkt in Excel haalt cel H2 op van het tabblad ' Lijst '
sub Excel_test()
Url = "C:\Users\xx\Documents\SYSTEL\02-PROG\Macros\"
Fichier_Excel = "PART_Step.xlsm"
Cells(1, 10) = ExecuteExcel4Macro("'" & Url & "[" & Fichier_Excel & "]Liste'!" & Range("H2").Address(, , xlR1C1)) 'URL entrée
end sub
sinds Solidworks heb ik deze fout Runtime fout ‹ 1004 ›: De ' Bereik ' methode van het object ' _Global ' mislukte
Private Sub UserForm_Initialize()
Dim swApp As SldWorks.SldWorks
Set swApp = Application.SldWorks
Url = "C:\Users\xx\Documents\SYSTEL\02-PROG\Macros\"
Fichier_Excel = "PART_Step.xlsm"
label3= ExecuteExcel4Macro("'" & Url & "[" & Fichier_Excel & "]Liste'!" & Range("H2").Address(, , xlR1C1)) 'URL entrée
end sub
Als iemand een idee heeft
Maclane
4 september 2024 om 09:03
2
Bonjour; Ne manquerait-il pas les déclaration/references pour Excel ?
`Dim xlApp As Excel.Application
Set xlApp = New Excel.Application`
Voir (pour plus d'informations):
Gezien de alomtegenwoordigheid van Microsoft Excel op technische afdelingen over de hele wereld, is het geen verrassing dat onze tutorial "Microsoft Excel gebruiken met de SolidWorks API", beschikbaar voor Premium-leden, een van onze meest populaire is. Hoewel ik niet ga behandelen...
Geschatte leestijd: 7 minuten
3 likes
Ik voegde eraan toe
Dim xlApp als Excel.Application Stel xlApp in = Nieuwe Excel.Toepassing'
het werkt ook niet
Cyril_f
4 september 2024 om 12:08
4
Hallo
Tenzij ik me vergis, is het in VBA niet mogelijk om toegang te krijgen tot de inhoud van een Excel-bestand zonder het te openen. Als het bijvoorbeeld voor een soort " database " is om een vervolgkeuzelijst te voeden, is de gemakkelijkste manier om het in een tekstbestand te schrijven en te lezen.
1 like
Ik heb net getest dat het mogelijk is op Excel, ik kan de match met Solidworks niet vinden
sub Excel_test()
Url = "C:\Users\xx\Documents\SYSTEL\02-PROG\Macros\"
Fichier_Excel = "PART_Step.xlsm"
Cells(1, 10) = ExecuteExcel4Macro("'" & Url & "[" & Fichier_Excel & "]Liste'!" & Range("H2").Address(, , xlR1C1)) 'URL entrée
end sub
Maclane
4 september 2024 om 12:49
6
et en remplaçant
Cells(1, 10) = ExecuteExcel4Macro(.....
Par
Set xlapp = CreateObject("Excel.application")
Label13 = xlapp.ExecuteExcel4Macro(.....
des pistes relativement identiques ici:
Excel, VBA, Excel-4.0
1 like
Cyril_f
4 september 2024 om 13:16
7
Ik heb net getest, dus het werkt wel op Excel, maar op SW niet (fout op de bereiklijn). Op het eerste gezicht denk ik dat het een compatibiliteitsprobleem is tussen SW, dat is in 64bit en Office in 32bit.
Maclane
4 september 2024 om 13:37
8
Essayez avec GetObject("Excel.Application") à la place de CreateObject("Excel.Application") … Il faut aussi penser à « tuer » tous les processus Excel residuels: Shell "TASKKILL /F /IM Excel.exe", vbHide A voir aussi:
Het oplossen van de fout in de macro die verbinding maakt met de database (e.g. SQL, MySql, Oracle, MS Access enz.) of een andere gegevensbron en geen waarden leest/schrijft of een fout weergeeft
mais aussi:
Merci Yves.T ,
Il me maquait la référence "Microsoft Excel XX.X Object library".
Comment fait-on pour savoir quelles références sont nécessaires pour quel code ??
Sinon, pour alimenter ma Combobox j'ai utilisé le code suivant :
Privé Sub UserForm_Initialize()
Dim i als byte
Dim e Als String
i = 1
Doen
ComboBox1.AddItem ExecuteExcel4Macro("'C:\Documents and Settings\mimi\dossier\excel\[ClasseurBase.xlsx]Feuil1'! R" & i & "C1")
i = ik + 1
e = ExecuteExcel4Macro("'C:\Documents en ...
Cyril_f
4 september 2024 om 14:16
9
Het is niet zozeer de ExecuteExcel4Macro-regel die crasht, maar de aanroep naar Range.
De foutmelding is als volgt, zoals geciteerd De 'Range'-methode van object '_Global' is mislukt
Cyril_f
5 september 2024 om 07:43
11
Hallo
De bereikmethode wordt niet ondersteund via de versie van vba die in SW is geïntegreerd, dus er zijn nog twee oplossingen over (de tweede is in dit stadium nog niet getest):
Maak een lus met een functie om elke gewenste kolom/rij op te halen, zie ExecuteExcel4Macro - Microsoft Community
Probeer ADODB-achtige functies. Verbinding, zie Lezen en schrijven in gesloten Excel-werkmappen (developpez.com)
Ik heb dus alleen de eerste getest die goed werkt.
2 likes
kun je de juiste macro zetten, ik kan het niet doen met oplossing 1
Cyril_f
5 september 2024 om 09:29
13
Kunt u mij vertellen op welk bereik u de waarden wilt ophalen? (typ bijvoorbeeld A1:C2)
hier is mijn originele code die niet werkt, H2
Private Sub UserForm_Initialize()
Dim swApp As SldWorks.SldWorks
Set swApp = Application.SldWorks
Url = "C:\Users\xx\Documents\SYSTEL\02-PROG\Macros\"
Fichier_Excel = "PART_Step.xlsm"
label3= ExecuteExcel4Macro("'" & Url & "[" & Fichier_Excel & "]Liste'!" & Range("H2").Address(, , xlR1C1)) 'URL entrée
end sub
Cyril_f
5 september 2024 om 09:45
15
Om het volledig te begrijpen, wil je alleen de H2-cel?
Cyril_f
5 september 2024 om 10:38
17
In dit geval veel eenvoudiger:
label3= ExecuteExcel4Macro("'" & Url & "[" & Fichier_Excel & "]Liste'!" & "R2C8") 'URL entrée
1 like
Geweldig, het werkt
Hier is nog een voorbeeld voor degenen die geïnteresseerd zijn
Label2 = ExecuteExcel4Macro("'" & url & "[" & Fichier_Excel & "]Liste'!" & "R11C8") & "\" & _
ExecuteExcel4Macro("'" & url & "[" & Fichier_Excel & "]Liste'!" & "R11C7") & _
"-STEP\" 'URL sortie
2 likes
Maclane
5 september 2024 om 12:53
19
Het is nog steeds vreemd dat de functie "ExcelExcel4Macro" tabelcoördinaten zoals " Rij " +" Kolom " accepteert, maar niet het "Bereik... De geneugten van computers en zijn mysteries...
1 like
Cyril_f
5 september 2024 om 13:00
20
Zoals ik al zei, denk ik dat de SW API op 64 bit functies staat waar het in Excel 32 is. Als Excel in 64 was, denk ik dat er geen probleem zou zijn. Ik heb het geval van sommige macro's die alleen kunnen worden gestart vanuit SW en zijn in fout als ik ze start vanuit Excel
2 likes