Excel VBA IF / IF Not

Bild

Betrifft: Excel VBA IF / IF Not
von: Benedikt
Geschrieben am: 23.09.2015 12:27:12

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

Bild

Betrifft: AW: Falsche If-Struktur
von: Michael (migre)
Geschrieben am: 23.09.2015 12:37:37
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

Bild

Betrifft: die Struktur ...
von: Rudi Maintaire
Geschrieben am: 23.09.2015 12:42:54
Hallo Michael,
... ist ja jetzt OK. Der Rest aber Schrott.
Gruß
Rudi

Bild

Betrifft: AW: Haha... das stimmt wohl...
von: Michael (migre)
Geschrieben am: 23.09.2015 12:49:29
...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

Bild

Betrifft: AW: Haha... das stimmt wohl...
von: Rudi Maintaire
Geschrieben am: 23.09.2015 12:57:05
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

Bild

Betrifft: AW: Deswegen bist Du mir auch XL-mäßig überlegen..
von: Michael (migre)
Geschrieben am: 23.09.2015 13:03:05
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

Bild

Betrifft: AW: Excel VBA IF / IF Not
von: Daniel
Geschrieben am: 23.09.2015 12:39:29
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

Bild

Betrifft: AW: Excel VBA IF / IF Not
von: Rudi Maintaire
Geschrieben am: 23.09.2015 12:40:11
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

Bild

Betrifft: A bissala Senf
von: Michael
Geschrieben am: 23.09.2015 17:24:50
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

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Bestehende Zahlen verändern"