Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Teile einer Stückliste via VBA auslesen...

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
Autor Thema:  Teile einer Stückliste via VBA auslesen... (955 mal gelesen)
djs0401
Mitglied
Studierender


Sehen Sie sich das Profil von djs0401 an!   Senden Sie eine Private Message an djs0401  Schreiben Sie einen Gästebucheintrag für djs0401

Beiträge: 20
Registriert: 18.02.2008

AutoCAD Mechanical 2007

erstellt am: 19. Mrz. 2008 10:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Tag.
Gehört vllt nicht gerade zu einem CAD spezifischen Problem, aber könnte glaube ich auch für andere ganz interssant sein.
Ausserdem vertrau ich auf euer Können.

Habe ein Problem, welches ich momentan nicht selber lösen kann. Auch die Suche nach ähnlichen Fällen, ergab kein zufriedenstellendes

Ergebnis.
Folgendes Problem:
Ich möchte via VBA eine Stückliste in Form einer Exceltabelle auslesen. Leider schreibt das Programm, mit dem der Vertrieb diese Stücklisten

erstellt, nicht alles in einer neue Spalte sondern vieles innerhalb eines Feldes.

Beispiel: A wäre die Spalte und x die beliebige Zeile, die nicht bekannt ist.

Ax: VariableNummern VariablerText Station 1 VariablerText
Ax: MaschineA
Ax: MaschineB
Ax: MaschineC
.
.
.
Ax: VariableNummern VariablerText Station 2 VariablerText
Ax: MaschineA
Ax: MaschineC
.
.
.
Ax: VariableNummern VariablerText Station 3 VariablerText

und immer so weiter...
das x ist fortlaufend aber die für mich relevanten daten fangen nicht bei x=1 an sondern erst später und manchmal ist eine Zeile auch

komplett leer. "VariableNummern VariablerText Station [Nummer] VariablerText" steht in einem Feld.
Was ich nun benötige ist, dass es mir die Zeilennummer ausgibt, in der das Wort Station vorkommt ausgibt, und die Nummer der Station, die

dahinter steht, in einen Array ausgibt.
Also so:

- Programm sucht jede Zeile nach "Station" ab, wobei der Text vorher und nachher immer anders ist.
- Findet das Programm eine Zeile mit "Station" so gibt es mir die Zeilennummer aus
- Zusätzlich gibt es mir aus "Station [Nummer]" die Nummer der Station in einen Array aus.
- Die Maschinen werden dann dieser Station zugewiesen, und bekommen aus einer anderen Spalte eine IdentNr. (dürfte nicht das Problem sein)


Habe mal etwas über die RegularExpressions gelesen, komme damit aber nicht klar. Vllt. könnte es damit funktionieren?

Wäre euch sehr verbunden, wenn mir jemand damit helfen könnte.

Gruß Daniel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

djs0401
Mitglied
Studierender


Sehen Sie sich das Profil von djs0401 an!   Senden Sie eine Private Message an djs0401  Schreiben Sie einen Gästebucheintrag für djs0401

Beiträge: 20
Registriert: 18.02.2008

AutoCAD Mechanical 2007

erstellt am: 19. Mrz. 2008 11:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ahja hier der Code wie weit ich momentan bin:
Code:
Private Sub CommandButton1_Click()
    Dim Matches As MatchCollection
    Dim CurrentMatch As Match
    Dim tabelle As Excel.Application
    Dim i As Integer
    Dim arr(1 To 1000) As String
    Dim zeile(1 to 1000) As Integer
    Dim regeX As New RegExp
    Dim x As Integer
   
    Set tabelle = New Excel.Application
    tabelle.Workbooks.Open "C:\Daten\Projekt Automatisiertes Layout\VK_070027-01-SHO.xls"
    tabelle.Workbooks(1).Worksheets(1).Select
    regeX.Pattern = "Station"
    regeX.Global = True
        For i = 1 To 1000
            arr(i) = tabelle.Range("A" & i)
            Set Matches = regeX.Execute(arr(i))
            If CurrentMatch.Value = "Station" Then
                x = x + 1
                zeile(x) = i
                ListBox1.AddItem ("Station gefunden in Zeile: " & zeile(x))
            End If
        Next i
    tabelle.Workbooks(1).Close False
    tabelle.Quit
    Set tabelle = Nothing
End Sub

funktioniert leider nicht! Bringt mir an der Stelle" mit dem CxurrentMatch den Fehler:
"Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt"

Hab Verweise auf die RegeExp 5.5 und auf Excel also daran liegt es nicht!

Ausserdem hab ich noch keine Ahnung, wie ich dann an die Stationsnummer rankomme....

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz