- AMD Navi Radeon™ RX 9xxx sorozat
- Szünetmentes tápegységek (UPS)
- Milyen billentyűzetet vegyek?
- Azonnali informatikai kérdések órája
- Hobby elektronika
- Riasztó topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- TCL LCD és LED TV-k
- Erőgép kompakt tábla formájában a Redmitől
Új hozzászólás Aktív témák
-
új kérdező
csendes tag
Tisztelt Mindenki!
Ezúton szeretnék segítséget kérni. autocad 2010-ben írtam egy makrót (VB6) Ami annyit tesz, hogy egy excel táblából átvesz egy cella értéket és megnyitja a hozzá tartozó fájlt és beilleszti a másik oszlopban lévő szöveget blokként, itt jön egy modalis Userform amiben a felhasználó szétrobbantja a beillesztett blokkot. A userformot szerettem volna egy olyannal kiváltani, hogy egy adott billentyűre történjen meg a szétrobbantás de úgy hogy a megnyomás előtt a felhasználó a beillesztett blokkot tudja forgatni meg stb. De mivel ezt nem tudom ezért lett a modális Userform, mivel nagyon- nagyon gyenge vagyok a témában.
De igazából nem ezt a fő gondom.Erre a feladatra szeretnék egy ciklust kérni, azaz, hogy az exceltáblában menjen végig a sorokon amíg el nem fogynak az adatok, de úgy, hogy várja meg amíg a Userformon lévő művelet is lezajlik.
Sub Example_StartAngle()
Dim xlApp As Object
Dim xlBook As Object
Dim xlBooks As Object
Dim xlSheets As Object
Dim xlSheet As Object
Dim xlCells As Object
Dim xlRange As Object
Dim futott As Boolean
futott = True
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If xlApp Is Nothing Then
futott = False
Set xlApp = CreateObject("Excel.Application")
If xlApp Is Nothing Then
MsgBox "nem sikerült elindítani az exel-et"
End If
End If
' AutoCAD alkalmazás ablak megjelenítése
xlApp.Application.Visible = True
Set xlBooks = xlApp.Workbooks
If xlBooks.Count > 0 Then
Set xlBook = xlBooks.Item(1)
End If
If xlBooks.Count = 0 Then
Set xlBook = xlBooks.Open("C:\Users\ko\Documents\számbeíráshoz.xlsx")
End If
Set xlSheets = xlBook.worksheets
Set xlSheet = xlSheets.Item(sheetName) '<--- change a sheet name (might be a sheet number instead)
xlSheet.Application.Visible = True
Set xlCells = xlSheet.Cells
Set xlRange = xlCells.Range("$A1")
Dim AcadApp As AcadApplication
Dim MyDxf As AcadDocument
Set AcadApp = GetObject(, "AutoCAD.Application")
Dim fnev As String
fnev = Cells(s, 1)
If fnev = "" Then
xlApp.Workbooks.Close
xlApp.Quit
Set xlApp = Nothing
MsgBox "vége"
Exit Sub
End If
Set MyDxf = AcadApp.Documents.Open("l:\sw2010rajz\dxf-k szöveghez\" & fnev & ".dxf")
ZoomExtents
Dim newLayer As AcadLayer
' Create a Layer and make it the active layer
Set newLayer = ThisDrawing.Layers.Add("gravir")
newLayer.Color = acRed
ThisDrawing.ActiveLayer = newLayer
ThisDrawing.Regen (True)
Dim textObj As AcadText
Dim textString As String
Dim insertionPoint As Variant
Dim height As Double
textString = Cells(s, 2)
insertionPoint = ThisDrawing.Utility.GetPoint(, "Kattints a beillesztési ponthoz: ")
height = 5
Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height)
ZoomExtents
Dim exportFile As String
exportFile = "c:\wmf-k\" & fnev & ""
Dim sset As AcadSelectionSet
Set sset = ThisDrawing.SelectionSets.Add("NEWSS")
sset.Select acSelectionSetLast
'sset.Select acSelectionSetAll
' Export the current drawing to the file specified above.
ThisDrawing.Export exportFile, "WMF", sset
textObj.Delete
Dim blockRefObj As AcadBlockReference
Dim importFile As String
Dim InsertPoint As Variant
Dim scalefactor As Double
InsertPoint = ThisDrawing.Utility.GetPoint(, "Kattints a beillesztési ponthoz: ")
Set blockRefObj = ThisDrawing.Import("c:\wmf-k\" & fnev & ".wmf", InsertPoint, 2)
ZoomExtents
Load UserForm1
UserForm1.TextBox1.Text = "" & fnev & ""
UserForm1.Show
Kill "c:\wmf-k\" & fnev & ".wmf"
SaveAs ("l:\sw2010rajz\dxf-k szöveghez\k\" & fnev & ".dxf"), ac2000_dxf
ThisDrawing.Application.ActiveDocument.Close (True)
xlApp.Workbooks.Close
xlApp.Quit
Set xlApp = Nothing
End Sub
Private Sub CommandButton1_Click()
Dim AcadApp As AcadApplication
Dim MyDxf As AcadDocument
Set AcadApp = GetObject(, "AutoCAD.Application")
UserForm1.Hide
fnev = TextBox1.Text
Dim intFilterType(0) As Integer
Dim varFilterData(0)
intFilterType(0) = 0
varFilterData(0) = "Insert"
Dim explodedObjects As Variant
Dim I As Integer
I = 0
Dim objSSet As AcadSelectionSet
Dim blkEntry As AcadBlockReference
Do Until I = 1 'explodes all blocks
Set objSSet = ThisDrawing.SelectionSets.Add("Block")
objSSet.Select acSelectionSetAll, , , intFilterType, varFilterData
For Each blkEntry In objSSet
explodedObjects = blkEntry.Explode
Dim C As Integer
For C = 0 To UBound(explodedObjects)
explodedObjects(C).Update
explodedObjects(C).Color = acByLayer
explodedObjects(C).Lineweight = acLnWtByLayer
explodedObjects(C).Update
Next
blkEntry.Delete
Next blkEntry
ThisDrawing.SelectionSets.Item("Block").Delete
I = I + 1
Loop
End SubA programban lehet, hogy még vannak felesleges sorok de sebaj. a válaszokat előre is köszönöm.
Új hozzászólás Aktív témák
- Kertészet, mezőgazdaság topik
- Autós topik
- Windows 10
- Miért vezet mindenki úgy, mint egy állat?
- iRacing.com - a legélethűbb -online- autós szimulátor bajnokság
- Építő/felújító topik
- Samsung Galaxy A54 - türelemjáték
- Egyszerre legnagyobb és legkisebb is a Garmin Venu X1
- Villanyszerelés
- AMD Navi Radeon™ RX 9xxx sorozat
- További aktív témák...
- Üzletből, garanciával, Macbook Pro Retina 14" 2021, M1 32GB RAM/1TB SSD Space gray
- HP EliteBook x360 830 G8 Core i5 1145G7 2.6GHz/16GB RAM/512GB
- UF Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -60% i7-1360P 16/1TB Iris Xe 2,8K OLED 90Hz
- Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -60% i7-1260P 16/512 Iris Xe 2,8K OLED 90Hz
- Új DELL Inspiron 16 Fémházas Multimédiás Laptop 16" -40% Ryzen 7 8840U 8mag 16/1TB FHD+ IPS
- 35" ASUS ROG Swift PG35VQ curved GAMER monitor
- Intel Core 2 Quad Q9550 2.83GHz LGA775 Processzor
- Eladó szép állapotban levő Huawei P30 Pro kék 6/128GB 12 hónap jótállással!
- Bomba ár! Dell Latitude E5570 - i5-6300U I 8GB I 256GB SSD I 15,6" FHD I HDMI I CAM I W10 I Gari!
- BESZÁMÍTÁS! 860W Fractal Design ION + 2 Platinum tápegység garanciával hibátlan működéssel
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged