Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  auf Variablen von Public zugreifen

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, eine Pressemitteilung
Autor Thema:  auf Variablen von Public zugreifen (1136 mal gelesen)
Dressler
Mitglied
technischer Angestellter


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

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 06. Feb. 2004 09: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


userform.jpg

 
Hallo

ich habe folgendes kleines Problem, da ich noch absoluter VBA Anfänger bin. Ich möchte auf eine Variable mehrmals von einem Formular aus auf eine Variable in einem Modul zugreifen. Das ganze hat folgenden Hintergrund: Ich habe ein Formular in dem ich Dateipfade anzeigen möchte und beim klicken auf einen Button neben dem jeweiligen Verzeichnis möchte ich auf das Modul zugreifen wo ich bequem per Maus einen Pfad irgendwo auf der Festplatte festlegen kann. Dann soll die Variable aus dem Modul "strPath" in der jeweiligen Zeile nach drücken von OK erscheinen. Die Variable befindet sich in einem Public Sub unter Modul 1.
Geht das überhaupt so mehrfach von dem Dialog die Felder unterschiedlich in meinem Formular auszufüllen?

Beispiel für Userform im Anhang, die Optik von dem Modul entspricht dem Windows Explorer.

------------------
< Was man nicht im Kopf hat, daß hat man in den Beinen. >

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

BloodyMess
Mitglied
Applicationingenieur


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

Beiträge: 604
Registriert: 06.06.2002

AutoCAD Map 3D 2005
Win XP pro

erstellt am: 06. Feb. 2004 09:55    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 Nur für Dressler 10 Unities + Antwort hilfreich

Hallo,

ich würde das ganze als Funktion schreiben und dieser dann das jeweilige Textfeld mitgeben, wo dann der Wert reingeschrieben wird.
In irgendeinem Projekt hatte ich mal solchen Dialog, find ich aber gerade nicht ... ;(
Da gibts doch auch zwei von den Dialogen, den mit Dateien und dann, wo nur die Ordner sind, oder?

Gruß TP

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

Dressler
Mitglied
technischer Angestellter


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

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 06. Feb. 2004 10:03    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

Zitat:
Original erstellt von BloodyMess:
Hallo,

ich würde das ganze als Funktion schreiben und dieser dann das jeweilige Textfeld mitgeben, wo dann der Wert reingeschrieben wird.
In irgendeinem Projekt hatte ich mal solchen Dialog, find ich aber gerade nicht ... ;(
Da gibts doch auch zwei von den Dialogen, den mit Dateien und dann, wo nur die Ordner sind, oder?

Gruß TP


Hallo TP

Wie meinst Du das mit dem die ganze Funktion dem Textfeld mitgeben? Ich wollte wenn möglich nur einmal die Funktion benutzen mit der ich das Verzeichnis auswählen kann.
Die Möglichkeit die Funktion für jeden einzelnen Pfad wieder und wieder zu kopieren empfinde ich als unelegant, außerdem basiert das ganze darauf, daß recht viele Einstellungen mit diesen Pfad gemacht werden sollen. Das wird auch schon soweit alles dann in einer Textdatei festgehalten. Nur wollte ich halt möglichst nur einmal diese Funktion schreiben und von verschiedenen Stellen aus benutzen, wenn so etwas überhaupt so einfach geht?
Bei dem verwendeten Modul gibt es leider nur den Dialog zum auswählen von Verzeichnissen. Aber das reicht ja auch für den Zweck erstmal.

Gruß Dressler

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

BloodyMess
Mitglied
Applicationingenieur


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

Beiträge: 604
Registriert: 06.06.2002

AutoCAD Map 3D 2005
Win XP pro

erstellt am: 06. Feb. 2004 10:30    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 Nur für Dressler 10 Unities + Antwort hilfreich

Hallo,

Du redest doch selber schon von Funktion.
Ein Funktion schreibt man sich nur einmal und Du kannst Sie dann bei gebrauch ständig aufrufen.

Code:
Function DeinFunktionsName(Übergabeparameter mit Deklaration zB. b as double) as (was die Funktion zurückgeben soll, muß aber nicht)
...
end Function


aufruf aus dem Programmcode : DeinFunktionsName (Übergabewert)
wenn er meckert, dann streich die Klammern.

Gruß TP

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 06. Feb. 2004 11:22    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 Nur für Dressler 10 Unities + Antwort hilfreich

wenn ich's richtig verstanden habe könnte das vielleicht so gehen:

Sub Command1_Click()
getFolder(textBox1)
End Sub
Sub Command2_Click()
getFolder(textbox2)
EndSub


Function getFolder(pathbox as control)
..."Pfad Code" etc.
pathbox.value="Pfad"
End Function

Habs jetzt nur mal so reingehauen, vielleicht musst Du die Textbox als Object in der Funktion deklarieren oder ggf. aus der Funktion mit
FormName.TextBoxName.Value="Pfad" füllen.

Gruss,
Harry

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

Dressler
Mitglied
technischer Angestellter


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

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 06. Feb. 2004 11:26    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 Morgen,

nun ist das Wochenende vorbei und ich bin mit allem weiter gekommen. Danke nochmals für die Tips. Von jetzt an werd ich etwas mehr ausprobieren....

Danke erstmal euch beiden für die Tips. Ich werde das nachher mal in die Tat umsetzen und dann mal schreiben wie und ob ich voran komme.

Gruß Dressler

[Diese Nachricht wurde von Dressler am 09. Feb. 2004 editiert.]

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

BloodyMess
Mitglied
Applicationingenieur


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

Beiträge: 604
Registriert: 06.06.2002

AutoCAD Map 3D 2005
Win XP pro

erstellt am: 12. Feb. 2004 11:02    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 Nur für Dressler 10 Unities + Antwort hilfreich

Hallo Dressler,

bin gerade am aufräumen von meinem PC und da bin ich über die Function gestolpert, die Du hier mal gesucht hattest.
Vielleicht geht´s ja auch einfacher, aber ich hab es damals so gemacht. Hab´s glaub aus nem Access-Forum raus.

du startest einfach die sub start_test(), wählst dann deinen Ordner aus und der steht dann in der Variable strpath in der Funktion drinnen, welcher im Direktfenster (strg + g) ausgegeben wird,
den könntest Du ja dann hier in deine textfelder eintragen lassen.

Code:

Option Explicit

Public 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

Const MAX_PATH = 2600

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

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

Sub test_start()

ReturnFolder

End Sub

Public Function ReturnFolder() As String
  Dim Browser As BROWSEINFO
  Dim lngFolder As Long
  Dim strPath As String

  With Browser
    .hOwner = 0&
    .lpszTitle = "Verzeichnis wählen"
    .pszDisplayName = String(MAX_PATH, 0)
  End With

  strPath = String(MAX_PATH, 0)
  lngFolder = SHBrowseForFolder(Browser)
 
  SHGetPathFromIDList lngFolder, strPath
  strPath = Left(strPath, InStr(strPath, vbNullChar) - 1)
  Debug.Print strPath

End Function


Gruß TP

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)2024 CAD.de | Impressum | Datenschutz