| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Inhalte eines ListViews an AutoCAD - Tabelle übergeben (3177 mal gelesen)
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
  
 Beiträge: 534 Registriert: 25.11.2003
|
erstellt am: 19. Okt. 2011 12:45 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen! Ich habe unter VBA ein ListView, in dem mir Daten aus einer Datenbank angezeigt werden. Ist es möglich bestimmte Einträge in dem ListView zu makieren und dann per Buttomklick in eine AutoCAD Tabelle zu schreiben, sodas mir diese im Layout angezeigt wird? Wäre schön, wenn mir da jemand bei helfen könnte. So befüll ich das ListView:
Code:
'---ListView Einstellungen---------------------------------------------- With ListView1 .ListItems.Clear .ColumnHeaders.Clear .View = lvwReport .SmallIcons = ImageList1 .Sorted = True End With '---Spaltendefinition --> Variante 2 ----------------------------------- With ListView1.ColumnHeaders .Add , , "Status", 13 'Status .Add , , "Ba-Nr", 60 'Vorgangsnummer .Add , , "Position", 40 'Auftragspositionsnummer .Add , , "Objekt-Bezeichnung", 200 'Objektbezeichnung .Add , , "Positions-Bezeichnung", 140 'Positionsbezeichnung .Add , , "Projektleitung", 70 'Projektleitung .Add , , "Montagebeginn", 60 'Montagebeginn .Add , , "Vermerk", 60 'Vermerk End With '---ListView mit Datenbankinformationen füllen--------------------------- 'Rs.MoveFirstDo Until Rs.EOF Set LItem = ListView1.ListItems.Add() LItem.Text = "" 'Status LItem.SubItems(1) = (Rs!AUF_NR & "") 'Vorgangsnummer LItem.SubItems(2) = (Rs!AUF_POS & "") 'Auftragspositionsnummer LItem.SubItems(3) = (Rs!AUF_BEZEICHNUNG & "") 'Objektbezeichnung LItem.SubItems(4) = (Rs!AUF_POS_BEZ & "") 'Positionsbezeichnung LItem.SubItems(5) = (Rs!SACHBEARBEITER & "") 'Projektleitung LItem.SubItems(6) = (Rs!AUF_MONTDATUM & "") 'Montagebeginn LItem.SubItems(7) = (Rs!AUF_TERMIN_VERMERK & "") 'Vermerk If Len(LItem.SubItems(7)) > 0 Then LItem.SmallIcon = 1 End If Rs.MoveNext Loop Rs.Close
Vielen Dank im Voraus. ------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 19. Okt. 2011 20:13 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
Hallo Dirk, hast du schon den Code wie die AutoCAD Tabelle gefüllt wird? Ich habe noch nichts mit einer Tabelle gemacht. Im Listview könnest du eine Checkbox anzeigen lassen und die gewählten rausschreiben. Gruß Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 19. Okt. 2011 20:57 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
  
 Beiträge: 534 Registriert: 25.11.2003
|
erstellt am: 20. Okt. 2011 14:56 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen! Vielen Dank für die Infos. Hab daraufhin mal so einiges probiert. Dieses funktioniert soweit sogut Code:
Dim li(6) As String Dim col As Long '######################################################################################## '##---Laden und Füllen der UserForm------------------------------------------------------ Public Sub UserForm_Initialize()'##--ListView Einstellungen--!!! With ListView1 .ListItems.Clear .ColumnHeaders.Clear .View = lvwReport .Sorted = True End With '--Spaltendefinition With ListView1.ColumnHeaders .Add , , "Stück", 35 'Stückzahl .Add , , "Artikel-Nr", 60 'Artikelnummer .Add , , "Beschreibung", 160 'Beschreibung .Add , , "Maß X", 35 'Maß X .Add , , "Maß Y", 35 'Maß Y .Add , , "Maß Z", 35 'Maß Z End With '--Anzahl der ColumHeader col = ListView1.ColumnHeaders.Count '--Namesübergabe li(1) = ListView1.ColumnHeaders(1) li(2) = ListView1.ColumnHeaders(2) li(3) = ListView1.ColumnHeaders(3) li(4) = ListView1.ColumnHeaders(4) li(5) = ListView1.ColumnHeaders(5) li(6) = ListView1.ColumnHeaders(6) '--Voreinstellungen der Schalter (CommandButton) With cmdende .Caption = " Beenden" .Picture = ImageList1.ListImages(2).Picture .PicturePosition = fmPicturePositionLeftCenter End With With cmdtoexcel .Caption = " Übergabe / Tabelle" .Picture = ImageList1.ListImages(19).Picture .PicturePosition = fmPicturePositionLeftCenter End With With cmdladen .Caption = " laden aus" .Picture = ImageList1.ListImages(16).Picture .PicturePosition = fmPicturePositionLeftCenter End With End Sub '##--Ereignisprozedur des Button Beende/Abbrechen--------------------------------------- Private Sub cmdende_Click() Unload Me End End Sub '##--Ereignisprozedur des Button Übergabe Excelen--------------------------------------- Private Sub cmdtoexcel_Click() Dim EinPkt As Variant Me.Hide EinPkt = ThisDrawing.Utility.GetPoint(, vbCrLf & "Bitte den Einfügepunkt bestimmen") Dim NewTable As AcadTable Set NewTable = ThisDrawing.PaperSpace.AddTable(EinPkt, 5, col, 3, 20) NewTable.TitleSuppressed = False NewTable.HeaderSuppressed = True With NewTable .RegenerateTableSuppressed = False .SetCellTextHeight A, E, 3.5 .SetCellAlignment A, E, acMiddleCenter .SetCellType A, E, acTextCell .SetCellTextStyle A, E, "Tahoma" .SetText 0, 0, "Bedarfsliste" .SetText 1, 0, li(1) .SetCellTextHeight 1, 0, 1.5 .SetCellTextStyle 1, 0, "Tahoma" .SetText 1, 1, li(2) .SetCellTextHeight 1, 1, 1.5 .SetCellTextStyle 1, 1, "Tahoma" .SetText 1, 2, li(3) .SetCellTextHeight 1, 2, 1.5 .SetCellTextStyle 1, 2, "Tahoma" .SetText 1, 3, li(4) .SetCellTextHeight 1, 3, 1.5 .SetCellTextStyle 1, 3, "Tahoma" .SetText 1, 4, li(5) .SetCellTextHeight 1, 4, 1.5 .SetCellTextStyle 1, 4, "Tahoma" .SetText 1, 5, li(6) .SetCellTextHeight 1, 5, 1.5 .SetCellTextStyle 1, 5, "Tahoma" End With End Sub
Kann man da noch einiges verbessern oder eleganter schreiben? Die Zeilenhöhe von 3 wird nicht wirklich übernommen? Jetzt stellt sich für mich noch die Frage, wie bekomme ich die Zeilen aus dem ListView in die Zeilen (Zellen) der Tabelle. Auch hier müßte ich zuerst die Zeilenanzahl ermitteln, also vermute ich ListView.SubItem.Count. Kann mir dabei noch jemand weiter helfen.
------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
  
 Beiträge: 534 Registriert: 25.11.2003 AutoCAD 2021/2022 CAD+T HP ZBook 15 G4, 64-bit, WIN 10 Pro
|
erstellt am: 20. Okt. 2011 15:01 <-- editieren / zitieren --> Unities abgeben:         
Hallo Wilfried! Zitat:
Im Listview könnest du eine Checkbox anzeigen lassen und die gewählten rausschreiben.
Wie müßte das denn aussehen? Könntest Du mir da auf die Sprünge helfen.
------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002
|
erstellt am: 20. Okt. 2011 20:56 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
  
 Beiträge: 534 Registriert: 25.11.2003 AutoCAD 2021/2022 CAD+T HP ZBook 15 G4, 64-bit, WIN 10 Pro
|
erstellt am: 21. Okt. 2011 15:39 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen! So funktioniert es nun mit dem schreiben in die Tabelle. Es dauert aber ziemlich lange. Hat jemand eine Idee woran das liegen kann? Das mit dem .Checkboxes = true / .view = lvwReport ist nun klar, aber wie filter ich dieses in der Schleife aus, sodass auch nur die selectierten übergeben werden. Code:
'##--Ereignisprozedur des Button Übergabe in die Tabelle---------------------------- Private Sub cmdtoexcel_Click() Dim EinPkt As VariantMe.Hide EinPkt = ThisDrawing.Utility.GetPoint(, vbCrLf & "Bitte den Einfügepunkt bestimmen") Dim NewTable As AcadTable Set NewTable = ThisDrawing.PaperSpace.AddTable(EinPkt, row, col, 1.5, 20) NewTable.TitleSuppressed = False NewTable.HeaderSuppressed = True With NewTable .RegenerateTableSuppressed = False '###---Überschrift------------------------ .SetCellTextHeight A, E, 3.5 .SetCellAlignment A, E, acMiddleCenter .SetCellType A, E, acTextCell .SetCellTextStyle A, E, "Tahoma" .SetText 0, 0, "Bedarfsliste" '###---Überschrift / Spaltenköpfe--------- .SetText 1, 0, li(1) .SetCellTextHeight 1, 0, 1.5 .SetCellTextStyle 1, 0, "Tahoma" .SetText 1, 1, li(2) .SetCellTextHeight 1, 1, 1.5 .SetCellTextStyle 1, 1, "Tahoma" .SetText 1, 2, li(3) .SetCellTextHeight 1, 2, 1.5 .SetCellTextStyle 1, 2, "Tahoma" .SetText 1, 3, li(4) .SetCellTextHeight 1, 3, 1.5 .SetCellTextStyle 1, 3, "Tahoma" .SetText 1, 4, li(5) .SetCellTextHeight 1, 4, 1.5 .SetCellTextStyle 1, 4, "Tahoma" .SetText 1, 5, li(6) .SetCellTextHeight 1, 5, 1.5 .SetCellTextStyle 1, 5, "Tahoma" '###---Schleife für die Zeilen---- For i = 4 To ListView1.ListItems.Count .SetText i, 0, ListView1.ListItems(i).Text .SetCellTextHeight i, 0, 1.5 .SetCellTextStyle i, 0, "Tahoma" '###---Schleife für die Spalten---- For j = 1 To ListView1.ColumnHeaders.Count - 1 .SetText i, j, ListView1.ListItems(i).SubItems(j) .SetCellTextHeight i, j, 1.5 .SetCellTextStyle i, 0, "Tahoma" .SetText i, j, ListView1.ListItems(i).SubItems(j) .SetCellTextHeight i, j, 1.5 .SetCellTextStyle i, j, "Tahoma" .SetText i, j, ListView1.ListItems(i).SubItems(j) .SetCellTextHeight i, j, 1.5 .SetCellTextStyle i, j, "Tahoma" .SetText i, j, ListView1.ListItems(i).SubItems(j) .SetCellTextHeight i, j, 1.5 .SetCellTextStyle i, j, "Tahoma" .SetText i, j, ListView1.ListItems(i).SubItems(j) .SetCellTextHeight i, j, 1.5 .SetCellTextStyle i, j, "Tahoma" Next j Next i End With End Sub
Vielen Dank im Voraus. ------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 21. Okt. 2011 20:14 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
Hi Dirk, zum Zweiten, ich zitiere hier mal aus Kofler's VB6: "Die Auswahlkästchen können unabhängig von der Markierung der Einträge gewählt werden. Damit stehen gleichzeitig zwei Selektionsmöglichkeiten zur Verfügung. Diese Doppelgleisigkeit kann leicht Verwirrung stiften - überlegen Sie also zweimal, ob Sie dieses (...) Feature nutzen möchten! (Im Programmcode erfolgt die Auswertung der beiden Markierungen über die Selected- und Checked-Eigenschaften des ListItem-Objekts.)" Zum Ersten: Zitat: Original erstellt von Dirk.B: So funktioniert es nun mit dem schreiben in die Tabelle. Es dauert aber ziemlich lange. Hat jemand eine Idee woran das liegen kann?
Würde sagen, das liegt in der Natur der Sache (des Objekts);-) (Hatte ich mich auch schon mal gefragt - im verlinkten Thread.) Performanter wäre es, in ein zweidim. Array rauszuschreiben und auf einen Hieb an Excel zu übergeben. Etwas kommt mir nur seltsam vor, warum machst du in der Spaltenschleife 4x das Gleiche?
Code:
For j = 1 To ListView1.ColumnHeaders.Count - 1 '0 .SetText i, j, ListView1.ListItems(i).SubItems(j) .SetCellTextHeight i, j, 1.5 .SetCellTextStyle i, 0, "Tahoma" '1 .SetText i, j, ListView1.ListItems(i).SubItems(j) .SetCellTextHeight i, j, 1.5 .SetCellTextStyle i, j, "Tahoma" '2 .SetText i, j, ListView1.ListItems(i).SubItems(j) .SetCellTextHeight i, j, 1.5 .SetCellTextStyle i, j, "Tahoma" '3 .SetText i, j, ListView1.ListItems(i).SubItems(j) .SetCellTextHeight i, j, 1.5 .SetCellTextStyle i, j, "Tahoma" '4 .SetText i, j, ListView1.ListItems(i).SubItems(j) .SetCellTextHeight i, j, 1.5 .SetCellTextStyle i, j, "Tahoma" Next j
Anweisung '0 ist die mit .SetCellTextStyle i, 0, "Tahoma", Anweisungen 1-4 sehen für mich identisch aus? IMHO würde das doch nur Sinn machen, mit j+1 bis j+5 und j in step5? Vielleicht hab ich aber auch nur was übersehen und seh grade den Wald, äh' Code vor lauter Zeilen nicht;-) Gruß Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
  
 Beiträge: 534 Registriert: 25.11.2003
|
erstellt am: 25. Okt. 2011 15:53 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen! Soweit funktionierts nun recht gut, bis auf die Geschichte mit dem ListView / Checkboxes = True. Siehe Ergebnis Bildchen. Wie bekomme ich es hin, dass die selectierten Zeilen im ListView in der Tabelle direkt untereinander geschrieben werden, ohne Leerzeilen. Code:
'##--ListView Einstellungen With ListView1 .ListItems.Clear .ColumnHeaders.Clear .View = lvwReport .Sorted = True .Checkboxes = True .MultiSelect = True End With... col = ListView1.ColumnHeaders.Count row = ListView1.ListItems.Count ... ... Private Sub cmdtoexcel_Click() Dim EinPkt As Variant Me.Hide EinPkt = ThisDrawing.Utility.GetPoint(, vbCrLf & "Bitte den Einfügepunkt bestimmen") Dim NewTable As AcadTable Set NewTable = ThisDrawing.PaperSpace.AddTable(EinPkt, row, col, 1.5, 20) NewTable.TitleSuppressed = False NewTable.HeaderSuppressed = True On Error Resume Next With NewTable .RegenerateTableSuppressed = True .RecomputeTableBlock False .TitleSuppressed = False .HeaderSuppressed = False .SetTextStyle AcRowType.acTitleRow, "Standard" .SetTextStyle AcRowType.acHeaderRow, "Standard" .SetTextStyle AcRowType.acDataRow, "Standard" Dim i As Double Dim j As Double '##--Titel / Überschrift-- .SetCellTextHeight i, j, 3 .SetCellAlignment i, j, acMiddleCenter .SetCellType i, j, acTextCell .SetCellTextStyle i, j, "Tahoma" .SetText 0, 0, "Bedarfsliste" i = i + 1 '##--Spaltenüberschriften-- For j = 1 To .Columns .SetText i, j - 1, ListView1.ColumnHeaders(j).Text .SetCellTextHeight i, j - 1, 2.5 .SetCellTextStyle i, j - 1, "Tahoma" .RowHeight = 3 Next j '##--Zeieln füllen-- For i = 2 To .Rows - 1 For j = 1 To .Columns - 1 .SetCellTextHeight i, 0, 3 .SetCellTextHeight i, j, 3 .SetCellAlignment i, 0, acMiddleCenter .SetCellAlignment i, j, acMiddleCenter .SetCellType i, 0, acTextCell .SetCellType i, j, acTextCell .SetCellTextStyle i, 0, "Tahoma" .SetCellTextStyle i, j, "Tahoma" If ListView1.ListItems(i).Checked = True Then .SetText i, 0, ListView1.ListItems(i).Text: .SetText i, j, ListView1.ListItems(i).SubItems(j) End If Next j Next i .RegenerateTableSuppressed = False .Update End With End Sub
Vielen Dank im Voraus.
------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002 AutoCAD ACA 2024 Solidworks 2022 Sp5 Enterprise PDM 2022 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell Precision 3660 Intel Core i9-12900K 32 GB Arbeitsspeicher 2x Dell U2415
|
erstellt am: 25. Okt. 2011 16:32 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
  
 Beiträge: 534 Registriert: 25.11.2003
|
erstellt am: 11. Nov. 2011 07:22 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen zusammen! Ich habe da noch 2 weitere Fragen und würde mich freuen, wenn mir dabei jemand weiterhelfen könnte . Mit der Tabelle funktioniert es soweit. Nun möchte ich noch so einige Anpassungen vornehmen. 1. Titelzeile / Hintergrundfarbe ändern. Hier ist merkwürdig, dass es bei einem Rchner (Win XP SP2 / AutoCAD 2012) funktioniert und bei einem Rechner (Win 7 / AutoCAD 2012) nicht. Bei dem Win 7 Rechner wir die Farbe grundsätzlich schwarz bzw. weiß dargestellt, siehe Bildchen_02. Code:
Dim colfa(1) As New AcadAcCmColor colfa(0).SetRGB 254, 217, 185 'hellorange colfa(1).SetRGB 206, 253, 245 'hellblau... ... With NewTable .RegenerateTableSuppressed = True .RecomputeTableBlock False .TitleSuppressed = False .HeaderSuppressed = False .SetTextStyle AcRowType.acTitleRow, "Standard" .SetTextStyle AcRowType.acHeaderRow, "Standard" .SetTextStyle AcRowType.acDataRow, "Standard" If OptionButton1.Value = True Then .SetBackgroundColor AcRowType.acTitleRow, colfa(0) Else .SetBackgroundColor AcRowType.acTitleRow, colfa(1) End If .SetBackgroundColorNone AcRowType.acTitleRow, False ... ...
2. Zeilen.- bzw. Spaltenbreite ändern. Hier bekomme ich es leider nicht hin eine einzelne Spalte von der Breite her zu ändern. Folgendes möchte ich gerne erreichen. Wird eine bestimmte Spaltenkopfüberschrift erkannt, dann soll die Spalte auf ein Maß X geändert werden.
Code:
Dim NewTable As AcadTable '--Vorgaben zur Tabellenerstellung-- Set NewTable = ThisDrawing.PaperSpace.AddTable(EinPkt, row, col, rowhe, colwe) ... ... '--Spaltenüberschriften-- For j = 1 To .Columns .SetText i, j - 1, ListView1.ColumnHeaders(j).Text Select Case ListView1.ColumnHeaders(j).Text Case "Bestelltext" .SetColumnWidth j, 160 'MsgBox "Spalte mit dem Text / " & ListView1.ColumnHeaders(j).Text & " / gefunden" End Select .SetCellAlignment i, j - 1, acMiddleCenter .SetCellTextHeight i, j - 1, coltxthe .SetCellTextStyle i, j - 1, "Tahoma" .SetRowHeight i, 3 Next j
Vielen Dank im Voraus.
------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 11. Nov. 2011 14:51 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
  
 Beiträge: 534 Registriert: 25.11.2003
|
erstellt am: 20. Nov. 2011 13:58 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen! Soweit läuft mein Programm. Nun möchte ich noch erreichen, dass wenn bestimmte CheckBox Werte gesetzt sind, die entsprechende Spalte gelöscht wird. Beziehe ich mich auf das Listview, funktioniert es auch, aber hier könne die Spaltenübesrschriften aber je nach Anwendung unterschiedlich sein. Ich möchte die Spaltenkopfnamen ermittel und vergleichen ob diese überhaupt vorhanden sind und wenn ja und die CheckBox auf False steht, soll die Spalte gelöscht werden. Leider funktioniert es so nicht:
Code:
Dim k As Long 'Dim cName As String For k = 1 To .Columns Select Case .GetColumnName(k) Case "St.-Pos." If Optionen.CB_Pos.value = False Then .DeleteColumns k, 1 End If Case "Menge" If Optionen.CB_Menge.value = False Then .DeleteColumns k, 1 End If Case "Einheit" If Optionen.CB_Einheit.value = False Then .DeleteColumns k, 1 End If Case "Art.-Nr." If Optionen.CB_ArtNr.value = False Then .DeleteColumns k, 1 End If Case "Bestelltext" If Optionen.CB_BeTxt.value = False Then .DeleteColumns k, 1 End If Case "Länge" If Optionen.CB_Laenge.value = False Then .DeleteColumns k, 1 End If Case "Breite" If Optionen.CB_Breite.value = False Then .DeleteColumns k, 1 End If Case "Stärke" If Optionen.CB_Staerke.value = False Then .DeleteColumns k, 1 End If Case "Bemerkung" If Optionen.CB_Bemerk.value = False Then .DeleteColumns k, 1 End If Case "Symbol" If Optionen.CB_Symbol.value = False Then .DeleteColumns k, 1 End If End Select Next
Wie muß ich die .Columns durchlaufen um die Column.Name zu ermitteln?? Vielen Dank im Voraus. ------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 20. Nov. 2011 17:57 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
Hi Dirk, wenn ich das richtig sehe im Objektkatalog <F2> hat AcadTable gar keine GetColumnname-Methode, sondern nur IAcadTable2 aber selbst da werd ich auch nicht recht schlau draus;-) Ich würde es so in der Art angehen (in einer neuen, leeren Zeichnung): Code:
Sub table_add() Dim table As AcadTable, pt(2) As Double, i%, s Set table = ThisDrawing.ModelSpace.AddTable(pt, 4, 7, 10, 20) For i = 0 To table.Columns - 1 table.SetText 1, i, CStr(i) Next ZoomExtents End SubSub vgl() Dim table As AcadTable, arr, i%, j% Set table = ThisDrawing.ModelSpace.Item(0) arr = Array(1, 3, 5) For i = table.Columns - 1 To 0 Step -1 For j = 0 To 2 If table.GetText(1, i) = CStr(arr(j)) Then table.DeleteColumns i, 1 Exit For End If Next Next End Sub
BTW - warum geht dein Spaltenzähler bei 1 los? Option Base 1? lg Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
  
 Beiträge: 534 Registriert: 25.11.2003
|
erstellt am: 20. Nov. 2011 19:09 <-- editieren / zitieren --> Unities abgeben:         
|
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 20. Nov. 2011 20:36 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |