UserForm - letzter Versuch

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: UserForm - letzter Versuch
von: Carsten
Geschrieben am: 07.10.2003 11:41:36

Hallo zusammen,

ich habe diese Frage hier bereits mehrfach gestellt. Leider konnte mir bisher niemand helfen.
Vielleicht findet sich im letzten Versuch doch noch eine Lösung.


Ich habe eine Userform. Durch einen Klick auf einen Button wird eine Suchfunktion gestartet, je nach Einstellung nur im aktuellen Blatt oder aber über alle Tabellenblätter.
Den Code für diese Suchfunktion habe ich im Netz gefunden. Beim Original-Code wurde nach jeder Fundstelle eine MsgBox aufgerufen um nachzufragen ob die Suche fortgesetzt werden soll. Ich möchte jedoch nicht mit einer MsgBox arbeiten sondern die Ausführung des Codes anhalten bis erneut der Button in der UserForm gedrückt wird. Das ganze soll also genau wie die Excel-Suchfunktion funktionieren.
Leider schaffe ich es nicht, nach einer Fundstelle das Makro zu stoppen. Ich kann die UserForm auch nicht über .Show ansprechen, da sie zur Laufzeit nicht ausgeblendet ist.

Ich hoffe, Ihr versteht mein Problem und habt evtl. doch noch eine Lösung für mich.

Hier noch der derzeitige Code:

Option Explicit


Private Sub CommandButton1_Click()
Dim t As Worksheet, z As Range, SuchW As String, counter As Integer, ausgabe As String, knopf As Integer, erste As String, i As String
SuchW = TextBox1.Value
If SuchW = "" Then Exit Sub
For Each t In Worksheets
t.Activate
Set z = t.Cells.Find(SuchW)
If Not z Is Nothing Then
erste = z.Address
Do
z.Activate
UserForm1.Show
Set z = Cells.FindNext(after:=ActiveCell)
Loop Until erste = z.Address
End If
If UserForm1.CheckBox3 = Enabled Then Else Exit Sub
Next t
End Sub


Gruß
Carsten
Bild


Betrifft: AW: UserForm - letzter Versuch
von: Michael Scheffler
Geschrieben am: 07.10.2003 11:58:48

Hi,

Du solltest Dich mal mit dem Schlüsselwort "Me" vertraut machen.

UserForm1.Show -> Me.Show

Dann wird die aktuelle Instanz aufgerufen!

Gruß

Micha


Bild


Betrifft: AW: UserForm - letzter Versuch
von: Carsten
Geschrieben am: 07.10.2003 12:17:26

Hallo Michael,

ich habe UserForm1.Show durch Me.Show ersetzt. Leider bringt das Ganze keinen Erfolg.

Hast Du noch eine andere Idee?

Gruß
Carsten


Bild


Betrifft: AW: UserForm - letzter Versuch
von: Michael Scheffler
Geschrieben am: 07.10.2003 11:58:51

Hi,

Du solltest Dich mal mit dem Schlüsselwort "Me" vertraut machen.

UserForm1.Show -> Me.Show

Dann wird die aktuelle Instanz aufgerufen!

Gruß

Micha


Bild


Betrifft: AW: UserForm - letzter Versuch
von: Nike
Geschrieben am: 07.10.2003 12:09:41

Hi,

poste mal die Datei in der du die UF anwenden möchtest...

Bye

Nike


Bild


Betrifft: AW: UserForm - letzter Versuch
von: Carsten
Geschrieben am: 07.10.2003 12:24:39

Hallo Nike,

hier die Datei mit der UF: https://www.herber.de/bbs/user/1306.xls

Die Datei ist leer, das ich die UserForm aus der Personl.xls exportiert habe.

Gruß
Carsten


Bild


Betrifft: AW: UserForm - letzter Versuch
von: Nike
Geschrieben am: 07.10.2003 13:42:36

Hi,
da die Mappe ansonsten leer war kann ich den Code nicht testen,
ein paar Dummy Datensätze hätten nicht geschadet ;-)

Naja, versuchs mal so:

Option Explicit

Public rng As Range
Public wks As Worksheet

Private Sub CommandButton1_Click()
Dim t As Worksheet, z As Range, SuchW As String, counter As Integer, ausgabe As String, knopf As Integer, erste As String, i As String
SuchW = TextBox1.Value
If SuchW = "" Then Exit Sub
If rng Is Nothing Then
    For Each t In Worksheets
        t.Activate
        Set z = t.Cells.Find(SuchW)
        If Not z Is Nothing Then
            z.Activate
            Set rng = z
            Set wks = t
            Exit Sub
        End If
    Next t
Else
    For i = wks.Index To Worksheets.Count
        With Worksheets(i)
            Set z = .Cells.Find(SuchW, rng)
            If Not z Is Nothing Then
                z.Activate
                Set rng = z
                Set wks = Worksheets(i)
                Exit Sub
            End If
        End With
    Next
End If
End Sub


Der Code ist nicht trivial, da du aus der UF den Find machst,
dann unterbrichst und dann wieder den Einstieg finden mußt...
Bin mir nicht sicher, ob's so funkt, aber schaun mer mal ;-)

Bye

Nike


Bild


Betrifft: AW: UserForm - letzter Versuch
von: Carsten
Geschrieben am: 07.10.2003 15:03:58

Hallo Nike,

in der Datei sind absichtlich keine Datensätze. Ich möchte damit die eigentliche Excel-Suchfunktion ersetzen, da die ja in Excel 2000 noch nicht über alle Blätter sucht (es sei denn, man gruppiert die Blätter)

Wie dem auch sei, Dein Code wird hier

For i = wks.Index To Worksheets.Count

abgebrochen. Typen unverträglich

Hast Du noch eine Idee?

Gruß
Carsten


Bild


Betrifft: AW: UserForm - letzter Versuch
von: Nike
Geschrieben am: 07.10.2003 15:30:18

Hi,
naja dimmen sollte man das i bei option explict halt schon ;-)
Dim i as integer
das as string kommt doch nicht von mir, oder?

Ich kann ja schlecht nen Zähler als Buchstabe deklarieren...

Bye

Nike


Bild


Betrifft: AW: UserForm - letzter Versuch
von: Carsten
Geschrieben am: 07.10.2003 15:53:01

Hallo Nike,

das sieht schon gut aus, danke.
Jetzt muß ich nur noch tüftel, wie ich die weiteren Optionen einbinden kann.
Mal sehen wie weit ich komme.

Gruß
Carsten


 Bild

Beiträge aus den Excel-Beispielen zum Thema " UserForm - letzter Versuch"