09.07.2021, 22:04
Hallo zusammen,
ich habe aktuell ein Problem bei welchem ich am Verzweifeln bin, weil ich keine Systematik dahinter erkenne. Es geht um nachfolgenden Ausschnitt eines Codes:
Was steckt dahinter: Ich habe im Blatt "Tabelle 1" in der Spalte "L28:L47" Zahlen stehen (Zellen können aber auch teilweise leer sein). Ich möchte nun den angegebenen Bereich nach allen hinterlegten Zahlen durchsuchen (mit der höchsten beginnend) und wenn er eine Zahl gefunden hat etwas ins Blatt "Tabelle 2" kopieren.
Kopiere ich den aufgeführten Code-Schnipsel in ein neues Excel-Blatt, funktioniert es einwandfrei. Im kompletten Programm kommt es beim Durchlauf aber immer wieder zu einem Fehler. Er zeigt mir dann in der Zeile "MsgBox..." keine Zahl an, obwohl in den zu durchsuchenden Zellen definitiv Zahlen hinterlegt sind.
Des Weiteren kommt es dann zu einem "Laufzeitfehler 91, Objektvariable oder with-Blockvariable nicht festgelegt" sobald er in der Zeile "If Not maxzahl is Nothing..." ist.
Ich verstehe nicht warum. Auch weil es im kompletten Programm manchmal funktioniert und manchmal nicht. Es reicht teils Excel neu zu starten, oder den Suchbereich zu verändern, oder Teile des restlichen Codes auszukommentieren und es läuft plötzlich wieder, nur um beim erneuten Durchlauf wieder den Fehler anzuzeigen.
Kann es sein, dass in den nachfolgenden Programmzeilen (oder davor) etwas hinterlegt ist, dass diesen Fehler provoziert? Sind meine Variablen falsch deklariert?
Wenn jemand einen Tipp für mich hätte woran es liegen könnte, wäre ich sehr dankbar.
Danke und Gruß
Sebbo
ich habe aktuell ein Problem bei welchem ich am Verzweifeln bin, weil ich keine Systematik dahinter erkenne. Es geht um nachfolgenden Ausschnitt eines Codes:
Code:
Dim g as integer
dim y as integer
Dim maxzahl As Range
g = 0
For y = 1 To 20
Set maxzahl = Worksheets("Tabelle 1").Range("L28:L47").Find(What:=Application.WorksheetFunction.Large(Worksheets("Tabelle 1").Range("L28:L47"), y))
MsgBox maxzahl
If Not maxzahl Is Nothing And maxzahl.Offset(0, 1) = "" And maxzahl > 1 Then
GoTo line40
Else
GoTo line50
End If
line40:
g = g + 1
Worksheets("Tabelle 2").Cells(83, 61 + g) = maxzahl.Offset(0, -7)
Worksheets("Tabelle 2").Cells(83, 62 + g) = maxzahl.Offset(0, -6)
line50:
Next
Was steckt dahinter: Ich habe im Blatt "Tabelle 1" in der Spalte "L28:L47" Zahlen stehen (Zellen können aber auch teilweise leer sein). Ich möchte nun den angegebenen Bereich nach allen hinterlegten Zahlen durchsuchen (mit der höchsten beginnend) und wenn er eine Zahl gefunden hat etwas ins Blatt "Tabelle 2" kopieren.
Kopiere ich den aufgeführten Code-Schnipsel in ein neues Excel-Blatt, funktioniert es einwandfrei. Im kompletten Programm kommt es beim Durchlauf aber immer wieder zu einem Fehler. Er zeigt mir dann in der Zeile "MsgBox..." keine Zahl an, obwohl in den zu durchsuchenden Zellen definitiv Zahlen hinterlegt sind.
Des Weiteren kommt es dann zu einem "Laufzeitfehler 91, Objektvariable oder with-Blockvariable nicht festgelegt" sobald er in der Zeile "If Not maxzahl is Nothing..." ist.
Ich verstehe nicht warum. Auch weil es im kompletten Programm manchmal funktioniert und manchmal nicht. Es reicht teils Excel neu zu starten, oder den Suchbereich zu verändern, oder Teile des restlichen Codes auszukommentieren und es läuft plötzlich wieder, nur um beim erneuten Durchlauf wieder den Fehler anzuzeigen.
Kann es sein, dass in den nachfolgenden Programmzeilen (oder davor) etwas hinterlegt ist, dass diesen Fehler provoziert? Sind meine Variablen falsch deklariert?
Wenn jemand einen Tipp für mich hätte woran es liegen könnte, wäre ich sehr dankbar.
Danke und Gruß
Sebbo