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

Kann den Fehler der Funktion nicht finde

Kann den Fehler der Funktion nicht finde
13.09.2022 02:34:21
BeLangmantl
Hallo,
ich verstehe bei dieser Sub den Fehler nicht.
Im Tabellenblatt Kalender wird ein sogenannter DrillDown aufgerufen. Bei der navigation im Kalender funktioniert das Übergeben der ce_target übergeben.
Normalerweise soll auf Klick auf das Objekt im Tabellenblatt die Routine Schueler aufrufen mit dem Selektierten Schüler aufgerufen werden. Das funktioniert irgendwie nicht.
Nach meinem Verständnis sollte es eigentlich richtig sein.
Sehe gerade den Wald vor lauter Bäumen nicht, Wer kann mir helfen und mir sagen, warum er nicht in das If reinspringt?

Sub Zu_Drilldown_Springen()
Dim lngSchuelerzeile As Long
Dim strSchuelerNameSpalte, strSchuelerVornameSpalte, strDrillDown, strName As String
strSchuelerNameSpalte = VBA.Split(t02_schuelerliste.Range("A15").Formula, "$")(1)
strSchuelerVornameSpalte = VBA.Split(t02_schuelerliste.Range("A16").Formula, "$")(1)
strDrillDown = t04_Kalender.Cells(ce_target.Row, 11).Value
For lngSchuelerzeile = 15 To t02_schuelerliste.UsedRange.Rows.Count
If t02_schuelerliste.Range(strSchuelerNameSpalte & lngSchuelerzeile).Value & " " & t02_schuelerliste.Range(strSchuelerVornameSpalte & lngSchuelerzeile).Value = strDrillDown Then
t03_schueler.Range("B12").Value = lngSchuelerzeile
Call Schueler_aufrufen
Exit For
End If
Next lngSchuelerzeile
End Sub
Anbei die Tabelle ( Auch wenn es nicht so aussieht, es sind Fake Daten, die ich mir ausgedacht habe.
https://www.herber.de/bbs/user/155138.xlsm

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kann den Fehler der Funktion nicht finde
13.09.2022 08:10:54
ralf_b
ce_target ist nothing
also entweder du prüfst ob es einen Wert hat bevor du es benutzt, oder du schaust mal warum es in diesem Fall noch nothing ist.
Ursache: Namensfindung
13.09.2022 09:41:38
MCO
Moin!
Von hinten durch die Brust ins Auge....
Vielleicht macht es ein reduzierter Code ja einfacher:

Sub Zu_Drilldown_Springen()
Dim lngSchuelerzeile As Object
'Dim strSchuelerNameSpalte, strSchuelerVornameSpalte
dim strDrillDown, strName As String
Dim rng As Range
'strSchuelerNameSpalte = VBA.Split(t02_schuelerliste.Range("A15").Formula, "$")(1)
'strSchuelerVornameSpalte = VBA.Split(t02_schuelerliste.Range("A16").Formula, "$")(1)
strDrillDown = t04_Kalender.Cells(ActiveCell.Row, 11).Value
Set rng = t02_schuelerliste.Range("L15").CurrentRegion.Offset(1, 1)
Set rng = rng.Resize(rng.Rows.Count - 1, 1)
For Each lngSchuelerzeile In rng.Rows
If rng & " " & rng.Offset(0, 1) = strDrillDown Then
t03_schueler.Range("B12").Value = lngSchuelerzeile.Row
Call Schueler_aufrufen
Exit For
End If
Next lngSchuelerzeile
End Sub
Gruß, MCO
Anzeige
AW: Ursache: Namensfindung
13.09.2022 11:39:44
BeLangmantl
hallo MCO,
vielen Dank für das ausdünnen des Codes, leider erhalte ich jetzt einen Error, ich habe deinen code eingesetzt. ERhalte einen Laufzeitfehler 13
in folgender Zeile:

If rng & " " & rng.Offset(0, 1) = strDrillDown Then
t03_schueler.Range("B12").Value = lngSchuelerzeile.Row
Call Schueler_aufrufen
Habe deinen Code wie erwähnt eingesetzt, und meinen erstmal auskommentiert.

Sub Zu_Drilldown_Springen()
Dim lngSchuelerzeile As Object
'Dim strSchuelerNameSpalte, strSchuelerVornameSpalte
Dim strDrillDown, strName As String
Dim rng As Range
'strSchuelerNameSpalte = VBA.Split(t02_schuelerliste.Range("A15").Formula, "$")(1)
'strSchuelerVornameSpalte = VBA.Split(t02_schuelerliste.Range("A16").Formula, "$")(1)
strDrillDown = t04_Kalender.Cells(ActiveCell.Row, 11).Value
Set rng = t02_schuelerliste.Range("L15").CurrentRegion.Offset(1, 1)
Set rng = rng.Resize(rng.Rows.Count - 1, 1)
For Each lngSchuelerzeile In rng.Rows
If rng & " " & rng.Offset(0, 1) = strDrillDown Then
t03_schueler.Range("B12").Value = lngSchuelerzeile.Row
Call Schueler_aufrufen
Exit For
End If
Next lngSchuelerzeile
end sub
Kann das daran liegen, dass der Drilldown ein zusammengesetzer Name aus Vorname und Nachname ist, in der Tabelle aber beides getrennt ist?
Anzeige
AW: Ursache: Namensfindung
14.09.2022 06:29:56
MCO
Moin!
Ja, mein Fehler.
rng ist ja der ganze Bereich, lngSchuelerzeile bezeichnet die einzelne Zelle bzw Zeile

If rng & " " & rng.Offset(0, 1) = strDrillDown Then
muss also heißen

If lngSchuelerzeile  & " " & lngSchuelerzeile  .Offset(0, 1) = strDrillDown Then
Gruß, MCO
AW: Ursache: Namensfindung
14.09.2022 07:02:35
BeLangmantl
Hey Ho,
funktioniert leider nicht, wenn ich auf das gelbe Feld klicke passiert gar nichts, selbst mit dem geänderten Range

v

AW: Ursache: Namensfindung
14.09.2022 07:03:47
BeLangmantl
Hey MCO,
leider passiert da auch gar nichts, wenn ich auf das gelbe Feld klicke.
Anzeige
AW: Ursache: Namensfindung
14.09.2022 09:20:58
MCO
Moin!
Du musst schon im Einzelsatz durchgehen und schauen, wie die Variablen belegt sind (Mauszeiger draufhalten)
Anders geht es nicht. Der Codeschnipsel bildet zum einen weder Deine Umgebung noch deine Absichten ab.
Du solltest das Überwachungsfenster aufrufen und die Begriffe hinzufügen, die abgefragt werden.
  • lngSchuel
  • erzeile
  • lngSchuelerzeile.offset(0, 1) Hier waren noch leerzeichen drin: Die waren doch nicht das Problem, oder?
  • strDrillDown
  • lngSchuelerzeile & " " & lngSchuelerzeile .Offset(0, 1) = strDrillDown

  • Schau mal, wie du damit weiterkommst.
    Gruß, MCO
    Anzeige
    AW: Ursache: Namensfindung
    15.09.2022 00:57:29
    ralf_b
    Hallo Benedikt
    Ich habe mir erlaubt in deiner Datei rumzupfuschen. Vielleicht wirfst du ja mal einen Blick drauf. Es ist zwar nicht so ganz das geworden was ich unter einer sauberen Datensatzbehandlung verstehe, aber es scheint wenigstens zu funktionieren.
    Für das Löschen von Usern solltest du dir evtl überlegen ob du diese wirklich komplett rauslöschst oder nur einen entsprechenden Status zuordnest.
    Ich war mir nicht sicher woher die Probenslotsdaten kommen. Deshalb hab ich dort nicht viel dran gemacht.
    https://www.herber.de/bbs/user/155183.xlsm
    Anzeige
    AW: Ursache: Namensfindung
    15.09.2022 06:54:21
    BeLangmantl
    Hallo Ralf,,
    vielen Dank es funktioniert super,
    Danke für deine Mühe.
    liebe Grüße

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige