| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: VB Programm als VBA ?!?! (2113 mal gelesen)
|
Feyza Mitglied
Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2017 - Oracle Client 10.2
|
erstellt am: 23. Feb. 2004 16:17 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe dieses Programm von einem VB Programmierer bekommen und möchte dies gerne in AutoCAD einsetzen. Mein Problem: (filDateiAuswahl.pattern) = txtEingabe01.Text & txtEingabe02.Text & "*.dwg" IN VBA erkennt das Programm nicht das pattern. In diesem Programm sind 2 Textfelder vorhanden, die erste für den Pfad und die zweite für die Datei LM123456 LM Pfad LM123456 Dateiname Es soll nach dem ausführen von CMDSUCHEN in einem Listbox die Dateien, die er in diesem bestimmten Verzeichnis gefunden hat, auflisten. Und durch markieren der Datei in dem Listbox und dem Commandofeld CMDOEFFNEN soll diese Datei geöffnet werden. DAS PROGRAMM: ============= Option Explicit
Private Sub cmdSchließen_Click() End End Sub Private Sub cmdÖffnen_Click() Dim dummy lblFehler.Caption = "Öffne " & txtEingabe01.Text & filDateiAuswahl.FileName dummy = Shell("C:\Programme\MDT6\acad.exe " & filDateiAuswahl.Path & "\" & filDateiAuswahl.FileName, vbNormalNoFocus) End Sub Sub cmdSuchen_Click() lblFehler.Caption = "" If txtEingabe02.Text <> "" Then txtEingabe02.Text = UCase(txtEingabe02.Text) (filDateiAuswahl.pattern) = txtEingabe01.Text & txtEingabe02.Text & "*.dwg" Else lblFehler.Caption = "Fehlende Eingabe!" txtEingabe02.SetFocus End If End Sub Private Sub Form_Unload(Cancel As Integer) 'Ende Cancel = True Me.Hide End Sub Private Sub txtEingabe01_LostFocus() 'Wenn das 1. Eingabefeld verlassen wird.... lblFehler.Caption = "" If txtEingabe01.Text <> "" Then txtEingabe01.Text = UCase(txtEingabe01.Text) 'Umwandeln in Großbuchstaben Select Case txtEingabe01.Text Case "E-" Dateiname = Dir$("M:\Archiv\Werkzeuge\Einzelkomponenten*.*") 'Verzeichnis und Datei Case "I-" Dateiname = Dir$("M:\Archiv\Werkzeuge\Identwerkzeuge\*.*") 'Verzeichnis und Datei Case "V-" Dateiname = Dir$("M:\Archiv\Vorrichtungen\Allgemein*.*") 'Verzeichnis und Datei Case "VE" Dateiname = Dir$("M:\Archiv\Vorrichtungen\Einzelkomponenten*.*") 'Verzeichnis und Datei Case "H-" Dateiname = Dir$("M:\Archiv\Vorrichtungen\Hilfsvorrichtungen*.*") 'Verzeichnis und Datei Case "MA" Dateiname = Dir$("M:\Archiv\Vorrichtungen\Montagevorrichtungen*.*") 'Verzeichnis und Datei Case "LM" Dateiname = Dir$("M:\Archiv\Pruefmittel\Konstr_Messmittel*.*") 'Verzeichnis und Datei Case "LZ" Dateiname = Dir$("M:\Archiv\Pruefmittel\Messblatt*.*") 'Verzeichnis und Datei Case "L-" Dateiname = Dir$("M:\Archiv\Pruefmittel\Messmittel*.*") 'Verzeichnis und Datei Case Else lblFehler.Caption = "Falsche Eingabe!" txtEingabe01.SetFocus txtEingabe01.SelStart = 0 txtEingabe01.SelLenght = Len(txtEingabe01.Text) End Select Else lblFehler.Caption = "Fehlende Eingabe!" txtEingabe01.SetFocus End If End Sub Do While Dateiname <> "" ActiveCell.Offset(i, 0) = Dateiname i = i + 1 Dateiname = Dir$() Loop lstAnzeige01 = Dir$ + txtEingabe02 End Sub Private Sub Label1_Click() End Sub Private Sub filDateiAuswahl_Click() End Sub Ich hoffe, das jemand dafür eine Lösung hat. Danke Euch im voraus. Bis dann Feyza Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BloodyMess Mitglied Applicationingenieur
Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 23. Feb. 2004 20:48 <-- editieren / zitieren --> Unities abgeben: Nur für Feyza
Hallo Feyca, probier mal anstatt
Code:
(filDateiAuswahl.pattern) = txtEingabe01.Text & txtEingabe02.Text & "*.dwg"
... ohne Klammern
Code:
filDateiAuswahl.pattern = txtEingabe01.Text & txtEingabe02.Text & "*.dwg"
Gruß TP Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Feyza Mitglied
Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2017 - Oracle Client 10.2
|
erstellt am: 25. Mrz. 2004 12:57 <-- editieren / zitieren --> Unities abgeben:
|
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Die Phönizier haben das Geld erfunden - aber warum so wenig? (Johann Nepomuk Nestroy)
|
erstellt am: 25. Mrz. 2004 21:53 <-- editieren / zitieren --> Unities abgeben: Nur für Feyza
|
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002
|
erstellt am: 26. Mrz. 2004 07:30 <-- editieren / zitieren --> Unities abgeben: Nur für Feyza
filDateiAuswahl ist eine FileListBox die in VBA nicht vorhanden ist, und damit desen Eigenschaft Pattern auch nicht. Ich habe auch auf die schnelle nichts gefunden, dass ich includen kann, so dass Steuerelement verfügbar wird (zumindest im Inventor nicht). ------------------ Grüße daywa1k3r Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Die Phönizier haben das Geld erfunden - aber warum so wenig? (Johann Nepomuk Nestroy)
|
erstellt am: 26. Mrz. 2004 10:52 <-- editieren / zitieren --> Unities abgeben: Nur für Feyza
|
Feyza Mitglied
Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2017 - Oracle Client 10.2
|
erstellt am: 06. Apr. 2004 17:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Axel, ich habe schon ein LISTBOX benutzt. Nur kriege ich es nicht hin, die in diesem Programm umzusetzen. Kannst Du mir vielleicht eine Möglichkeit schreiben, wie man diese Programm ausführen könnte?! Danke Feyza Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 06. Apr. 2004 19:39 <-- editieren / zitieren --> Unities abgeben: Nur für Feyza
Abend, mal im Anhang ein bissel geänderter Code, war ursprünglich in einer Beispiel xls, habs mal versucht unter acad zu laufen zu bringen, wenns nicht geht, bitte nicht hauen ;;;-))) Im BasMain habe ich eine Funktion auskommentiert, sowie im Demo das with Sheet1 UF1 [sollte] in der Listbox alle *.dwg Files des gewählten Directories enthalten. Hoffe es klappt ... ... and heaven&hell, please don't ask me about the code ahhsoo nochwas, ich hoffe auf sowas in der Art wolltest Du in etwa hinaus lg Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Feyza Mitglied
Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2017 - Oracle Client 10.2
|
erstellt am: 07. Apr. 2004 08:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Nancy, danke für deinen Eintrag. In dem vba muss man manuell den Pfad eingeben. Bei mir soll es gleich durch die Eingabe von Testfeld1 der Pfad schon vorgeben werden. Ich füge zusätzlich noch das dvb zu. mfg Feyza Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 07. Apr. 2004 14:51 <-- editieren / zitieren --> Unities abgeben: Nur für Feyza
Hi Feyza, ansatzweise nur ... and I'm alles andre als perfekt, musst halt noch bissel probieren. BTW, nette Systeminfo CU Nancy -- Option Explicit Public dateiname$, pfad$ Private Sub cmdSchließen_Click() Unload Me End Sub Private Sub cmdÖffnen_Click() Dim dummy, i For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) Then _ lblFehler.Caption = "Öffne " & pfad & ListBox1.List(i) Next 'dummy = Shell("C:\Programme\MDT6\acad.exe " & filDateiAuswahl.Path & "\" & filDateiAuswahl.FileName, vbNormalNoFocus) End Sub Private Sub cmdSuchen_Click() lblFehler.Caption = "" If txtEingabe02.Text <> "" Then txtEingabe02.Text = UCase(txtEingabe02.Text) ListBox1.AddItem txtEingabe01.Text & txtEingabe02.Text & "*.dwg" Else lblFehler.Caption = "Fehlende Eingabe!" txtEingabe02.SetFocus End If End Sub Private Sub txtEingabe01_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim flag1 As Boolean lblFehler.Caption = "" If txtEingabe01.Text <> "" Then txtEingabe01.Text = UCase(txtEingabe01.Text) 'Umwandeln in Großbuchstaben Select Case txtEingabe01.Text Case "E-" pfad = "c:\dummy\" 'Verzeichnis und Datei Case "I-" pfad = "c:\dummy\block\" 'Verzeichnis und Datei Case Else flag1 = True lblFehler.Caption = "Falsche Eingabe!" txtEingabe01.SetFocus txtEingabe01.SelStart = 0 txtEingabe01.SelLength = Len(txtEingabe01.Text) End Select Else lblFehler.Caption = "Fehlende Eingabe!" txtEingabe01.SetFocus End If If flag1 = False Then dateiname = Dir(pfad & "*.*") Do While dateiname <> "" ListBox1.AddItem dateiname dateiname = Dir Loop End If End Sub Private Sub UserForm_Initialize() txtEingabe01.Text = "" txtEingabe02.Text = "" ListBox1.Clear End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Feyza Mitglied
Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2017 - Oracle Client 10.2
|
erstellt am: 07. Apr. 2004 15:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Nancy, Danke Dir vielmals : ) Ich glaube, jetzt werde ich das noch irgendwie hinbekommen : ) INFO: Also er bringt ohne eine Fehlermeldung Dateien aufgelistet, in dem Verzeichnis, wo ich vorher gearbeitet habe. Öffnen kann ich leider diese Dateien auch nicht. Er merkt sich die Benennung, die ich eingegeben habe, und wenn ich dann auf Öffne gehe, zeigt er unten Öffne (Dateinamen). Aber da tut sich nichts. Aber Hauptsache war es, das er in der Listbox was auflistet : )) !! Danke nochmals Feyza Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 07. Apr. 2004 15:50 <-- editieren / zitieren --> Unities abgeben: Nur für Feyza
Hi Feyza, na hooookay Wg. dem Öffnen noch: 'dummy = Shell("C:\Programme\MDT6\acad.exe " & filDateiAuswahl.Path & "\" & filDateiAuswahl.FileName, vbNormalNoFocus) na diiieee Zeile hatte ich auskommentiert. Müsste ungetestet etwa so tun sollen: dummy = Shell("C:\Programme\MDT6\acad.exe " & pfad & ListBox1.List(i)) lg Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |