vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Excel: Autofilter Ein-Auschalten über neuen Button.. 
Autor: RalfH
Datum: 24.02.03 13:51

Hi Galaxydriver,

mit folgendem Code tust Du nun alle möglichen Fehler von vornherein ausschließen.
[color=green]' Diese Methode aktiviert den Excel-Autofilter
Sub Autofilter_Activate()
  Dim Zelle As Range
 
  [color=green]' prüft, ob eine Arbeitsmappe aktiv ist, wenn nicht
  [color=green]' wird eine Meldung ausgegeben und der SUB verlassen
  If ActiveWindow Is Nothing Then
    MsgBox "Autofilter-Funktionen können nur in Arbeitsmappen verwendet werden!"
    Exit Sub
  End If
 
  [color=green]' prüft, ob die aktive Arbeitmappe minimiert ist, wenn ja
  [color=green]' wird eine Meldung ausgegeben und der SUB verlassen
  If ActiveWindow.WindowState = xlMinimized Then
    MsgBox "Autofilter-Funktionen können nur in sichtbaren und nicht" & _
      "minimierten Arbeitsmappen verwendet werden!"
    Exit Sub
  End If
 
  [color=green]' prüft, das aktuelle Arbeitsblatt ein Tabellenblatt ist,
  [color=green]' wenn nicht wird eine Meldung ausgegeben und der SUB 
  ' verlassen
  If ActiveSheet.Type <> xlWorksheet Then
    MsgBox "Autofilter-Funktionen sind nur in Tabellenblättern möglich.!"
    Exit Sub
  End If
 
  [color=green]' prüft, ob der Inhalt des aktuellen Arbeitsblattes
  [color=green]' geschützt wurde, wenn ja wird eine Meldung ausgegeben
  [color=green]' und der SUB verlassen
  If ActiveSheet.ProtectContents Then
    MsgBox "Der Inhalt der Arbeitsblattes ist geschützt. Die" & _
      "Autofilter-Funktionen kann nicht ausgeführt werden!"
    Exit Sub
  End If
 
  [color=green]' prüft, ob bereits ein Autofilter auf dem aktuellen
  [color=green]' Arbeitsblatt aktiv ist, wenn ja wird eine Meldung
  [color=green]' ausgegeben und der SUB verlassen
  If ActiveSheet.AutoFilterMode Then
    MsgBox "Sie dürfen pro Blatt maximal 1 Autofilter aktiviert!"
    Exit Sub
  End If
 
  [color=green]' prüft, ob die Markierung ein Zellenbereich ist, wenn 
  ' nicht
  [color=green]' wird eine Meldung ausgegeben und der SUB verlassen
  If TypeName(Selection) <> "Range" Then
    MsgBox "Bitte markieren Sie einen Zellenbereich!"
    Exit Sub
  End If
 
  [color=green]' prüft, ob eine Mehrfach-Markierung vorhanden ist, wenn 
  ' nicht
  [color=green]' wird eine Meldung ausgegeben und der SUB verlassen
  If Selection.Areas.Count > 1 Then
    MsgBox "Wählen Sie bitte nur einen Bereich aus!"
    Exit Sub
  End If
 
 [color=green] ' prüft, ob die markierten Zellen Werte enthalten,
  [color=green]' sobald eine Zelle nicht leer ist, wird der
  [color=green]' Autofilter aktiviert und der SUB verlassen
  For Each Zelle In Selection
    If IsEmpty(Zelle) = False Then
      Selection.AutoFilter
      Exit Sub
    End If
  Next Zelle
 
  [color=green]' sämtliche markierte Zellen sind leer --> Meldung
  MsgBox "Bitte Bereich markieren und Daten eingeben!"
 
End Sub
 
[color=green]' Diese Methode schaltet den Excel-Autofilter wieder ab
Sub Autofilter_Deactivate()
 
  [color=green]' prüft, ob eine Arbeitsmappe aktiv ist, wenn nicht
  [color=green]' wird eine Meldung ausgegeben und der SUB verlassen
  If ActiveWindow Is Nothing Then
    MsgBox "Autofilter-Funktionen können nur in Arbeitsmappen verwendet werden!"
    Exit Sub
  End If
 
  [color=green]' prüft, ob die aktive Arbeitmappe minimiert ist, wenn ja
  [color=green]' wird eine Meldung ausgegeben und der SUB verlassen
  If ActiveWindow.WindowState = xlMinimized Then
    MsgBox "Autofilter-Funktionen können nur in sichtbaren und nicht" & _
      "minimierten Arbeitsmappen verwendet werden!"
    Exit Sub
  End If
 
  [color=green]' prüft, das aktuelle Arbeitsblatt ein Tabellenblatt ist,
  [color=green]' wenn nicht wird eine Meldung ausgegeben und der SUB 
  ' verlassen
  If ActiveSheet.Type <> xlWorksheet Then
    MsgBox "Autofilter-Funktionen sind nur in Tabellenblättern möglich.!"
    Exit Sub
  End If
 
  [color=green]' prüft, ob der Inhalt des aktuellen Arbeitsblattes
  [color=green]' geschützt wurde, wenn ja wird eine Meldung ausgegeben
  [color=green]' und der SUB verlassen
  If ActiveSheet.ProtectContents Then
    MsgBox "Der Inhalt der Arbeitsblattes ist geschützt. Die" & _
      "Autofilter-Funktionen kann nicht ausgeführt werden!"
    Exit Sub
  End If
 
  [color=green]' prüft, ob ein Autofilter aktiv ist, wenn nicht
  [color=green]' wird eine Meldung ausgegeben und der SUB verlassen
  If ActiveSheet.AutoFilterMode = False Then
    MsgBox "Kein Autofilter aktiviert!"
    Exit Sub
  End If
 
  [color=green]' Autofilter deaktivieren
  ActiveSheet.Cells.AutoFilter
 
End Sub

Viel Spass,
R@lf

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Excel: Autofilter Ein-Auschalten über neuen Button..193Galaxydriver18.02.03 14:57
Re: Excel: Autofilter Ein-Auschalten über neuen Button..597RalfH19.02.03 09:22
Re: Excel: Autofilter Ein-Auschalten über neuen Button..67Galaxydriver19.02.03 12:44
Re: Excel: Autofilter Ein-Auschalten über neuen Button..556RalfH19.02.03 13:04
Re: Excel: Autofilter Ein-Auschalten über neuen Button..66Galaxydriver19.02.03 14:16
Re: Excel: Autofilter Ein-Auschalten über neuen Button..68Heinz21.02.03 15:26
Re: Excel: Autofilter Ein-Auschalten über neuen Button..650RalfH24.02.03 13:51
Re: Excel: Autofilter Ein-Auschalten über neuen Button..66Heinz19.02.03 13:02
Hallo Dieter, Hallo Moni, hört ihr mit ?73Heinz21.02.03 20:43
Re: Hallo Dieter, Hallo Moni, hört ihr mit ?560ModeratorMoni21.02.03 22:32
Re: Hallo Dieter, Hallo Moni, hört ihr mit ?600RalfH24.02.03 13:43
Re: Hallo Dieter, Hallo Moni, hört ihr mit ?58Heinz_24.02.03 20:47
Re: Hallo Dieter, Hallo Moni, hört ihr mit ?549RalfH25.02.03 08:24
Re: Hallo Dieter, Hallo Moni, hört ihr mit ?58Heinz_25.02.03 13:02

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel