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

Fehlermeldung bei Ausführung über Button

Fehlermeldung bei Ausführung über Button
13.01.2021 13:43:29
Manuel
Schönen guten Tag,
dieses Forum hat mir schon bei vielen Problemen geholfen, aber diesmal konnte ich nichts passendes finden.
Ich habe folgenden Code:

Sub Schaltfläche1_Klicken()
Dim Datum As Date
Dim Spalte As Range
Dim Zielspalte As Integer
Datum = DateSerial(Year(Date), Month(Date), 1)
Set Spalte = Worksheets("Übersicht").Rows(4).Find(what:=Format(Datum, "MMM YY"), LookIn:= _
xlValues)
Zielspalte = Spalte.Column

Wenn ich den Code per Buttonklick ausführen will, wird ständig folgende Fehlermeldung gezeigt:
Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt".
Diese Meldung bezieht sich dann auf:

Zielspalte = Spalte.Column

Wenn ich den Code jedoch direkt aus dem Editor ausführe, läuft alles sauber durch.
Ich verstehe nun nicht, wieso das eine, aber das andere nicht geht.
Vielleicht könnt Ihr mich hier erleuchten.
Vielen Dank im Voraus und viele Grüße
Manuel

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

Betreff
Datum
Anwender
Anzeige
AW: Fehlermeldung bei Ausführung über Button
13.01.2021 13:51:55
onur
MS:
Range.Column-Eigenschaft (Excel)
Gibt die erste Spalte am Anfang des angegebenen Bereichs als Zahl zurück. Schreibgeschützter Long-Wert.
AW: Fehlermeldung bei Ausführung über Button
13.01.2021 13:53:34
ralf_b
du hast das suchergebnis nicht auf Nothing geprüft. Wird nichts gefunden ist Spalte = nothing also kein Objekt.
AW: Fehlermeldung bei Ausführung über Button
13.01.2021 14:08:03
Manuel
Hallo Ihr Beiden,
vielen Dank für Eure schnelle Antworten.
An sich, muss er das Datum immer finden, da es zu 100% auftaucht.
Der Code funktioniert ja an sich auch - zumindest, wenn ich ihn im im Editor starte.
Es klappt nur nie, wenn ich über den Button versuche das Makro zu starten.
Ich habe den Variable nun auch als Long deklariert, was jedoch nichts am Problem ändert.
Anzeige
AW: Fehlermeldung bei Ausführung über Button
13.01.2021 14:14:10
onur
Steht den in den zu durchsuchenden Zellen ein Datum oder ein Text?
Was steht z,B, jetzt drin und was, wenn du die Formatierung auf Standar änderst?
Du suchst ja schlieeslich nach "Format(...)", also nach einem Text.
AW: Fehlermeldung bei Ausführung über Button
13.01.2021 14:15:43
ralf_b
was hast du als long deklariert?
sonst Zielspalte as Long
weil eine Range ist ein Objekt. und eine SpaltenNr passt nicht auf ein Rangeobjekt.
dann set Zielspalte = ....
AW: Fehlermeldung bei Ausführung über Button
13.01.2021 14:39:04
Manuel
In der Tabelle habe ich in einer Zeile die Datumsreihenfolge stehen.
Damit ich diese einfacher erzeugen und fortführen konnte, habe ich dafür
=DATUM(TEXT(B4;"JJJJ");TEXT(B4;"MM")+1;1)
genutzt.
So orientiert sich alles am Vormonat.
Es ist eine benutzerdefinierte Formatierung drin ("MMM YY" -> Dez 20, Jan 21,..).
Das geht von Anfang 2019 bis aktuell Ende 2021.
Mittels Datum sucht er im Grunde nach dem aktuellen Monat (Jan 21) und geht dann in die nächsten Schritte.
Ich habe die Zielspalte as Long definiert, was jedoch nichts ändert.
Set hilft nichts, da das nur bei Objekten geht und Zielspalte as Range funktioniert nicht mit Zielspalte.column.
Ich verstehe nicht wieso es mal geht und mal nicht, wobei es jetzt auch im VBA-Editor nicht mehr geht.
Anzeige
AW: Fehlermeldung bei Ausführung über Button
13.01.2021 14:44:38
onur
"Ich habe die Zielspalte as Long definiert, was jedoch nichts ändert." - Klar, weil das der ZWEITE Fehler ist, der erst auftauchen würde, wenn der Code überhaupt etwas finden würde.
Nochmal: Du suchst nach TEXT in einer Zeile mit Datum´s.
AW: Fehlermeldung bei Ausführung über Button
13.01.2021 15:26:54
Manuel
Das hat gedauert bis der Groschen gefallen ist.
Ihr habt Recht.
Ich habe nun, um es einfacher zu machen, alle Datumsangaben in Textform hinterlegt und jetzt auch einen Weg gefunden die Reihe ohne viel Aufwand zu ergänzen.
Sorry, dass ich mich so blöd angestellt habe.
Und nochmals vielen Dank.
AW: Fehlermeldung bei Ausführung über Button
13.01.2021 15:35:43
Daniel
Hi
kannst du die Datei mal hochladen?
Suche nach Datum ist komplex, das muss man sich genauer anschaun.
ansonsten, muss die Spalte überhaupt gesucht werden oder kann man sie auch berechnen?
immer dann wenn die Datumswerte regelmäßig, vollständig und sortiert vorliegen, muss die zu einem Datum gehörige Spalte nicht gesucht werden, sondern man kann sie berechnen, was vorzuziehen ist, da die Datumssuche problematisch sein kann.
btw der zwischenschritt über DATUM ist nicht notwendig.
du bekommst mit =Format(Date, "MMM YY") das selbe Ergebnis, hierfür brauchst du nicht zwingend den Monatsersten.
Zielspalte als Integer passt schon, die Anzahl der Spalten überschreitet den Zahlenraum von Integer nicht. hat man ZielZeile siehts anders aus, da kann Long erforderlich sein.
Aber generell kann man auf Integer verzichten und nur Long für Ganzzahlen verwendent, Integer bringt keinen Vorteil.
auch wenn der gesuchte Wert gefunden werden müsste, eine Abfrage ob er das auch wurde, würde ich bei .FIND immer einbauen, einfach zu Absicherung und zur einfacheren Fehlersuche falls was nicht klappt.
Set Spalte = ….Find(…)
if Spalte is Noting then
Msgbox Datum & " konnte nicht in Zeile 4 gefunden werden."
Exit Sub
end if

Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige