In je macro open je Excel, maar je verzendt het niets. Je moet ook een map maken, een vel en de cellen invullen. De debug.prints worden alleen gebruikt om het resultaat weer te geven in het VB-uitvoervenster. Hier is dezelfde macro, maar met een resultaat dat wordt weergegeven in Excel.
, heeft u een oplossing om een opmerking op de tekening toe te voegen om op een duidelijkere manier naar de dimensie in de tabel en de tekening te verwijzen?
U kunt bijvoorbeeld een tekst toevoegen onderaan het oproepnummer als dit nog niet in gebruik is. Om het te proberen, kunt u de regel swDispDim.SetText swDimensionTextCalloutBelow, "(Ref A" & teller & ")" net voor de regel toevoegen. Bereik ("A" & teller). Value = "Referentie hieronder : " & swDispDim.GetText(swDimensionTextCalloutBelow)
Allereerst wil ik erop wijzen dat ik absoluut niets van macro weet!
Ik graaf een oud onderwerp op. Ik wil graag controlebladen maken voor de werkplaats. Ik vond dit bericht met een macro tekst. Ik kopieer en plak en verbaas me dat het niet werkt. Waarvoor? Als iemand me zijn tijd wil geven om dit mysterie op te helderen.
Je dient de verwijzing naar Microsoft Excel toe te voegen in je macro, hiervoor ga je naar Extra / Referenties... en u voegt Microsoft Excel xx.x Object Library toe:
Met uw hulp heb ik goede vooruitgang geboekt op het gebied van controlebladen. maar ik zou nog verder willen gaan met de macro. Ik leg uit dat bij het uitvoeren van de macro elk Excel-bestand wordt geopend, maar is het mogelijk om een vooraf ingevuld Excel-bestand te openen dat een macro zou bevatten.
Ter info: we kunnen iets doen dat heel dicht in de buurt komt van wat je wilt doen met het hulpprogramma "tolerantietabel" van MyCADTools, heb ik de indruk (het maken van een tabel die de afmetingen + locatie ervan ophaalt)
Dim xlApp als Excel.Application Stel xlApp in = Nieuwe Excel.Toepassing Dim wbk als Excel.Workbook Dim sht als Excel.Werkblad
Met xlApp . Zichtbaar = Waar Stel wbk in = . Werkmappen.Toevoegen Stel sht in = wbk. Actief blad Eindigen met
Door deze:
Dim xlApp als Excel.Application Dim wbk als Excel.Workbook Dim sht als Excel.Werkblad
Set xlApp = CreateObject("Excel.application") xlApp.Visible = Waar Stel wbk in = xlApp.Workbooks.Open("C:\Gebruikers\XXX\Desktop\anotation_plan_solidworks-5.xlsx") Stel sht in = wbk. Actief blad
Door de bestandsnaam te vervangen door je bestand natuurlijk.
Dan moet je de regels tussen de "Met sht" en de "End With" veranderen om je waarden in de juiste cellen te zetten.
Hier is zowel de macro als het Excel-bestand om het controleblad te maken. Er is gewoon een bug, als er op het plan een engelenbeoordeling is, verknoeit het het.
Anders is het eenvoudig op het plan om het sorteren van de dimensies te beperken, moet u eerst alleen de afmetingen plaatsen die moeten worden gecontroleerd en vervolgens de macro uitvoeren, op het Excel-bestand dat wordt geopend, klikt u op de knop en in het tweede tabblad bevindt zich het controleblad. Als iemand een ander idee heeft om het aan te passen, laat het dan los.
PS: vergeet in de macro niet om het pad naar het Excel-bestand te wijzigen
Dus ja, het werkt, tenzij de afmeting een hoek is, wat normaal is, want in je macro op Excel heb je de regel "Temp = Replace(Split(Temp, "(")(1), "mm)", "")" waarmee u een waarde kunt herwerken die is opgehaald uit het blad dat automatisch is gemaakt van de SW-macro, maar deze waarde is niet op hetzelfde schrijfformaat als voor De andere kanten wat we zien in de regels:
Als swDispDim.GetType = 3 Dan . Bereik ("A" & teller). Waarde = "Waarde : " & swDimension.GetSystemValue2("") * 180 / pi & Chr(176) Anders . Bereik ("A" & teller). Waarde = "Waarde: " & swDimension.GetSystemValue2("") * 1000 / 25,4 & """" & " (" & swDimension.GetSystemValue2("") * 1000 & "mm)" Einde als
van de SW-macro.
Deze regels zijn slechts een opmaakstijl voor het schrijven van de dimensiewaarde voor het Excel-bestand en dit kan indien nodig eenvoudig worden gewijzigd.
Ik vind het moeilijk om te begrijpen waarom je een macro in je Excel-bestand doorloopt, alles wat je erin doet kan gemakkelijk in de SW-macro worden gedaan.
Van mijn kant zou ik de neiging hebben gehad om een standaardformulier in Excel te maken en het vervolgens in te vullen vanuit de SW-macro, waardoor macro's niet in Excel hoeven te worden geautoriseerd en dit bestand bijvoorbeeld ook op LibreOffice kan worden gelezen.
De rijen die in de SW-macro moeten worden herwerkt, zijn die tussen de regels "Met sht" en "Eindigen met" om alleen de waarden weer te geven die nodig worden geacht en deze naar de gewenste Excel-cellen te sturen. Een klein voorbeeld zal zeker volgen in de komende dagen (of uren) naar aanleiding van mijn beschikbaarheid.
Hier is het kleine voorbeeld zoals eerder aangekondigd. U hoeft alleen maar het pad van het Excel-bestand in de macro te wijzigen, maar de bestandsnaam te laten zoals deze is en het vervolgens vanuit SW te starten met een geladen plan.
Je bent een kampioen, mijn kampioen. Nou, zoals hierboven gezegd, ik heb geen kennis van VBA, dus ik knutsel, ik knutsel.
De Macor werkt goed, maar merkwaardig genoeg moet ik hem 2 keer draaien. De eerste keer brult ze bij de eerste kansen. Ik sluit Excel, ik heb een fout 1004, ik antwoord "einde", ik start de macro opnieuw en het wonder, het werkt perfect.
"Anders is het eenvoudig: op de kaart, om het sorteren van de dimensies te beperken, moet je eerst alleen de te controleren dimensies plaatsen, vervolgens de macro uitvoeren, op het Excel-bestand dat open is, op de knop klikken en in het tweede tabblad is het controleblad. Als iemand een ander idee heeft om het aan te passen, laat het dan los."
Wat bedoel je met op de eerste plaats zetten?
Aangezien ik een tekening heb met ongeveer 100 zijden en ik maar 5 zijden in mijn bedieningspaneel wil