Formular funktioniert nur Standalone!

Hallo mal wieder.

(diemal hab ich im I-Net schon nach ner Lösung gesucht - aber nichts gefunden :frowning: )

Folgendes - habe ein Suchenformular -->

Option Explicit

Dim fso As New FileSystemObject
Dim fld As Folder

Private Sub Commandbutton1\_Click()
 Dim nDirs As Long, nFiles As Long, lSize As Currency
 Dim sDir As String, sSrchString As String
 ListBox1.Clear
 sDir = "c:\test\"
 sSrchString = TextBox1
 'MousePointer = vbHourglass
 Label1.Caption = "Searching " & vbCrLf & UCase(sDir) & "..."
 lSize = FindFile(sDir, sSrchString, nDirs, nFiles)
 'MousePointer = vbDefault
 MsgBox Str(nFiles) & " " & " Dateien mit dem Namen " & sSrchString & " gefunden in" & Str(nDirs) & \_
 " Verzeichnis", vbInformation
 'MsgBox "Total Size = " & lSize & " bytes"
End Sub

Private Function FindFile(ByVal sFol As String, sFile As String, \_
 nDirs As Long, nFiles As Long) As Currency
 Dim tFld As Folder, tFil As File, FileName As String

 On Error GoTo Catch
 Set fld = fso.GetFolder(sFol)
 FileName = dir(fso.BuildPath(fld.path, sFile), vbNormal Or \_
 vbHidden Or vbSystem Or vbReadOnly)
 While Len(FileName) 0
 FindFile = FindFile + FileLen(fso.BuildPath(fld.path, \_
 FileName))
 nFiles = nFiles + 1
 ListBox1.AddItem fso.BuildPath(fld.path, dir) ' Load ListBox
 FileName = dir() ' Get next file
 DoEvents
 Wend
 Label1 = "Searching " & vbCrLf & fld.path & "..."
 nDirs = nDirs + 1
 If fld.SubFolders.Count \> 0 Then
 For Each tFld In fld.SubFolders
 DoEvents
 FindFile = FindFile + FindFile(tFld.path, sFile, nDirs, nFiles)
 Next
 End If
 Exit Function
Catch: FileName = ""
 Resume Next
End Function

Private Sub ListBox1\_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
 Dim dir As String
 dir = ListBox1
 Shell "explorer.exe " & dir, vbNormalFocus
End Sub

Wenn ich das aufrufe funktioniert es wunderbar.
Wenn ich die Form und den Code aber in ein vorhandenes Projekt importiere dann sucht er nicht. Es kommt keine Fehlermeldung - es kommt nur das 0 Dateien gefunden wurden, ohne das es aber sucht.

Ich kann dem ganzen ned wirklich folgen warum er hier rumzickt…

Hat zufällig jemand von euch ne Idee?

Gruß Rolf

Hallo Rolf,

Folgendes - habe ein Suchenformular -->

beschreibe mal wie du das erstellt hast das was du als „Suchenformular“ bezeichnest.

Da du mal XL2007 hast , mal nicht XL2007, um welche Version geht es diesmal?

Zu „sSrchString = TextBox1“ könntest du bitte noch mal nachlesen was ich dazu schrieb.

aber immerhin *lob*, das mit dem Pre-Tag klappt ja schon :smile:

Wenn ich das aufrufe funktioniert es wunderbar.

Wenn ich die Form und den Code aber in ein vorhandenes Projekt
importiere dann sucht er nicht. Es kommt keine Fehlermeldung -
es kommt nur das 0 Dateien gefunden wurden, ohne das es aber
sucht.

Dann muß es wohl einen Unterschied geben zwischen Projektaufbau von A und B, was immer genau damt gemeint ist, Projekt in anderem Blatt, Projekt in anderer Mappe?

Wie kommst du eigentlich darauf, daß dein Code nicht sucht?
Setzte mal im Code des CommanButtons bei
ListBox1.Clear
einen Haltepunkt, dann klicke auf den CB.

Im Editor dann Ansicht–Lokalfenster, dann gehe im Code nur noch mit F8 weiter, oder abwechselnd F8 und F5 wenn du mehrere Haltepunkte hast…

Alternativ (aber auch gleichzeiig) könntest du die Entwicklung von Variablenwerten an bestimmten Codestellen verfolgen ohne mit F8 alles durchzuklicken, an den Stellen schreibst du in den Code:

Debug.Print "Var1= " & Var1, "Var2= " & Var2

und kannst das Ergebnis im Direktfenster anschauen.

Gruß
Reinhard

Servus Reinhard,

-)

2007 - die Suche funktioniert auch in 2003 - aber hier auf Arbeit hab ich 2007.

Also, ich hab mir ein Suchform erstellt mit einer Listbox, einem Button einem Label und einer Listbox.
Habe den u. a. Code hergenommen.

So, dieses Formular hab ich solo in einer Excerl-Mappe drin. Da funktioniert die Suche in meinem Verzeichnis.

Wenn ich aber das Such-Formular exportiere und in ein vorhandenes Projekt improtiere. (Liegt alles im selben Laufwerk auf dem selben PC in der selben Struktur etc.) dann „tut“ sich nichts.

Wenn du magst kann ich die die beiden Formulare per Mail schicken?

Dein Haltepunkt hat leider auch keine Erkenntlis gebracht sorry.
Und das mit dem „sSrchString = TextBox1“ - was war da nochmal :frowning:

Gruß Rolf

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Rolf,

2007 - die Suche funktioniert auch in 2003 - aber hier auf
Arbeit hab ich 2007.

das habe ich nicht, aber mal schauen. Wichtig ist dabei, da 2007 noch nicht überall vorhanden ist, wenn du Testdateien hochlädst, lade xls hoch und nicht xlsm.

Also, ich hab mir ein Suchform erstellt mit einer Listbox,
einem Button einem Label und einer Listbox.
So, dieses Formular hab ich solo in einer Excerl-Mappe drin.

Du hast also in einem Tabellenblatt ein paar Steuerelemente drin und bezeichnset diese Blatt als Suchformular.

Rechtsklick unten auf den Blattnamen, Einfügen, dann fügst du ein MS XL 5.0 Dialog ein.
Dort siehst du dann was eher als Formular bezeichnet wird, bestücken kannst du das Formular,den Dialog mit den Elementen aus der Symbolleiste Formular.

Seit Einführung von XL6.0 gibt es ActiveX-Steuereelmente, das sind die aus der Symolleiste Steuerelementtollbox.
Sie können das Gleiche wie ihre Vorgänger und weit mehr.

Im Editor Einfügen–Userform, dort siehst du was aus dem ehemaligem Xl5.0

Ein Formular ist für mich halt eher eine Userform in Vba bzw. eine Form in VB.

Da funktioniert die Suche in meinem Verzeichnis.

Wenn ich aber das Such-Formular exportiere und in ein
vorhandenes Projekt improtiere. (Liegt alles im selben
Laufwerk auf dem selben PC in der selben Struktur etc.) dann
„tut“ sich nichts.

Gehe mal auf Start–Ausführen, gib da ein:

cmd /c dir c:\test*.* /s > h:\dir.txt

(Pfade anpassen.) den Inhalt der entstandenen dir.txt kannst du ja dann in eine der beiden Arbeitsmappen in ein Blatt kopieren.

Wenn du magst kann ich die die beiden Formulare per Mail
schicken?

Ungern, dafür ist die FAQ:2861 da.

Dein Haltepunkt hat leider auch keine Erkenntnis gebracht
sorry.

Den Umgang damit muß man sich erlernen.

Und das mit dem „sSrchString = TextBox1“ - was war da nochmal

(

Daß ich solange ich nicht exakt weiß was in TextBox1 drinsteht davon ausgehen muß daß da u.U. der Fehler ist. Dunlegst damit unnötige Fehlermöglichkeiten, die erstmal nur eins bringen, Zeit- und Mühenverschwendung.

Gruß
Reinhard

1 Like

Hallo Rolf,

2007 - die Suche funktioniert auch in 2003 - aber hier auf
Arbeit hab ich 2007.

das habe ich nicht, aber mal schauen. Wichtig ist dabei, da
2007 noch nicht überall vorhanden ist, wenn du Testdateien
hochlädst, lade xls hoch und nicht xlsm.

Also, ich hab mir ein Suchform erstellt mit einer Listbox,
einem Button einem Label und einer Listbox.
So, dieses Formular hab ich solo in einer Excerl-Mappe drin.

Du hast also in einem Tabellenblatt ein paar Steuerelemente
drin und bezeichnset diese Blatt als Suchformular.

Nein, ich habe ein VBA Projekt erstellt das unter anderen diese Suchfunktion ausführen soll.

Es ist ein „echtes“ VBA-Formular über den VBA-Editor erstellt.

Rechtsklick unten auf den Blattnamen, Einfügen, dann fügst du
ein MS XL 5.0 Dialog ein.
Dort siehst du dann was eher als Formular bezeichnet wird,
bestücken kannst du das Formular,den Dialog mit den Elementen
aus der Symbolleiste Formular.

Seit Einführung von XL6.0 gibt es ActiveX-Steuereelmente, das
sind die aus der Symolleiste Steuerelementtollbox.
Sie können das Gleiche wie ihre Vorgänger und weit mehr.

Im Editor Einfügen–Userform, dort siehst du was aus dem
ehemaligem Xl5.0

Ein Formular ist für mich halt eher eine Userform in Vba bzw.
eine Form in VB.

Da funktioniert die Suche in meinem Verzeichnis.

Wenn ich aber das Such-Formular exportiere und in ein
vorhandenes Projekt improtiere. (Liegt alles im selben
Laufwerk auf dem selben PC in der selben Struktur etc.) dann
„tut“ sich nichts.

Gehe mal auf Start–Ausführen, gib da ein:

cmd /c dir c:\test*.* /s > h:\dir.txt

(Pfade anpassen.) den Inhalt der entstandenen dir.txt kannst
du ja dann in eine der beiden Arbeitsmappen in ein Blatt
kopieren.

Wenn du magst kann ich die die beiden Formulare per Mail
schicken?

Ungern, dafür ist die FAQ:2861 da.

Dein Haltepunkt hat leider auch keine Erkenntnis gebracht
sorry.

Den Umgang damit muß man sich erlernen.

Und das mit dem „sSrchString = TextBox1“ - was war da nochmal

(

Daß ich solange ich nicht exakt weiß was in TextBox1 drinsteht
davon ausgehen muß daß da u.U. der Fehler ist. Dunlegst damit
unnötige Fehlermöglichkeiten, die erstmal nur eins bringen,
Zeit- und Mühenverschwendung.

Gruß
Reinhard

Ok, danke dir derweil mal . Muss ich nochmal alles durchpflügen…

Gruß Rolf

Moin moin,

es lag daran das ich eine Verweis aktiviert hatte die die Suche „verhindert“ hat. Habe die Verweise angeglichen, nun funktioniert es wieder.
Warum das so war kann ich garned nachvollziehen, aber es klappt ja nun.

Danke für deine Hilfe.

Gruß Rolf

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]