Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1664to1668
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
Inhaltsverzeichnis

Suche über Textbox gibt Fehlermeldung

Suche über Textbox gibt Fehlermeldung
24.12.2018 19:32:33
Alfred
Hallo,
jetzt habe ich es einmal gewagt und mich angemeldet, d.h. meine VBA-Kenntnisse sind nicht überragend.
Ich habe eine Tabellenblat "Daten" mit über 70 Spalten.
In UserForm1 gebe ich in die TextBox1 den Suchbegriff ein. Über einen Button soll die Suche ausgeführt werden.
Das Ergebnis ist: Laufzeitfehler '1004': Die Methode 'Range' für das Objekt'_Worksheet" ist fehlgeschlagen.
Ich hätte gerne die Daten in die restlichen TextBoxen bei Klick auf den Button "Suche" übernommen.
Bleibt die Textbox1 leer, zeigt er mir beim Klick auf den Button "Suche" die Msg-Box an.
herber.de/bbs/user/126292.xlsm
Wo liegt denn nun das Problem? Vielleicht kann mir jemand helfen. Ich wäre sehr dankbar.
Gruß,
Alfred

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche über Textbox gibt Fehlermeldung
24.12.2018 20:17:06
Nepumuk
Hallo Alfred,
so:
Set myRange = .Columns(1).Find(What:=UserForm1.TextBox1.Value, _
    LookIn:=xlValues, LookAt:=xlPart, After:=.Cells(.Rows.Count, 1))

Gruß
Nepumuk
AW: Suche über Textbox gibt Fehlermeldung
24.12.2018 20:27:51
Alfred
Hallo Nepomuk,
das ging ja schnell und es funktioniert. Ich Danke Dir.
Gruß, Alfred
AW: Suche über Textbox gibt Fehlermeldung
24.12.2018 20:54:46
Nepumuk
Hallo Alfred,
ich hab mir mal deinen Suchen-Button zur Brust genommen:
'*************************************************************************
'* *
'* BUTTON: SUCHEN *
'* *
'*************************************************************************

Private Sub CommandButton2_Click()
    
    Dim WkSh As Worksheet
    Dim myRange As Range
    Dim strAddress As String
    Dim bolAbbruch As Boolean
    
    ' CommandButton3.Enabled = False ' den Ändern-Button sperren
    ' CommandButton4.Enabled = False ' den Löschen-Button sperren
    
    Set WkSh = Worksheets("Daten")
    
    If TextBox1.Value = "" Then
        MsgBox "Es fehlt ein Suchbegriff im Feld Name - Abbruch", _
            vbExclamation, " Hinweis für " & Application.UserName
        TextBox1.SetFocus
    Else
        TextBox1.Value = WorksheetFunction.Proper(TextBox1.Value)
        
        ' nachfolgend werden die TextBox1.Werte gesucht und gefunden.
        ' Mit LookIn:=xlValues wird nach den Zellwerten gesucht.
        ' Mit LookAt:=xlPart muß der Suchbegriff nicht komplett mit
        ' dem Suchergebnis übereinstimmen.
        
        With WkSh
            
            Set myRange = .Columns(1).Find(What:=TextBox1.Value, _
                LookIn:=xlValues, LookAt:=xlPart, After:=.Cells(.Rows.Count, 1))
            
            If Not myRange Is Nothing Then
                strAddress = myRange.Address
                Do
                    FundZeile = myRange.Row
                    Call Anzeigen(myRange)
                    If MsgBox("Weitersuchen?", vbQuestion Or vbYesNo, " Abfrage") = vbNo Then
                        bolAbbruch = True
                        Exit Sub
                    Else
                        Set myRange = .Columns(1).FindNext(myRange)
                    End If
                Loop Until myRange.Address = strAddress
                
                If Not bolAbbruch Then
                    MsgBox "Keine weiteren Datensätze gefunden.", _
                        vbExclamation, " Information für " & Application.UserName
                    FundZeile = 0
                Else
                    MsgBox "Keinen übereinstimmenden Datensatz gefunden", _
                        vbExclamation, " Information für " & Application.UserName
                    FundZeile = 0
                End If
            Else
                MsgBox "Keinen übereinstimmenden Datensatz gefunden", _
                    vbExclamation, " Information für " & Application.UserName
                FundZeile = 0
                With TextBox2
                    .SetFocus
                    .SelStart = 0
                    .SelLength = Len(.Text)
                End With
            End If
        End With
    End If
End Sub

Private Sub Anzeigen(ByRef probjRange As Range)
    
    Dim lngIndex As Long
    
    For lngIndex = 1 To 74
        
        Controls("TextBox" & CStr(lngIndex)).Value = probjRange.Offset(0, lngIndex - 1).Value
        
    Next
    
    CommandButton3.Enabled = True ' den Ändern-Button freigeben
    CommandButton4.Enabled = True ' den Löschen-Button freigeben
    
End Sub

Die Zahlenwerte in deinen MsgBoxen habe ich durch ihre Konstanten ersetzt. Das ist leichter zu lesen (was sagt dir 36 und was vbQuestion Or vbYesNo?).
Gruß
Nepumuk
Anzeige
AW: Suche über Textbox gibt Fehlermeldung
24.12.2018 21:35:07
Alfred
Hallo Nepomuk,
danke für Deine Arbeit. Ich habe den Code gleich eingebaut. Jetzt muss ich nur noch lernen, ihn komplett zu verstehen. Für einen Profi bestimmt kein Problem, aber ich war schon stolz, so weit gekommen zu sein.
Meine Anzeige der Datensätze habe ich auch zum Laufen gebracht.
Dim lngLetzte As Long
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
Label800.Caption = "Anzahl der Einträge:  " & (lngLetzte - 1)
End Sub
"Was sagt dir 36 und was vbQuestion Or vbYesNo?"
Das hat doch alles mit den Msg-Boxen zu tun.
Mühsam ernährt sich das Eichhörnchen.
Gruß,
Alfred
Anzeige
AW: Suche über Textbox gibt Fehlermeldung
24.12.2018 20:23:36
onur
Hast wohl einen Punkt zu wenig:
....After:=.Range(.Rows.Count, 1))
AW: Suche über Textbox gibt Fehlermeldung
24.12.2018 20:29:55
Alfred
Hallo Onur,
auch Dir herzlichen Dank.
Solltet Ihr noch ein paar Verbesserungen oder Fehler finden, bin ich für jede Hilfe dankbar.
Gruß,
Alfred

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige