Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1956to1960
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

Laufzeitfehler 13 nur bei manchen Eingaben

Laufzeitfehler 13 nur bei manchen Eingaben
20.12.2023 20:22:36
Dieter
Hallo Gemeinde,

Ich habe folgendes Problem:

Der Code funktioniert wenn ich in die Zelle "SPS" als Suchwort eingebe. Gebe ich jedoch bspw. "ICS" ein kommt es zu dem Laufzeitfehler 13.
Das ganze ist äußerst unlogisch. Bei manchen Suchbegriffen funktioniert es. Bei anderen nicht.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then Call Suchen
End Sub
Private Sub Suchen()
Dim suchwort As String
Dim gesamtSumme, suchZeile, letzteGefundeneZeile, versSumme, Z As Variant
Dim suche, suche2 As Boolean
Dim sheetAusgabenKum As Worksheet
Const Farbe = 10092543
On Error GoTo FehlerVerarbeitung
'--------------
Set sheetAusgabenKum = ThisWorkbook.Sheets("AusgabenKum")
'--------------
versSumme = 0 'Versicherungssumme wird auf 0 gesetzt
suchZeile = 6 'suchZeile erster Eintrag
gesamtSumme = 0 'gesamtSumme wird auf 0 für Start gesetzt
suchwort = sheetAusgabenKum.Cells(2, 2).Value
'-------------- Zellen entfaerben
For Z = 3 To Worksheets("AusgabenKum").Cells(Rows.Count, 2).End(xlUp).Row
Worksheets("AusgabenKum").Cells(Z, 2).Interior.Color = xlNone
Next Z
'-------------- Gesamtsummenzelle auf0 setzen, Abfrage ob Firma eingegeben wurde
sheetAusgabenKum.Cells(2, 3).Value = 0
If suchwort = "" Then sheetAusgabenKum.Cells(2, 2).Value = "Bitte hier die Firma eingeben! (Gesamtsumme der Überweisungen)"
If suchwort = "" Then Exit Sub
'-------------- Auswertung gesuchte Firmen
sheetAusgabenKum.Select
sheetAusgabenKum.Columns("B:B").Select
suche = Selection.Find(What:=suchwort, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
suchZeile = Application.ActiveCell.Row
letzteGefundeneZeile = 0 'erneutes Suchen vom Anfang verhindern
'--------------
While suche = True And suchZeile > letzteGefundeneZeile
gesamtSumme = gesamtSumme + sheetAusgabenKum.Cells(suchZeile, 3).Value + sheetAusgabenKum.Cells(suchZeile, 4).Value
Worksheets("AusgabenKum").Cells(suchZeile, 2).Interior.Color = Farbe
letzteGefundeneZeile = suchZeile
Selection.FindNext(After:=ActiveCell).Activate
suchZeile = Application.ActiveCell.Row
Wend
'-------------- Auswertung_Generali_Überweisungen
sheetAusgabenKum.Cells(4, 3).Value = 0
versSumme = 0
suchZeile = 6 'suchZeile erster Eintrag
sheetAusgabenKum.Select
sheetAusgabenKum.Columns("B:B").Select
suche2 = Selection.Find(What:="Uniqa", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
suchZeile = Application.ActiveCell.Row
letzteGefundeneZeile = 0 'erneutes Suchen vom Anfang verhindern
'--------------
While suche2 = True And suchZeile > letzteGefundeneZeile
versSumme = versSumme + sheetAusgabenKum.Cells(suchZeile, 3).Value
letzteGefundeneZeile = suchZeile
Selection.FindNext(After:=ActiveCell).Activate
suchZeile = Application.ActiveCell.Row
Wend
'-------------- Ausgabe der Summen und Hinweise
sheetAusgabenKum.Cells(2, 3).Value = gesamtSumme
versSumme = versSumme
sheetAusgabenKum.Cells(4, 3).Value = -(versSumme)
sheetAusgabenKum.Cells(2, 2).Select
Exit Sub
'-------------- Laufzeitfehler abfangen (Ausstieg mit ESC)
FehlerVerarbeitung:
MsgBox "Fehler aufgetreten. Programm neu starten!"
End Sub


Die Datei konnte ich nicht hochladen. Hier unten Beispieldaten:

  • 220202 Putz, rep. Glas 408,14 €
    220218 Putz, rep. Glas 213,93 €
    220413 SPS, Schlüssel 48,00 €
    220509 SPS, Schlüssel 57,08 €
    220525 Schindler, Lift rep. 501,74 €
    220608 Thann, Wannenleuchte 27,07 €
    220621 Förstl, Reinigungsrohr 389,86 €
    220709 SPS, Türschließer 443,76 €
    220727 Mibag, Wassereintritt Gebäude 8.166,88 €
    220729 Imsirovic, Fenster Rep. 470,80 €
    220907 Tuschek, Türband Rep. 367,50 €
    220913 zebau, Pflastersanierung 1.150,85 €
    220915 SPS, Elektrotüröffner Rep. 205,30 €
    220922 Imsirovic, Fenster Rep. 833,33 €
    221010 Burgstaller,Begutachtung Dach 330,00 €
    221130 Barlian, Verstopfung 373,24 €
    221205 Jura,Betonprüfung TG 2.146,10 €
    221205 Wabs,Fugen Blech Fassade abged 204,75 €
    221209 Schindler, Lift Rep. 613,01 €
    220401 Laresser, Drohnenflug 225,00 €
    220209 Uniqa, 258-2-61583-21 -463,50 €
    220218 Teccnoroll, Rolllade Hagel 1.443,00 €
    220304 Uniqa, SNr: 172-2-60200-21 -1.443,00 €
    220330 Mibag, San.WS.02/2022 737,00 €
    220405 Uniqa, SNr: 258-2-61583-21 -737,00 €
    220511 Koll, Risse First 1.100,35 €
    220614 Förstl, Wasserschaden Badewann 385,00 €
    220617 Uniqa, SNr: 08030 -70,00 €
    220627 Uniqa, SNr: 258-2-60818 -385,00 €
    220712 Förstl, Verstopfung 209,55 €
    220721 RRD, Verstopfung Küche 164,42 €
    220818 RVM, SNr: 106503 -164,42 €
    220818 RVM, SNr: 106252 -209,55 €
    220921 Förstl, Bodenkonvektoren monti 993,30 €
    221006 Wabs, san.n.Wassersch. 5.351,00 €
    221021 Uniqa, Snr: 258-2-60818-22 -6.131,30 €
    221112 Mibag, Wasserschaden 2.611,24 €
    221129 Reinqruber, Stromk.f.Trocknung 261,36 €
    221129 Rathner, Stromk.f.Trocknung 60,84 €
    221129 Hessenberger, Stromk.f.Trockn. 88,84 €
    221129 Grill, Stromk.f.Trockn. 439,26 €
    221230 Mibag, Wasserschaden 232,80 €
    221206 RRD, Verstopfung Küche 693,35 €
    230116 Förstl, Zonenventil rep. 279,50 €
    230228 JURA, Nachuntersuchung Boden 1.238,60 €
    230419 Kieninger, Leuchtentausch 6.605,31 €
    230419 Kieninger, Elektroarbeiten 468,00 €
    230419 Kieninger, TG Beleuchtung 3.482,12 €
    230429 Kieninger, PV-Anlage Errichtung 13.139,20 €
    230505 Übleis, Baustellenkoordination 1.425,90 €
    230519 BBS, Gerüst 19.313,32 €
    230519 Kieninger, PV-Anlage Errichtung 8.872,35 €
    230617 SPS, Schloss HE Türe rep 479,45 €
    230622 Mibag, Wassers. 581,01 €
    230711 Rainbacher, Fassadensanierung 32.669,96 €
    230718 Reingruber, Reinigung San. Fas 98,73 €
    230807 Gemeinde, Baustellenbenützung 385,48 €
    230810 Stadt.Gm., Rep. Wasserabsperru 147,50 €
    230811 Gemeinde, Baustellenbenützung 355,55 €
    230831 Übleis, Baustellenkoordination 756,60 €
    230919 mida, Fensterreparatur 683,85 €
    231009 RRD, Regenwasser-Schächte Rep. 774,83 €
    231012 Krinninger, Obi, Tauchpumpe 124,99 €
    231012 Inntelco, Modem 190,00 €
    231013 Höller,Einbau Wasserzähler Whg 6.446,67 €
    231016 Höller,Ern.Oberteile Strangabs 756,80 €
    231020 Strasser, Spengler Balkonentwässerung 3.915,00 €
    231023 Kieninger, PV-Anlage Errichtung 10.177,32 €
    231025 Wabs, Messung 28,50 €
    231025 BBS, Gerüst 40.757,43 €
    231031 Rainbacher, Farbreste Kanal -182,50 €
    231114 RRD, Dachrinnen +Gullys Versto 333,19 €
    231114 Kieninger, Dachboden Lampenmon 1.088,22 €
    231123 ICS, Rohrreinigung Prüfung 196,00 €
    231126 SPS, Zylinder Kellerabteile 319,65 €
    231127 Barlian, Rep. Abflussleitung 462,59 €
    231130 Graf, Gerüst Aufräumarbeiten 456,00 €
    230207 Barlian, Zonenventil get. 558,56 €
    230105 RVM, SNr.110210 -232,80 €
    230126 Uniqa, SNr: 258-2-61583-21 -693,35 €
    230130 uniqa, SNR 08030 Mibag -2.611,24 €
    230208 RVM, SNr: 110211 -323,66 €
    230216 Barlian, Verstopfung 243,85 €
    230217 Wabs, Wasserschaden 7.281,87 €
    230309 RVM, SNr.112213 08030 224795 -243,85 €
    230315 Uniqa,258-2-61644-22 WabsStrom -7.729,53 €
    230316 Strasser, Hagelschaden 120.000,00 €
    230403 Uniqa, Hagelschaden -120.000,00 €
    230503 ICS, Sanierungsarbeiten 6.000,00 €
    230718 Wabs, Wasserschaden 639,50 €
    230822 Strasser, 2.TR Dachsanierung 150.000,00 €
    230824 ICS,Baustellenkoordination Kri 8.000,00 €
    230906 Uniqa, SNr:172-2-60200-21 -150.000,00 €
    230907 Nagl, Stromkosten Trocknung 355,32 €
    230907 Reingruber, Stromk. Trocknung 92,34 €
    231020 Strasser, Schneefang PV-Anlage 16.942,00 €
    231020 Strasser, 3.TR Dach n. Hagel 100.000,00 €
    231023 ICS, Baustellenkoordination 5.000,00 €
    231025 Wabs, Wasserschaden 546,00 €
  • 9
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Laufzeitfehler 13 nur bei manchen Eingaben
    20.12.2023 21:13:12
    Luschi
    Hallo Dieter,

    immer wieder das Selbe:
    - kann keine Demodatei bereitstellen
    - Daten zu geheim oder Datei zu groß
    - Du verwendest: Range.Find() und prüfst nicht, ob der Suchwert überhaupt gefunden wurde
    - statt dessen gleich Range.Find(....).Activate
    - das kann nicht gut gehen
    - Du solltest lernen, was es heißt, den Vba-Code per Haltepunkt (F9-Taste) / F8-Taste, Direkt-/Überwachungsfenster
      schrittweise zu testen und Zwischenergebnisse auszuwerten

    Gruß von Luschi
    aus klein-Paris

    PS: Wenn Du 1 Beispieldatei bereitstellst, schau ich mir Dein Problem noch mal an!
    Anzeige
    AW: Laufzeitfehler 13 nur bei manchen Eingaben
    21.12.2023 00:11:33
    Dieter
    Hallo Luschi,

    also ich habe einen Mac und habe es mit Safari probiert die Datei hochzuladen. Aber da war die Datei grau und konnte nicht angewählt werden. Habe jetzt Chrome heruntergeladen und siehe da es ging.

    https://www.herber.de/bbs/user/165418.xlsm
    AW: Laufzeitfehler 13 nur bei manchen Eingaben
    21.12.2023 00:45:03
    onur
    Ist das DEIN Code ? Hat er denn mal bei dir funktioniert?
    AW: Laufzeitfehler 13 nur bei manchen Eingaben
    21.12.2023 07:33:41
    Dieter
    Ja hat er.
    Gebe ich SPS ein funktioniert es. Gebe ich ICS ein funktioniert es nicht.
    AW: Laufzeitfehler 13 nur bei manchen Eingaben
    21.12.2023 07:38:48
    onur
    Lese meine zweitn Antwort.
    AW: Laufzeitfehler 13 nur bei manchen Eingaben
    21.12.2023 00:51:33
    onur
    Der Code soll, wenn er was findet, Spalte 3 und 4 addieren. In Spalte 4 steht ein "X" und damit kann man äusserst schwer addieren.
    Anzeige
    AW: Laufzeitfehler 13 nur bei manchen Eingaben
    21.12.2023 07:40:27
    Dieter
    Ouch. Was bin ich für ein Id..t.

    Nach 8 Stunden vor dem Computer sollte man eine Pause einlegen, bevor man anderen die Zeit stiehlt.

    Herzlichen Dank onur für die Hilfe und an alle die auf den Code geschaut haben.

    Dieter
    AW: Laufzeitfehler 13 nur bei manchen Eingaben
    20.12.2023 21:55:40
    Piet
    Hallo

    ich denke ich brauche keine Beispieldatei um das Problem zu lösen. Luschi hat es ja schon genannt.
    Jetzt kannst du stundenlang googeln, dir den Kopf zerbrechen, oder den unteren Code bei dir einbauen.

    Wenn Find nichts findet bekommst du eine Fehlermeldung als xlDialog. Bei VBA erfolgt ein Laufzeitfehler!
    Das fangen wir anders ab, indem wir die Set Methode verwenden, und prüfen ob rFind einen Wert gefunden hat.
    Bei rFind ist Nothing kannst du dann mit MsgBox aus dem Code rausspringen. Damit verhinderst du den Fehler!

    Die Schleife mache ich lieber über Do Loop, weil man da Until statt oben bei Do, auch unten bei Loop setzen kann!
    Ich merke mir dafür auch die gefundene Zeile, und prüfe ob die Find Methode vor oder ab dieser Zeile neu beginnt.
    Mit der Set Methode verzichtest du übrigens völlig auf Select. Das ist viel eleganter zu programmieren.
    Wie du meine rFind Variable bei dir benennen willst bleibt dir überlassen. Bei mir ist es immer Set rFind.

    mfg Piet

  • Sub test()
    Dim rFind As Range

    '-------------- Auswertung gesuchte Firmen
    Set rFind = sheetAusgabenKum.Columns(2).Find(What:=suchwort, After:=[b1], LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
    'Abbruch wenn nicht gefunden mit Exit Sub, oder weiter in deinem Code zum Code Ende
    If rFind Is Nothing Then MsgBox suchwort & " - dieser Suchwert wurde nicht gefunden": Exit Sub

    suchzeile = rFind.Row
    '--------------
    Do
    gesamtSumme = gesamtSumme + sheetAusgabenKum.Cells(suchzeile, 3) + sheetAusgabenKum.Cells(suchzeile, 4)
    Worksheets("AusgabenKum").Cells(suchzeile, 2).Interior.Color = Farbe
    Set rFind = sheetAusgabenKum.Columns(2).FindNext(rFind)
    Loop Until rFind = suchzeile

    End Sub
  • Anzeige
    AW: Laufzeitfehler 13 nur bei manchen Eingaben
    21.12.2023 07:43:06
    Dieter
    Danke piet!

    Das Problem lag zwar woanders, aber ich habe Deinen Code übernommen, der wesentlich stringenter ist als meiner. Da konnte ich jetzt wieder was dazulernen.

    Danke
    Dieter

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige