Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel VBA IF / IF Not

Forumthread: Excel VBA IF / IF Not

Excel VBA IF / IF Not
23.09.2015 12:27:12
Benedikt
Guten morgen,
da bin ich wieder um zu nerven :)
wollte nur kurz fragen was hier das Problem ist.
Ich möchte damit gerne wenn die Datei offen ist diese öffnen und wenn diese geschlossen ist normal öffnen
Sub Schaltfläche1_Klickenkalk()
If Workbooks("Kalkulation").Open Then Workbooks("Kalkulation").Activate
If Not Then Workbooks("Kalkulation").Open
End Sub
Vielen dank schonmal
MFG
Benedikt

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Falsche If-Struktur
23.09.2015 12:37:37
Michael
Hallo Benedikt!
So, wie Du es jetzt hast, funktioniert eben leider eine If-Abfrage nicht.
Aber zB so:
Sub Schaltfläche1_Klickenkalk()
If Workbooks("Kalkulation").Open Then
Workbooks("Kalkulation").Activate
Else:
Workbooks("Kalkulation").Open
End If
End Sub
In dieser Konstruktion wäre das If...then...else mit einer Wenn-Formel vergleichbar; Else ist der "Sonst"-Teil.
LG
Michael

Anzeige
die Struktur ...
23.09.2015 12:42:54
Rudi
Hallo Michael,
... ist ja jetzt OK. Der Rest aber Schrott.
Gruß
Rudi

AW: Haha... das stimmt wohl...
23.09.2015 12:49:29
Michael
...aber Du verlangst doch nicht im Ernst von mir, dass ich in der Mittagspause mein ganzes Hirn einschalte, oder? ;-)
Gut, dass Ihr schon richtig korrigiert habt...
LG
Michael

Anzeige
AW: Haha... das stimmt wohl...
23.09.2015 12:57:05
Rudi
Hallo,
dass ich in der Mittagspause mein ganzes Hirn einschalte
Ich schalte es nur in der Mittagspause ein!
Den Rest der Zeit liegt es an der Pforte im Schließfach.
Gruß
Rudi

AW: Deswegen bist Du mir auch XL-mäßig überlegen..
23.09.2015 13:03:05
Michael
Rudi,
...Du hast klar besser verstanden was Effizienz ist und "wie man's macht".
Den Rest der Zeit liegt es an der Pforte im Schließfach.
Schließfach hab ich keins, aber ich werd's für den Rest des Nachmittags mal in meinen Ordnerschrank tun...
Schönen Nachmittag noch!
LG
Michael

Anzeige
AW: Excel VBA IF / IF Not
23.09.2015 12:39:29
Daniel
Hi
am einfachsten so:
On Error Resume Next
Workbooks("Kalkulation").Activate
If Err  0 then Workbooks.Open "Kalkulation.xlsx"
On Error Goto 0
dh du versucht erstmal die Datei zu aktivieren.
Wenn das fehlschlägt, weil die Datei nicht geöffnet ist, dann gibt es einen Fehler.
dieser Fehler würde zu einem Abbruch führen, was aber durch das "On Error Resume Next" verhindert wird, weil dieses VBA dazu veranlasst, bei einem Fehler einfach mit dem nächsten Programmschritt weiter zu machen.
Mit der System-Variablen Err kann man dann überprüfen, ob ein Fehler passiert ist oder nicht.
Err hat normalerweise den Wert 0, und sobald ein Fehler passiert, bekommst sie als Wert die Fehlernummer, welche normalerweise in der Fehlermeldung ausgegeben würde.
Mit "On Error Goto 0" schaltest du das normale Fehlerverhalten wieder ein (Abbruch und Meldung)
in Workbooks.Open musst du den Dateinamen korrekt und vollständig angeben, dh mit Pfad davor und Dateiendung.
Gruß Daniel

Anzeige
AW: Excel VBA IF / IF Not
23.09.2015 12:40:11
Rudi
Hallo,
was hier das Problem ist.
Die Syntax.
Du kannst nicht einfach irgendwas erfinden.
Sub yyy()
Dim wkb As Workbook
On Error Resume Next
Set wkb = Workbooks("Kalkulation.xlsx")
On Error GoTo 0
If wkb Is Nothing Then
Workbooks.Open "c:\test\kalkulation.xlsx"
Else
wkb.Activate
End If
End Sub
Gruß
Rudi

Anzeige
A bissala Senf
23.09.2015 17:24:50
Michael
Hi zusammen,
ein Blick in die xl-faqs:
https://www.herber.de/xlfaq/index.html
lohnt sich immer:
https://www.herber.de/mailing/Pruefen_ob_Arbeitsmappe_geoeffnet_und_wenn_nein_oeffnen.htm
@Rudi: danke für das Schließfach, ich hab gradraus gelacht!
Bekanntlich ist das Hirn das Organ, das am meisten Energie verbraucht, da muß man schon haushalten.
Im Aktenschrank macht es sich sicher auch gut, im Goldfischglas mit Nährflüssigkeit und O2 - Geblubber.
Gute Zeit und viele Grüße,
Michael
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA IF und IF NOT effektiv nutzen


Schritt-für-Schritt-Anleitung

Um eine einfache If-Bedingung in Excel VBA zu nutzen, kannst du folgende Struktur verwenden. Dies hilft dir, zu überprüfen, ob eine Datei geöffnet ist oder nicht. Hier ist ein Beispiel, das du anpassen kannst:

Sub Schaltfläche1_Klickenkalk()
    On Error Resume Next
    Dim wkb As Workbook
    Set wkb = Workbooks("Kalkulation.xlsx")
    On Error GoTo 0
    If wkb Is Nothing Then
        Workbooks.Open "c:\dein\pfad\kalkulation.xlsx"
    Else
        wkb.Activate
    End If
End Sub

In diesem Beispiel wird zuerst versucht, die Arbeitsmappe zu aktivieren. Wenn sie nicht geöffnet ist, wird sie aus dem angegebenen Pfad geöffnet.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist die falsche Verwendung der If-Struktur. Achte darauf, dass du die Syntax korrekt verwendest. Ein Beispiel für einen Fehler könnte so aussehen:

If Not Then Workbooks("Kalkulation").Open

Die korrekte Form wäre:

If Not wkb Is Nothing Then
    wkb.Activate
Else
    Workbooks.Open "c:\dein\pfad\kalkulation.xlsx"
End If

Ein weiterer häufiger Fehler tritt auf, wenn der Dateipfad nicht korrekt angegeben wird. Stelle sicher, dass du den vollständigen Pfad zur Datei verwendest, um Fehler zu vermeiden.


Alternative Methoden

Eine alternative Methode zur Prüfung, ob eine Datei bereits geöffnet ist, ist die Verwendung von On Error Resume Next. Diese Methode ermöglicht es, ohne Unterbrechung fortzufahren, auch wenn ein Fehler auftritt:

On Error Resume Next
Workbooks("Kalkulation").Activate
If Err.Number <> 0 Then Workbooks.Open "Kalkulation.xlsx"
On Error GoTo 0

Hier wird die Datei aktiviert, und wenn dies nicht funktioniert, wird sie geöffnet. Dies ist besonders nützlich, wenn du mit mehreren Arbeitsmappen arbeitest.


Praktische Beispiele

Hier sind einige Anwendungsbeispiele:

  1. Überprüfung und Aktivierung einer Arbeitsmappe:

    Sub ÜberprüfenUndAktivieren()
        Dim wkb As Workbook
        On Error Resume Next
        Set wkb = Workbooks("Kalkulation.xlsx")
        If wkb Is Nothing Then
            Workbooks.Open "C:\dein\pfad\Kalkulation.xlsx"
        Else
            wkb.Activate
        End If
        On Error GoTo 0
    End Sub
  2. Verwendung von If NOT in einer Schleife:

    For i = 1 To 10
        If Not Cells(i, 1).Value = "" Then
            ' mache etwas
        End If
    Next i

Diese Beispiele veranschaulichen, wie du if not vba und if not in vba effektiv nutzen kannst.


Tipps für Profis

  • Nutze Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft dir, Fehler zu vermeiden.
  • Verwende Debug.Print, um Werte während der Ausführung zu überprüfen, was besonders hilfreich ist, wenn du mit komplexen If-Bedingungen arbeitest.
  • Experimentiere mit If And, If Or und If Not in Kombination, um komplexe logische Bedingungen zu überprüfen. Ein Beispiel:
If Not (A1 = "Test" Or A2 = "Beispiel") Then
    ' mache etwas
End If

FAQ: Häufige Fragen

1. Wie verwende ich if not vba korrekt? Du kannst If Not verwenden, um Bedingungen zu negieren. Zum Beispiel: If Not IsEmpty(A1) Then ....

2. Was ist der Unterschied zwischen If und If Not? If überprüft, ob eine Bedingung wahr ist, während If Not prüft, ob sie falsch ist.

3. Wie kann ich mehrere Bedingungen in einer If-Anweisung kombinieren? Du kannst And und Or verwenden, um mehrere Bedingungen zu kombinieren, z.B.: If A1 > 10 And A2 < 5 Then ....

4. Was passiert, wenn ich die falsche Syntax verwende? Ein Syntaxfehler führt dazu, dass das Makro nicht ausgeführt werden kann. Achte darauf, die Struktur korrekt einzuhalten.

5. Wie kann ich Fehler in meinem VBA-Code beheben? Nutze On Error Resume Next, um Fehler zu ignorieren, und überprüfe anschließend mit Err.Number, ob ein Fehler aufgetreten ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige