Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
944to948
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
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nach Debugger Makro dauerhaft deaktiviert?!

Nach Debugger Makro dauerhaft deaktiviert?!
01.02.2008 16:45:16
Andreas
Hallo lieber Herber Fans,
ich habe ein kleines Makro Problem. Es ist ein AutoFilter Makro, welches automatisch nach Eingabe im definierten Zielbereich die Filterung vornimmt. Tatkräftige Unterstützung habe ich hierbei von Karin erfahren. Das mysteriöse an diesem Makro ist, daß es – wenn einmal der Debugger ausgelöst wurde – nie wieder „anspringt“. Nur ein komplettes Schließen von Excel und dem VBA Editor bringt es wieder zum Laufen. Damit ist aber nicht die Ursache für dieses Verhalten geklärt.
Der Debugger springt an, wenn ich eine Zeile überhalb der Suchzeile, lösche. Da die Zeile, in der die Suchbegriffe stehen sollen über inZeile = Range(„Zielbereich“).row definiert ist, ist diese Angabe flexibel und mit der Prüfung If Target.Row = inZeile gibt es keine Probleme.
Aber dennoch springt der Debugger an und danach muß läuft es auch nie wieder. Der Debugger springt auch in einer Zeile an, in der ich es nicht vermuten würde.
Ich habe alles im Code kommentiert und hoffe, daß ihr mir den Hinweis auf meinen Denkfehler geben könnt.
https://www.herber.de/bbs/user/49578.xls
Vielen Dank für Eure Mühe.
Mit den besten Grüßen für das bevorstehende Wochenende,
Andreas Hanisch

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach Debugger Makro dauerhaft deaktiviert?!
01.02.2008 16:48:00
Jan
Hi

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim inSpalte As Integer
Dim inZeile As Long
inZeile = Range("Zielbereich").Row
'    MsgBox inZeile
Application.EnableEvents = False
On Error GoTo Mist
If Target.Row = inZeile And Target.Column = _
ActiveSheet.AutoFilter.Range(1).Column Then                                         ' _
was genau hat es mit diesem Range(1).column auf sich. Als ich diesen Range über Messagebox anzeigen lies,_
With ActiveSheet.AutoFilter.Range                                                   'um  _
den Sinn zu erfassen, war das Ergebnis immer 1.
inSpalte = Target.Column + 1 - ActiveSheet.AutoFilter.Range(1).Column
If Target  "Bitte Suchbegriff eingeben" And Target  "" Then                 ' _
Hier stoppt der Debugger mit der Meldung: "Typen unverträglich". Aktion vorher. Ich habe eine Zeile eingefügt oder gelöscht
.AutoFilter Field:=inSpalte, Criteria1:="=*" & Target & "*"                 ' _
und dadurch den Range "Zeile1" verschoben, demnach auch inZeile. Aber der Debugger stoppt nicht bei inZeile, sondern erst hier?!
Else                                                                            'Auß _
erdem funktionieren nach dem Anspringen des Debuggers keine Makros mehr, auch wenn ich das Projekt zurückgesetzt habe._
.AutoFilter Field:=inSpalte                                                 ' _
ich muß Excel dann als Applikation komplett neu starten. Nur Datei schließen reicht nicht.
Target = "Bitte Suchbegriff eingeben"
End If
End With
End If
Mist:
Application.EnableEvents = True
End Sub


mfg Jan

Anzeige
AW: Nach Debugger Makro dauerhaft deaktiviert?!
01.02.2008 17:20:52
Andreas
Hey Jan,
vielen Dank für die schnelle Antwort! Es funktioniert wunderbar und hat mich echt ein Stück weitergebracht.
Vielen Dank und beste Wünsche für das bevorstehende Wochenende!!!
Gruß, Andreas

AW: Nach Debugger Makro dauerhaft deaktiviert?!
01.02.2008 17:10:00
Josef
Hallo Andreas,
das kommt, weil beim löschen einer Zeile "Target" aus allen Zellen einer Zeile besteht und der Code das nicht verarbeitet.
Das nachher der Code nicht mehr läuft, liegt an "Application.EnableEvents = False", das sollte man auch nie ohne Fehlerbehandlung einsetzen.
So gibt es keine Probleme.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim inSpalte As Integer
Dim inZeile As Long

On Error GoTo ErrExit

inZeile = Range("Zielbereich").Row

If Target.Row = inZeile And Target.Column < Me.AutoFilter.Range(1).Column + _
    Me.AutoFilter.Filters.Count And Target.Column >= _
    Me.AutoFilter.Range(1).Column And Target.Count = 1 Then
    
    Application.EnableEvents = False
    
    With Me.AutoFilter.Range
        inSpalte = Target.Column + 1 - Me.AutoFilter.Range(1).Column
        If Target <> "Bitte Suchbegriff eingeben" And Target <> "" Then
            .AutoFilter Field:=inSpalte, Criteria1:="=*" & Target & "*"
        Else
            .AutoFilter Field:=inSpalte
            Target = "Bitte Suchbegriff eingeben"
        End If
    End With
End If

ErrExit:

If Err.Number > 0 Then
    MsgBox Err.Number & vbLf & Err.Description, vbExclamation, "Fehler"
End If
Application.EnableEvents = True
End Sub


Gruß Sepp



Anzeige
AW: Nach Debugger Makro dauerhaft deaktiviert?!
01.02.2008 17:24:00
Andreas
Guten Abend Sepp,
Dir auch vielen Dank für die Code Modifikation und insbesondere für die Erklärung der Ursache. Werde mir das mit dem ErrorHandling merken.
Schönes Wochendende!
Grüße, Andreas Hanisch

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige