Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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
Inhaltsverzeichnis

Abfragen welches Wb aktiv ist

Abfragen welches Wb aktiv ist
04.05.2018 10:36:14
Markus
Hallo Community folgende Frage mal:
Ich wollte dies hier umsetzen:
Wenn Workbook1 ist Active dann tue das.
Wenn Workbook2 ist Active mache jenes.
Hier nun mein Code:

Sub Abfrage()
Dim Wb As Workbook
Dim Wb2 As Workbook
Set Wb = Workbooks(1)
'Set Wb2 = Workbooks(2)
if Wb is Active then             'if Wb.Active then
MsgBox "Tu dies"
else ' Wb2 Is Active then
MsgBox "Tu das"
End if
End Sub

Jetzt steht da immer Objekt erforderlich, aber was für ein Objekt braucht er denn da?
Wie müsste das richtig lauten?
Wenn ich schreibe: if Wb is Nothing Then
dann kommt zwar nicht der Objectfehler, aber so war es nicht gedacht, denn ein Workbook ist nun mal immer activ, er soll nur erkennen welches es ist durch die if Abfrage und dann jeweils verschiedene Dinge ausgeben.
Beste Grüße
Markus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfragen welches Wb aktiv ist
04.05.2018 10:46:58
mumpel
Hallo!
Nimm Select Case.
Sub test()

  Select Case ActiveWorkbook.Name
         Case "Mappe1.xlsb"
              MsgBox "Falsche Mappe aktiviert"
         Case "Mappe2.xlsb"
              MsgBox "Richtig!"
         Case Else
              MsgBox "Aktive Arbeitsmappe nicht in der Auswahl."
  End Select
  
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Gruß, René
Anzeige
AW: Abfragen welches Wb aktiv ist
04.05.2018 11:45:19
Markus
Hallo, ich habe es mit Case versucht,
aber es geht nicht bei mir. Ich habe nur die allgemeinen Workbooks zur Verfügung, da die sich ständig ändern.
Ich habe den Code für die allgemeinen Workbooks folgendermaßen abgeändert:
Sub test()
Select Case ActiveWorkbook.Name
Case Workbooks(1)
MsgBox "Tu dies"
Case Workbooks(2)
MsgBox "Tu das"
Case Else
MsgBox "Keins von Beiden"
End Select
End Sub
Leider erkennt er aber schon Workbooks(1) nicht.
Mich wundert es das man hier auch nicht initialisieren muss?
Ich habs auch mal zusätzlich mit Dim und Set dann probiert bei den Workbooks ging aber auch nicht.
Auch hatte ich das Select Case ActiveWorkbook.Name ohne .Name versucht also nur ActiveWorkbook, ging aber auch nicht.
Da kommt immmer bei Workbooks(1): Laufzeitfehler 438: Objekt unterstützt Eigenschaft oder Methode nicht.
Beste Grüße
Markus
Anzeige
AW: Abfragen welches Wb aktiv ist
04.05.2018 11:56:34
Daniel
Hi
du kannst nicht einen Namen mit dem ganzen Objekt vergleichen.
du musst auch bei den Case-Fällen den Workbook-Namen verwenden:
Sub test()
Select Case ActiveWorkbook.Name
Case Workbooks(1).Name
MsgBox "Tu dies"
Case Workbooks(2).Name
MsgBox "Tu das"
Case Else
MsgBox "Keins von Beiden"
End Select
End Sub

AW: Abfragen welches Wb aktiv ist
04.05.2018 12:19:34
Markus
Hallo,
ja genau das wars nun geht's. :) Das .Name braucht man also dann immer auch bei den allgemeinen Workbooks.
Die andere Lösung von Rudi mit "Is ActiveWorkbook Then" hat auch wunderbar funktioniert auf Anhieb, so wollte ich es zuerst machen.
Nun muss ich mich nur noch für eine der Beiden entscheiden :)
Vielen Dank Euch Beiden Rene und Rudi. :)
Beste Grüße
Markus
Anzeige
alternativ zu Daniel
04.05.2018 12:28:38
Rudi

Sub test()
Select Case True
Case ActiveWorkbook Is Workbooks(1)
MsgBox "Tu dies"
Case ActiveWorkbook Is Workbooks(2)
MsgBox "Tu das"
Case Else
MsgBox "Keins von Beiden"
End Select
End Sub

Gruß
Rudi
siehe auch Antwort zum vorherigen Thread! (owT)
04.05.2018 10:59:29
EtoPHG

AW: Abfragen welches Wb aktiv ist
04.05.2018 11:01:33
Rudi
Hallo,
Sub aa()
Dim WKB As Workbook
Set WKB = Workbooks(1)
If WKB Is ActiveWorkbook Then
MsgBox "OK"
Else
MsgBox "falsche Mappe aktiv"
End If
End Sub

Ist allerdings grenzwertig, mit den Indizes zu arbeiten, da es hierbei auf die Reihenfolge des Öffnens ankommt.
Gruß
Rudi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige