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

Fehler bei Intersection und if

Fehler bei Intersection und if
03.04.2017 12:14:25
Jonas
Hallo,
Seit ein paar Wochen arbeite ich nun an einer Excel Tabelle mit VBA Makros.
Das ganze funktioniert auch meistens so wie es soll nur in manchen Fällen bekomme ich einen _ Fehler bei diesem Code:

Sub MSG()
Dim Vorne As Integer
Dim Hint As Integer
Dim Ges As Integer
Dim Anzahl As Integer
Dim Sges As String
Set Zelle = ActiveCell.Offset(0, 0)
If Not Application.Intersect(ActiveCell, AuserKraft) Is Nothing Then
Ges = Range(Zelle.Address).Value
Sges = Range(Zelle.Address).Text
Anzahl = Len(Sges)
If Anzahl 

Dabei meckert er bei der Zeile
If Not Application.Intersect(ActiveCell, AuserKraft) Is Nothing Then

Und gibt den Fehler aus: Laufzeitfehler 5 Ungültiger Prozeduraufruf oder ungültiges Argument.
Das komische an der Sache ist das es manchmal funktioniert und manchmal nicht.
Zusatzinfo: Variablen die nicht Lokal definiert sind, sind Public und stehen weiter oben in meinem Code.

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei Intersection und if
03.04.2017 12:24:15
Rudi
Hallo,
wie und wo wird Auserkraft gesetzt?
Gruß
Rudi
AW: Fehler bei Intersection und if
03.04.2017 14:28:52
Jonas
Hallo,
Auf Schreibfehler hab ich es noch einmal überprüft und stört euch nicht an der Variablen Namen die kann ich so für mich am besten zuordnen. Hier der Anfang meines Moduls:
Public Zelle As Range
Public AuserKraft As Range
Public PausenP As String
Public ErgebnisPausen As Double
Public min As Double
Public AuserTrue As Boolean
Private Sub Auto_Open()
Workbook_Open1
Workbook_Open
Set Zelle = ActiveCell
Set AuserKraft = Union(Range("C2:H32"), Range("M6:M10"))
min = 1 / 60 / 24
AuserTrue = False
End Sub

Ich hoffe das hilft weiter
Gruß Jonas
Anzeige
AW: Fehler bei Intersection und if
03.04.2017 12:26:06
ChrisL
Hi Jonas
Woher kommt die Variable "AuserKraft"?
Welcher Wert enthält die Variable (vielleicht Nothing)?
Ausser vs. Auser
cu
Chris
AW: Fehler bei Intersection und if
03.04.2017 14:24:34
Jonas
Nothing kann sie nicht sein da:
Public Zelle As Range
Public AuserKraft As Range
Public PausenP As String
Public ErgebnisPausen As Double
Public min As Double
Public AuserTrue As Boolean
Private Sub Auto_Open()
Workbook_Open1
Workbook_Open
Set Zelle = ActiveCell
Set AuserKraft = Union(Range("C2:H32"), Range("M6:M10"))
min = 1 / 60 / 24
AuserTrue = False
End Sub

AW: Fehler bei Intersection und if
03.04.2017 14:36:13
ChrisL
Hi Jonas
Hast du die Public Deklaration in einem Standardmodul? (nicht in DieseArbeitsmappe)
Mach mal vor der Zeile Intersect
MsgBox ActiveCell.Address
MsgBox AuserKraft.Address
Ich würde wetten, eines von beidem ist leer :)
Prüfe auch mal ob das Auto_Open Makro überhaupt abläuft. Auto_Open ist ein alter Zopf und sollte durch ein Workbook_Open Ereignis ersetzt werden. Dein Aufruf von Workbook_Open und Open1 innerhalb von Auto_Open ist verwirrend.
cu
Chris
Anzeige
AW: Fehler bei Intersection und if
03.04.2017 14:45:25
Jonas
Hi Chris,
Also AuserKraft ist tatsächlich leer was mich wundert, da es ja mal funktioniert mal nicht und wenn es nicht funktioniert, dann reicht es die Tabelle neu zu öffnen und es klappt wieder.
Und hier noch der code zu Auto_Open und der Workbook-Sache:

Private Sub Auto_Open()
Workbook_Open1
Workbook_Open
Set Zelle = ActiveCell
Set AuserKraft = Union(Range("C2:H32"), Range("M6:M10"))
min = 1 / 60 / 24
AuserTrue = False
End Sub
Sub Workbook_Open1()
Application.OnKey "~", "MSG"
End Sub
Sub Workbook_Open()
Application.OnKey "{DELETE}", "Change2"
End Sub
Gruß Jonas
Anzeige
AW: Fehler bei Intersection und if
03.04.2017 14:52:35
ChrisL
Hi Jonas
Einfach mal den ganzen Code ins Workbook_Open Ereignis rein (unter DieseArbeitsmappe):
Private Sub Workbook_Open()
Application.OnKey "~", "MSG"
Application.OnKey "{DELETE}", "Change2"
Set Zelle = ActiveCell
With Worksheets("Tabelle1")
Set AuserKraft = Union(.Range("C2:H32"), .Range("M6:M10"))
End With
min = 1 / 60 / 24
AuserTrue = False
End Sub

Zur Sicherheit könnte man die Range noch mit dem Tabellenblatt referenzieren.
Ansonsten bitte um Beispieldatei, damit man mal prüfen kann, wo welcher Code untergebracht ist.
cu
Chris
Anzeige
AW: Fehler bei Intersection und if
03.04.2017 15:09:18
Jonas
Hi Chris,
ich hab das jetzt mal so wie du es geschrieben hast bearbeitet. Problem ist das jetzt, das war auch der Grund für das doppelte Workbook und das Auto_open, beim Tastendruck nix passiert. Ich glaub schon das man das alles in ein Workbook schreiben kann, aber so klappt es irgendwie nicht hier mal die Tabelle: https://www.herber.de/bbs/user/112587.xlsm
Vielen Dank & Gruß
Jonas
AW: Fehler bei Intersection und if
03.04.2017 15:38:36
ChrisL
Hi Jonas
Workbook_Open muss in das Modul "DieseArbeitsmappe". Der Rest (i.e. Public Deklaration) ins Standardmodul, so wie du es hast.
Tabelle1 musst du natürlich ändern.
Wenn du die Variable "Zelle" als Public deklarierst, dann solltest du die Deklaration nicht noch einmal lokal (Pausenpauschale) machen.
cu
Chris
Anzeige
AW: Fehler bei Intersection und if
03.04.2017 16:00:26
Jonas
Hi Chris,
ok Danke :) das klappt soweit jetzt habe ich leider aber immer noch den gleichen Fehler 5.
Gruß Jonas
AW: Fehler bei Intersection und if
03.04.2017 16:19:02
ChrisL
Hi Jonas
Dann lade noch einmal die Beispieldatei... Und wenn die Public Deklaration nicht im Standardmodul ist, dann ziehe ich dir die Ohren lang :)
cu
Chris
AW: Fehler bei Intersection und if
03.04.2017 16:21:49
Jonas
Hi Chris,
hier die Datei: https://www.herber.de/bbs/user/112593.xlsm
aber ich gehe davon aus das meine Ohren so bleiben wie sie sind, sollte nämlich im Standard sein :)
Gruß Jonas
AW: Fehler bei Intersection und if
03.04.2017 16:23:33
Jonas
Ich hab gerade gesehen da fehlt ein "Set" das ist aber nicht de eig. Fehler.
Anzeige
AW: Fehler bei Intersection und if
03.04.2017 16:33:26
Jonas
Hi Chris,
ich konnte jetzt herausfinden wie das Zustande kommt:
Wenn ich die Excel öffne und ganz normal nutze, passiert nix.
Wenn ich dann aber im Code was ändere egal was auch wenn ich das dann direkt wieder zurück ändere, dann kommt der Fehler mit dem exact gleichen Code. Vllt hilft das ja weiter.
Gruß Jonas
AW: Fehler bei Intersection und if
03.04.2017 16:46:15
Rudi
Hallo,
is doch klar!
Wenn du was am Code (egal welchem) änderst, werden alle Variabeln zurückgesetzt.
Du musst die Mappe schließen und neu öffnen oder Workbook_open von Hand anstoßen.
Gruß
Rudi
AW: Fehler bei Intersection und if
03.04.2017 16:48:57
Jonas
Hallo Rudi,
danke für den Tipp, war bisschen im Tunnel, aber schau mal auf meine andere Antwort ist mir nämlich inzwischen auch klar geworden. Trotzdem dankeschön :)
Gruß Jonas
Anzeige
AW: Fehler bei Intersection und if
03.04.2017 16:38:17
Jonas
Ok es liegt einfach daran das wenn ich im Debugmodus den Code stoppe und ihn dann wieder starte dann funktioniert er plötzlich nicht mehr was ziemlich merkwürdig ist.
AW: Fehler bei Intersection und if
03.04.2017 16:42:22
ChrisL
Hi Jonas
Gute Nachricht: Die Ohren bleiben dran :)
Schlechte Nachricht: Wenn du im Debugger auf "Beenden" drückst, dann geht der Wert der Public Variable tatsächlich verloren und dies lässt sich nicht vermeiden. Ich denke es liegt daran, dass hinter dem Button ein "End" Befehl steckt.
cu
Chris
AW: Fehler bei Intersection und if
03.04.2017 16:46:29
Jonas
Hi Chris
wie haben uns genau verpasst xD. Guck mal was ich schon geschrieben habe.
Gruß Jonas
AW: Fehler bei Intersection und if
03.04.2017 16:45:19
Jonas
Hi Chris,
erstmal ein riesen DANKE für deine Hilfe und Geduld :) . Nachdem du mir jetzt gezeigt hast wie ich das am besten strukturiere, habe ich selbst rausgefunden wie ich es lösen kann.
With Worksheets("Zeitrechnung")
Set AuserKraft = Union(.Range("C2:H32"), .Range("M6:M10"))
End With

Diesen Code habe ich jetzt einfach vor das Change gesetzt somit kann es niemals leer sein, was nämlich der Fehler war, denn wenn der Code einmal still stand war der Wert in AuserKraft weg und konnte nur durch das Wiederöffnen der Tabelle wieder "eingelesen" werden. Und so liest er ihn jetzt vor jeder "Operation" ein.
Vielen Dank & Gruß :)
Jonas
Anzeige
Nachtrag
03.04.2017 16:19:06
Jonas
Ich kann es leider auch nicht rekonstruieren also weis ich nicht was genau dafür sorgt das der Fehler auftritt, da es ja nach erneutem Öffnen wieder geht.
AW: Fehler bei Intersection und if
03.04.2017 14:16:33
Jonas
Hallo,
Auf Schreibfehler hab ich es noch einmal überprüft und stört euch nicht an der Variablen Namen die kann ich so für mich am besten zuordnen. Hier der Anfang meines Moduls:
Public Zelle As Range
Public AuserKraft As Range
Public PausenP As String
Public ErgebnisPausen As Double
Public min As Double
Public AuserTrue As Boolean
Private Sub Auto_Open()
Workbook_Open1
Workbook_Open
Set Zelle = ActiveCell
Set AuserKraft = Union(Range("C2:H32"), Range("M6:M10"))
min = 1 / 60 / 24
AuserTrue = False
End Sub
Ich hoffe das hilft weiter
Gruß Jonas
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige