Clever-Excel-Forum

Normale Version: VBA/ Makros Schaltflächen mit Funktion
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Excelprofis,

ich bin gerade dabei eine Liste zu erstellen, in der es 3 Funktion über 3 Schaltflächen gibt. Da ich das erste Mal die VBA nutze, fehlen mir da noch viele Kenntnisse und Fachbegriffe.

1. Drucken --> das klappt über VBA soweit
2. Filtern --> ich will nach Zeilen mit Inhalt filtern, und die Zeilen ohne Inhalt ausblenden. Bei Zahlenwerten klappt es, nur bei Buchstaben wird trotzdem die Zeile ausgeblendet. Wie kann ich den Code erweitern damit er auch in den B Spalten die Buchstabenwerte berücksichtigt werden? Die Filtergrundlage ist die B Spalte und ich alles was grau hinterlegt ist in der Excel, muss nach dem Filtern mit angezeigt werden.
3. Reset --> Zeigt mir alle ausgeblendeten Zeilen wieder an, klappt also.

Ich habe mal meine Excel angehangen. Ich hoffe ihr könnt mir helfen.

Beste Grüße

Captn
Hallo captn,

eine Möglichkeit wäre z.B., die Bedingung auf die Ascii-Codes der Zeichen > 9 zu erweitern. Die Zahl 9 hat glaube die 57. Allerdings müsstest Du hier zuvor noch prüfen, ob in der Zelle was steht - sonst läuft das in einen Fehler.

If (this > 0 And this < 1000) Or Asc(this) > 57 Then
Hallo schauan,

danke für die schnelle Hilfe. Aber kannst du mir noch sagen was du mit "...prüfen, ob in der Zelle was drin steht" meinst?
Kann mir niemand weiterhelfen?
Huh
Hallo,

nicht optimal aber seinen Zweck sollte es erfüllen

Code:
Private Sub CommandButton2_Click()
'    Range("B9:B242").Select
    For Each rw In Range("B9:B242").Rows
    this = rw.Cells(1).Value
'    If this > 0 And this < 1000 Then
    If Not IsEmpty(rw.Cells(1).Value) Then
        rw.EntireRow.Hidden = False
    Else
        rw.EntireRow.Hidden = True
    End If
    Next rw
End Sub
Hallo captn,

sorry, bin in den letzten Tagen und auch noch bis ins Wochenende etwas im Stress, renoviere gerade mit meinem Sohn nach der Arbeit

Eine Prüfung kann z.B. mit IF und der Angabe einer Bedingung erfolgen, das steht ja im Ausgangscode mit IF ... AND ... Then
AND ist dabei eine logische Funktion, die Bedingungen verknüpfen kann. Daneben gibt es noch andere, z.B. OR, NOT usw.

Mit Asc(this) ermittelt Excel, was das erst Zeichen des Inhalts der Variable this für einen ASCII-Wert hat. Ist Deine Zelle allerdings leer, dann steht in der Variable this auch nur ein Leerstring und der hat kein erstes Zeichen. Du musst also, wie ich bereits schrieb, vor dieser Prüfung eine weitere schreiben, da der Leerstring zu einem Fehler führt.

Also z.B.
Code:
'Prüfen auf Leerstring
If this <>"" Then
    'Prüfen auf Wertebereich 1 bis 999 und Buchstabe am Anfang
    If (this > 0 And this < 1000) Or Asc(this) > 57 Then

    ...

    'Ende Prüfen auf Wertebereich 1 bis 999 und Buchstabe am Anfang
    End If
'Ende Prüfen auf Leerstring
End If