Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Userform per Variable aufrufen

Userform per Variable aufrufen
21.07.2005 16:30:17
Conny
Hallo VBA-Experten,
ich hoffe Ihr könnt mir helfen, habe leider in der Recherche nichts passendes gefunden.
Ich habe eine Public Sub die für mehrere Userforms gültig ist (Treeview einlesen). Nun möchte ich den Namen der jeweiligen Userform als Variable an die Prozedur übergeben. Wie mache ich das am besten?
Vielen Dank für Euere Hilfe!
Grüsse
Conny

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform per Variable aufrufen
21.07.2005 16:33:51
Ramses
Hallo
Public

Sub DeinMakro(UFName as String)
End Sub

In deiner UF
Call DeinMakro(Me.Name)
Sollte eigentlich tun.
Gruss Rainer
AW: Userform per Variable aufrufen
21.07.2005 16:48:48
Conny
Hallo Rainer,
danke für Deine Antwort, aber irgendwie weiß ich noch nicht wie ich Deinen Tip einbauen soll ... hier der Code, vielleicht kannst Du mir hier auch weiterhelfen?
Im Initialize-Ereignis der Userform11 steht:
Dim alleOrdner As String
alleOrdner = Sheets("vip").Range("b304").Value
Set TreeView1.ImageList = ImageList1
FillTreeView (alleOrdner)
im Modul:
' TreeView mit allen Ordnern eines Laufwerks füllen
Public Sub FillTreeView(ByVal StartPath As String)
Dim DirName As String
Dim i As Integer
Dim sPos As Integer
Dim ordner As String
Dim MainOrdner As String

' TreeView löschen
UserForm11.TreeView1.Nodes.Clear

' Verzeichnisse ermitteln
If Right$(StartPath, 1) = ":" Then _
StartPath = StartPath + "\"
GetAllFolders StartPath

' Erster Eintrag: Laufwerk selbst
UserForm11.Nodes.Add , , StartPath, StartPath, 3, 3

End With
' Verzeichnisse
While UserForm11.ListBox8.ListCount > 0
DirName = UserForm11.ListBox8.List(0)
userrform11.ListBox8.RemoveItem 0

sPos = InstrRev97(DirName, "\")
ordner = Mid$(DirName, sPos + 1)
MainOrdner = Left$(DirName, sPos - 1)
If InStr(MainOrdner, "\") = 0 Then _
MainOrdner = MainOrdner + "\"

UserForm11.TreeView1.Nodes.Add MainOrdner, tvwChild, DirName, ordner, 1, 2
Wend

' Root öffnen
UserForm11.TreeView1.Nodes(1).Expanded = True

End Sub
' Rekursive Prozedur zum Ermitteln aller Verzeichnisse

Private Sub GetAllFolders(ByVal pfad As String)
Dim Count As Long
Dim i As Long
Dim DirName() As String
On Local Error Resume Next
Count = GetAllSubDir(pfad, DirName())
i = 1
Do Until i > Count
UserForm11.ListBox8.AddItem pfad + DirName(i)
GetAllFolders pfad + DirName(i) + "\"
i = i + 1
Loop
On Local Error GoTo 0
End Sub

' Unterverzeichnisse eines Ordners ermitteln

Private Function GetAllSubDir(Path As String, _
D() As String) As Integer
Dim DirName As String
Dim Count As Integer
DirName = Sheets("vip").Range("b304").Value
If Right$(Path, 1) <> "\" Then Path = Path + "\"
DirName = Dir(Path, vbDirectory)
Count = 0
Do While DirName <> ""
If DirName <> "." And DirName <> ".." Then
If (GetAttr(Path + DirName) And vbDirectory) = _
vbDirectory Then
If (Count Mod 10) = 0 Then
ReDim Preserve D(Count + 10) As String
End If
Count = Count + 1
D(Count) = DirName
End If
End If
DirName = Dir
Loop
GetAllSubDir = Count
End Function

Wie kann ich nun "Userform11" durch eine Variable ersetzten?
Danke für Deine Hilfe!
Conny
Anzeige
AW: Userform per Variable aufrufen
21.07.2005 17:10:25
Ramses
Hallo
Sorry, aber wenn du von VBA nichts verstehst, solltest du das gleich schreiben und dich nicht mit fremden Federn schmücken, oder willst du mir etwa erzählen das hättest du alles gemacht ? ;-)
Public Sub FillTreeView(ByVal StartPath As String, tarUFName As Userform)
Der Aufruf erfolgt dann mit
GetAllFolders StartPath, Me
In deinem Code musst dann natürlich alle Vorkommen von "Userform1" durch tarUFName ersetzen, also anstelle von
UserForm11.ListBox8.AddItem
musst du dann
tarUFName.ListBox8.AddItem
schreiben.
Gruss Rainer
AW: Userform per Variable aufrufen
22.07.2005 10:23:35
Conny
Hallo Rainer,
stimmt, der Code ist nicht von mir, leider weiß ich auch nicht mehr wo ich ihn her habe ...
Danke für Deine Antwort, ich habe meinen Code so abgeändert, aber jetzt bekomme ich bei "FillTreeView" den Fehler 449 Argument ist nicht optional :-(( Woran kann das liegen?
Conny
Anzeige
AW: Userform per Variable aufrufen
22.07.2005 10:26:17
Conny
Ups, hatte vergessen auf "Frage noch offen" zu stellen ..

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige