Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spaltenbereich in Excel definieren

Spaltenbereich in Excel definieren
24.11.2008 16:38:00
Thomas
Hallo VBA-Profis
Ich hoffe, es kann mir hier jemand weiterhelfen. Es geht darum, aus einer Autocad-Zeichnung Informationen in Excel auszulesen, dort zu bearbeiten und wieder in die Zeichnung zurück zu spielen. Dazu wurde ich in einem Autocad-Forum fündig, es hat dort jemand ein xls mit VBA-Script zur Verfügung gestellt.
Die Funktion ist diejenige, dass ab Spalte E Werte aus Zeichnungsobjekten eingefügt werden, solange bis keine Informationen mehr vorhanden sind in den Objekten.
Funktioniert so weit so gut. Das Problem ist, dass bei Spalte Z fertig ist. Es sind jedoch mehr Informationen vorhanden, also der Bedarf wäre bei Spalte AA, AB usw. weiter zu schreiben bis die Bedingung fertig abgearbeitet ist. Was ich bis jetzt herausgefunden habe, ist, dass es wohl an der Bereichsdefinition scheitert.
Hier ein Auszug aus dem Script:
*************************
AppActivate Application.Caption
j = 1
If ssetobj.Count > 0 Then
For i = 0 To ssetobj.Count - 1
Set bl = ssetobj.Item(i)
If bl.HasAttributes = True Then 'Falls der Block Attribute aufweist
Range("A" + Trim(Str(j + 1))).Select
ActiveCell.FormulaR1C1 = acad.ActiveDocument.FullName 'schreib Dateiname in Spalte A
Range("B" + Trim(Str(j + 1))).Select
ActiveCell.FormulaR1C1 = bl.handle 'schreib Blockreferenz in Spalte B
Range("C" + Trim(Str(j + 1))).Select
ActiveCell.FormulaR1C1 = bl.name 'schreib Blockname in Spalte C
Range("D" + Trim(Str(j + 1))).Select
ActiveCell.FormulaR1C1 = bl.Layer 'schreib Layer des Blocks in Spalte D
attr = bl.GetAttributes 'lies die Attribute aus dem Block
z = Asc("E") 'starte Attribute befüllen in Spalte E
'...bis hier funktion i.o.
'...ab hier fehlerhaft (bei Spalte Z ist finito....)
For k = LBound(attr) To UBound(attr)
Range(Chr(z) + Trim(Str(j + 1))).Select
ActiveCell.FormulaR1C1 = attr(k).TagString
z = z + 1
Range(Chr(z) + Trim(Str(j + 1))).Select
ActiveCell.FormulaR1C1 = attr(k).TextString
z = z + 1
Next k
j = j + 1
'ab hier wieder i.o.
Else
MsgBox "Gewählte Blöcke haben keine Attribute!", vbOKOnly, "Meldung"
End If
Next i
Else
MsgBox "Keine Blöcke gewählt!", vbOKOnly, "Meldung"
End If
ssetobj.Delete
*********************************
Hat jemand eine Lösung, wie das abgeändert werden müsste?
Zur Info (für diejenigen die es noch nicht festgestellt haben...): Bin eigentlich "nur" Anwender mit Ideen und probiere, dieses Programm so gut wie möglich lesen zu können.
Besten Dank schon im Voraus für Eure Hilfe
Thomas
(Excel '97, Windows XP Prof. SP2)

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenbereich in Excel definieren
24.11.2008 16:58:00
gerwas
Hallo
das was du da vor hast kann nicht über z hinaus funktioniren
ersetze einfach deine zeile mit dem Range .. durch
Cells(j + 1, z).Select
dann sollte es klappen :-)
gruß gerwas
AW: Spaltenbereich in Excel definieren
24.11.2008 17:33:00
Thomas
Hallo gerwas
Merci, sieht schon viel besser aus, auf jeden Fall werden nun mal sämtliche Infos in Excel importiert!
nur: das ganze beginnt jetzt bei Spalte BQ und nicht bei E.....
Wahrscheinlich ist noch mal was zu ergänzen?
Danke & Gruss
Thomas
AW: Spaltenbereich in Excel definieren
24.11.2008 20:58:59
Thomas
Hallo gerwas
Wollte mich nur nochmals bedanken! Was ich noch ändern musste war anstatt z = Asc("E") neu z = Asc(5) definieren, nun funktioniert's.
Merci & Gruss
Thomas
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige