Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Laufzeit / Objektdefinierter Fehler -- aber warum

Betrifft: Laufzeit / Objektdefinierter Fehler -- aber warum von: Christian Schubert
Geschrieben am: 02.09.2004 13:47:32

Hallo Forumsteilnehmer,

mir wurde bereits gut geholfen bei meinen Fragen, daher wende ich mich auch wieder mit einem neuen Anliegen an euch.

In dem u.g. Code, der für eine Kundennummersuche angelegt ist, bekomme ich einen Laufzeit / Objektdefinierter Fehler. Falls ich aber die Do While schleife unsichtbar mache und dafür die ebenfalls genannte IF THEN Else Schleife laufen lasse, bekomme ich zwar keine Fehlermeldung aber auch keine Daten von Zeilen im Excel Blatt in meine Textboxen.


Worksheets("Kunde").Activate

Dim i As Long
Dim tr As Long

i = 1

'''If Cells(i, 2) <> Val(TextBox1.Value) Or Cells(i, 2) = "" Then
'''i = i + 1
'''Else
'''tr = i


Do While Cells(i, 2) <> Val(TextBox1.Value) Or Cells(i, 2) = ""
i = i + 1
Loop
tr = i

'Kundenanschrift

Titel.Value = Cells(tr, 4).Value
Anrede.Value = Cells(tr, 5).Value
Vorname.Value = Cells(tr, 6).Value
NameK.Value = Cells(tr, 7).Value
Strasse.Value = Cells(tr, 8).Value
Hausnummer.Value = Cells(tr, 9).Value
PLZOrt.Value = Cells(tr, 10).Value
Ort.Value = Cells(tr, 11).Value
PLZPostfach.Value = Cells(tr, 12).Value
Postfach.Value = Cells(tr, 13).Value
Telefon.Value = Cells(tr, 14).Value
Fax.Value = Cells(tr, 15).Value
Email.Value = Cells(tr, 16).Value


Danke für Eure Hilfe

Gruss
Christian

  


Betrifft: AW: Laufzeit / Objektdefinierter Fehler -- aber warum von: p@ulchen
Geschrieben am: 02.09.2004 14:14:28

Hi Christian,

probier mal die Find-Methode...geht schneller, als jede Zeile in Schleife abzufragen:



Dim tr As Integer

Set trFind = Columns(2).Find(Val(TextBox1.Value), , , xlWhole)
If Not trFind Is Nothing Then
    tr = trFind.Row
    'Kundenanschrift
    Titel.Value = Cells(tr, 4).Value
    Anrede.Value = Cells(tr, 5).Value
    Vorname.Value = Cells(tr, 6).Value
    NameK.Value = Cells(tr, 7).Value
    Strasse.Value = Cells(tr, 8).Value
    Hausnummer.Value = Cells(tr, 9).Value
    PLZOrt.Value = Cells(tr, 10).Value
    Ort.Value = Cells(tr, 11).Value
    PLZPostfach.Value = Cells(tr, 12).Value
    Postfach.Value = Cells(tr, 13).Value
    Telefon.Value = Cells(tr, 14).Value
    Fax.Value = Cells(tr, 15).Value
    Email.Value = Cells(tr, 16).Value
Else
    MsgBox "Kunde nicht gefunden !"
End If

     Code eingefügt mit Syntaxhighlighter 2.5



Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


  


Betrifft: AW: Laufzeit / Objektdefinierter Fehler -- aber warum von: Christian Schubert
Geschrieben am: 02.09.2004 14:44:07

Ich dank dir.. hat super geplappt !! Schönen Tag noch..

Gruss

Christian


  


Betrifft: AW: Laufzeit / Objektdefinierter Fehler -- aber warum von: Christian Schubert
Geschrieben am: 02.09.2004 15:21:18

Ich hätte doch nochmal eine Frage:

Gibt es die Möglichkeit mit gleichem Verfahren neben Kundennummern auch nach Kundennamen zu suchen ? Danke für die Mühe


  


Betrifft: AW: Laufzeit / Objektdefinierter Fehler -- aber warum von: P@ulchen
Geschrieben am: 02.09.2004 16:00:52

Hi Christian,

natürlich kannst Du auf diese Weise auch nach anderen Kriterien suchen...

Ersetze

Set trFind = Columns(2).Find(Val(TextBox1.Value), , , xlWhole)

durch

Set trFind = Cells.Find(Val(TextBox1.Value), , , xlWhole)

Damit wird Dein Suchbegriff in allen Zellen gesucht...



Gruß aus Leipzig
P@ulchen


  


Betrifft: AW: Laufzeit / Objektdefinierter Fehler -- aber warum von: Christian Schubert
Geschrieben am: 03.09.2004 10:47:17

Nochmals Danke paulchen für deine super schnelle Hilfe. Jedoch ist es so, dass momentan bei mir, nachdem ich den Code implementiert habe, kein Kunde gefunden werden kann. Ist evtl. ein anderer Datentyp nötig? Bei Namen müsste es doch String sein oder? Jedoch funktioniert das irgendwie auch net...

Danke nochmals für die Mühe

Gruss

Christian






Worksheets("Kunde").Activate

Dim tr As String

Set trFind = Cells.Find(Val(TextBox1.Value), , , xlWhole)
If Not trFind Is Nothing Then
tr = trFind.Row


'Kundenanschrift
Titel.Value = Cells(tr, 4).Value
Anrede.Value = Cells(tr, 5).Value
Vorname.Value = Cells(tr, 6).Value
NameK.Value = Cells(tr, 7).Value
Strasse.Value = Cells(tr, 8).Value
Hausnummer.Value = Cells(tr, 9).Value
PLZOrt.Value = Cells(tr, 10).Value
Ort.Value = Cells(tr, 11).Value
PLZPostfach.Value = Cells(tr, 12).Value
Postfach.Value = Cells(tr, 13).Value
Telefon.Value = Cells(tr, 14).Value
Fax.Value = Cells(tr, 15).Value
Email.Value = Cells(tr, 16).Value


  


Betrifft: AW: Laufzeit / Objektdefinierter Fehler -- aber warum von: P@ulchen
Geschrieben am: 03.09.2004 16:24:48

Hi Christian,

wäre es möglich, daß Du mal eine Beispielmappe hochlädst ? Ist sonst schwer nachzuvollziehen...



Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


 

Beiträge aus den Excel-Beispielen zum Thema "Laufzeit / Objektdefinierter Fehler -- aber warum"