Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Ordner auswählen

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 wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  Ordner auswählen (2467 mal gelesen)
Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 30. Nov. 2004 14:01    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

Hallo Zusammen!

Ich habe einen VB / VBA Code mit dem man über einen Buttonclick eine Dialogbox öffnet, in der man dann (ähnlich Windows Explorer)einen Ordner auswählen kann.

Dieser lief bis vor kurzem noch problemlos!
Nun wird folgende Zeile angemeckert und das Programm bricht ab.

strPfad = ReturnFolder("Bitte Verzechnis wählen")

Hier der komplette Code:

Private Declare Function SHBrowseForFolder Lib "shell32.dll" _
() '() 'Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _
() '() 'Alias "SHGetPathFromIDListA" (ByVal pidl As Long, _
ByVal pszPath As String) As Long

Private Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type

Private Const MAX_PATH = 2600

'///END APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) FOR THE RETURN FOLDER DIALOG///
Public Function ReturnFolder(Note As String) As String
Dim Browser As BROWSEINFO
Dim lngFolder As Long
Dim strPath As String
With Browser
.hOwner = ThisDrawing.HWND
.lpszTitle = Note
.pszDisplayName = String(MAX_PATH, 0)
End With
strPath = String(MAX_PATH, 0)
lngFolder = SHBrowseForFolder(Browser)
If lngFolder Then
SHGetPathFromIDList lngFolder, strPath
ReturnFolder = Left(strPath, InStr(strPath, vbNullChar) - 1)
End If
End Function

Private Sub cmd6_Click()
strPfad = ReturnFolder("Bitte Verzechnis wählen")
If strPfad <> "" Then
tbo.Text = strPfad
End If
End Sub


Kann mir da jemand weiterhelfen?
Oder gibt es da etwas anderes?

Betriebssystem: Windows 2000 prof.
AutoCAD 2004 / ADT 2004

Vielen Dank im voraus.

Gruß

Dirk

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 30. Nov. 2004 16:46    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

Hallo Zusammen!

Habe im Internet etwas neues gefunden, was echt gut funktioniet (bislang).

' Ordner-Auswahl-Dialog aufrufen
Dim oShell As Object
Dim oFolder As Object
Set oShell = CreateObject("Shell.Application")
Set oFolder = oShell.BrowseForFolder(Me.hWnd, "Bitte einen Ordner auswählen", 1)
If Not oFolder Is Nothing Then MsgBox oFolder.Self.Path

Dieses habe ich für mich wie folgt geändert:

Private Sub cmd6_Click() ' Ordner-Auswahl-Dialog aufrufen
Dim oShell As Object
Dim oFolder As Object

Set oShell = CreateObject("Shell.Application")
Set oFolder = oShell.BrowseForFolder(0, "Bitte einen Ordner auswählen", 1)
If Not oFolder Is Nothing Then
    tbo.Value = oFolder.Self.path
End If
End Sub

Damit wird der Pfad an eine TextBox übergeben, so daß ich in meinem Programm damit weiterarbeiten kann.

Vieleicht hilft es einigen ja auch weiter?

Gruß

Dirk

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