| |  | 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: Table-Objekt (1445 mal gelesen)
|
Headcase Mitglied Dipl.-Ing. (FH) --> Maschinenbau
 
 Beiträge: 141 Registriert: 14.10.2004 WinXP Prof., SP3 AutoCAD Mechanical 2010 (2008) Inventor 2010 (2008)
|
erstellt am: 21. Dez. 2004 15:05 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen! Hab mal wieder ne Frage zu den neuen 2005er Features: Hat sich jemand schon mal genauer mit dem Table-Objekt beschäftigt? Tabelle einfügen, Dimensionen und Eigenschaften ändern ist soweit klar, aber wie bekomme ich denn nun eigentlich ein bisl Inhalt in meine Zellen (via VBA)? Die Hilfe ist ja echt sehr ausagekräftig, besonders die Unmengen an Bsp!  Kennt jemand eventuell weiterreichende Dokus? Grüße! René
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. Dez. 2004 16:27 <-- editieren / zitieren --> Unities abgeben:          Nur für Headcase
Hi Rene, hm, so irgendwie kannste die 'Zellen' beschreibseln, ABER: was mir auch noch etwas schleierhaft ist, sind der 'Header' und die linke 'Column'? ;-))
Code:
Sub Example_Table() ' This example adds a table in model space Dim MyTable As AcadTable Dim pt(2) As Double, c&, r& Set MyTable = ThisDrawing.ModelSpace.AddTable(pt, 5, 5, 10, 30) With MyTable For r = 0 To .Rows - 1 For c = 1 To .Columns - 1 .SetText r, c, "r" & r & "c" & c Next Next End With End Sub
Gruss Nancy [Diese Nachricht wurde von startrek am 21. Dez. 2004 editiert.] 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. Dez. 2004 18:16 <-- editieren / zitieren --> Unities abgeben:          Nur für Headcase
Gott, wie peinlich ... For c = 1 To .Columns - 1 == leicht bekloppt ;-) muss natürlich heissen: For c = 0 To .Columns - 1 dann klappts auch mit oben und links ... ;-) Ausserdem hab ich mal den Zellverbund in zeile 1 [äh, 0] gelöst, keine Ahnung, ob in der ersten zeile, das 'Mergen' grundsätzlich default ist. Zellverbunde erschweren IMHO die kiste immer, aber egal ... also, here it comes again: Code:
Sub nochmal() Dim MyTable As AcadTable Dim pt(2) As Double, c&, r& Set MyTable = ThisDrawing.ModelSpace.AddTable(pt, 5, 5, 10, 30) With MyTable .UnmergeCells 0, 0, 0, .Rows - 1 For r = 0 To .Rows - 1 For c = 0 To .Columns - 1 .SetText r, c, "r" & r & "c" & c Next Next End With End Sub
Gruss Nancy [Diese Nachricht wurde von startrek am 21. Dez. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Headcase Mitglied Dipl.-Ing. (FH) --> Maschinenbau
 
 Beiträge: 141 Registriert: 14.10.2004 WinXP Prof., SP3 AutoCAD Mechanical 2010 (2008) Inventor 2010 (2008)
|
erstellt am: 22. Dez. 2004 08:18 <-- editieren / zitieren --> Unities abgeben:         
Jepp, das funzt so! Hab die SetText-Methode einfach übersehen... Das "Un-Mergen" geht übrigens auch via tabelle.TitleSuppressed = True Gleich noch ne Frage: Gibt es einen Weg, eine Eigenschaft für einen Zellbereich zu setzen, ohne über eine Schleife jede Zelle einzeln anzusprechen? Und wie funzt die AutoScale-Eigenschaft?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoSiNiNo Mitglied Konstrukteur
   
 Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 22. Dez. 2004 09:39 <-- editieren / zitieren --> Unities abgeben:          Nur für Headcase
Ich hab mir einmal einen kleinen Zelltext-Editor geschrieben, meinst du so etwas ähnliches? Code: 'Editieren von Zellentexten in Tabellen Public Sub CellTextEditor() Dim objTable As AcadTable Dim pt As Variant Dim RI As Long Dim CI As Long Dim strNew As String On Error GoTo Err_Control Do GetEntityEx objTable, pt, vbCrLf & "Zelle zeigen: " objTable.Select pt, Point3D(0, 0, 1), Point3D(0, 0, 1), 1, 1, False, resultRowIndex:=RI, resultColumnIndex:=CI strNew = InputBox(Prompt:="Neuer Text", Default:=objTable.GetText(RI, CI)) objTable.SetText RI, CI, strNew Loop Exit_Here: Exit Sub Err_Control: Err.Clear Resume Exit_Here End Sub
------------------ Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 24. Dez. 2004 00:49 <-- editieren / zitieren --> Unities abgeben:          Nur für Headcase
Rene, du meinst den Zellbereichen ein Array verpassen? Ich glaub das geht nicht mit mit dem dem table-dance ... ergo - schleife ==> kommste ihmo nich drumrum ;-) lg Nancy -- All I ask is the chance to prove that money cannot make me happy. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bluedog Mitglied CAD-Designer

 Beiträge: 11 Registriert: 21.06.2006 P4 3GhZ, 2GBRam, WinXP, Acad2007, Cinema4D 9.6, Illustrator v9, Photoshop v6
|
erstellt am: 11. Nov. 2006 10:12 <-- editieren / zitieren --> Unities abgeben:          Nur für Headcase
gibt es eine Möglichkeit, die Zellenbreite für jede Spalte einzeln festzulegen? z.B. das sich die Zelle dem Längsten Wort der Spalte anpasst? Oder muss man jedesmal nach dem Einfügen von Hand die Spalten an den Griffen auf die richtige Breite ziehen? 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: 11. Nov. 2006 12:08 <-- editieren / zitieren --> Unities abgeben:          Nur für Headcase
Hallo, such mal in der Excel VBA Hilfe nach AutoFit. Damit gehts. Z.B. ' Worksheet ist das Blatt was bearbeitet werden soll Worksheet.Autofit Worksheet.Columns("A:I").AutoFit Worksheet.Range("A1:E1").Columns.AutoFit Stelli
------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bluedog Mitglied CAD-Designer

 Beiträge: 11 Registriert: 21.06.2006 P4 3GhZ, 2GBRam, WinXP, Acad2007, Cinema4D 9.6, Illustrator v9, Photoshop v6
|
erstellt am: 13. Nov. 2006 13:16 <-- editieren / zitieren --> Unities abgeben:          Nur für Headcase
ich dachte dabei eigentlich an die Tabelle in Autocad. Ich hole keine Daten aus einer Excel-Tabelle. Aussrdem ist Excel bei mir nicht Installiert. Die Daten kommen Teilweise aus der Zeichnung, und teilweise aus einer Datenbank. Das ganze wird dann in der Zeichnung Platziert. Es gibt allerdings Unschönheiten wenn man das ganze als Text platziert, also versuche ich das ganze in eine Tabelle zu bringen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bluedog Mitglied CAD-Designer

 Beiträge: 11 Registriert: 21.06.2006 P4 3GhZ, 2GBRam, WinXP, Acad2007, Cinema4D 9.6, Illustrator v9, Photoshop v6
|
erstellt am: 14. Nov. 2006 07:26 <-- editieren / zitieren --> Unities abgeben:          Nur für Headcase
also ich habe es hinbekommen, zwar noch nicht dynamisch, aber damit kann ich auch Leben Trotzdem vielen Dank für die Hilfe! Hier noch mein code: Code: Set MyTable = ThisDrawing.PaperSpace.AddTable(Einfügepunkt, Zeilen, 9, 3, 30) MyTable.SetTextHeight AcRowType.acHeaderRow + AcRowType.acTitleRow + AcRowType.acDataRow, 1.3 ' Texthöhe Komplett With MyTable .SetGridVisibility 3, 3, False MyTable.SetColumnWidth 0, 10 MyTable.SetColumnWidth 1, 20 MyTable.SetColumnWidth 2, 40 MyTable.SetColumnWidth 3, 15 MyTable.SetColumnWidth 4, 15 MyTable.SetColumnWidth 5, 15 MyTable.SetColumnWidth 6, 15 MyTable.SetColumnWidth 7, 15 MyTable.SetColumnWidth 8, 15
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |