Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
416to420
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
416to420
416to420
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Aktuelles Worksheet aus Add-In ansprechen

Aktuelles Worksheet aus Add-In ansprechen
Martin
Hallo,
ich habe meine Hauptanwendung in ein Add-In ausgelagert und muß auch den Zugriff auf die aktuellen Worksheets haben. Es gibt einen schlechten Weg, der funktioniert.
Sub Reset() ' im XLA
Dim WS_temp As Worksheet
MsgBox ActiveWorkbook.VBProject.Name ' ="VBA_Project" Anscheinend kann man auf das VBProject zugreifen
' Funktioniert grundsätzlich, aber fehleranfällig, da Nutzer Worksheet-Name geändert haben kann:
Set WS_temp = ActiveWorkbook.Worksheets("FMEA")
MsgBox WS_temp.Name
' Besser direkter Zugriff auf WS_FMEA wie bei normaler Programmierung:
Set WS_temp = ActiveWorkbook.VBProject.WS_FMEA ' Geht nicht !!! Warum ?MsgBox WS_temp.Name
Userbild
Wie kann ich den auf die Worksheets (auch Module usw. zugreifen), die ich ja im Editor sehe? Warum kann ich die nicht direkt ansprechen?
Hat jemand eine Idee?
Danke, Martin
AW: Aktuelles Worksheet aus Add-In ansprechen
K.Rola
Hallo,
du musst das Teil als Komponente des VB-Projekts ansprechen, so in
der Art:
Option Explicit

Sub Blatt_ueber_Codenamen_ansprechen()
Const WND As String = "TestCodeName.xls"
Workbooks(WND).Activate
Workbooks(WND).VBProject.VBComponents("Das_ist_der_Codename_der_Tabelle").Activate
End Sub

Gruß K.Rola
AW: Aktuelles Worksheet aus Add-In ansprechen
Martin
Danke,
mit activate klappt das. Aber das Initialisieren eine Worksheet-Variable klappt damit nicht (und das brauche ich, da die gesamte restliche Programmierung auf diese Objekte zugreift. Noch eine Idee? Über VBE.Codepanes .... lande ich nur im Editor.
Anzeige
AW: Aktuelles Worksheet aus Add-In ansprechen
K.Rola
Hallo,
das war ein allgemeines Beispiel, du musst doch nicht aktivieren.
Die Ansprache des Blatts über den Codenamen ändert sich dadurch nicht.
Gruß K.Rola
AW: Aktuelles Worksheet aus Add-In ansprechen
Martin
Bei der Zuweisung zur einer Worksheet-Variablen gibt es einen Laufzeitfehler 13 (Typen unverträglich). Ich brauche die Variablenzuweisung, da die ganze restliche Programmierung auf diese Variablen zugreift.
Funktioniert:
ActiveWorkbook.VBProject.VBComponents("WS_FMEA").Activate
Funktioniert nicht:
Dim WS_temp as Worksheet
Set WS_temp = ActiveWorkbook.VBProject.VBComponents("WS_FMEA") '= Laufzeitfehler 13
WS_temp.Activate
Arrgh!!! Warum?
Anzeige
AW: Aktuelles Worksheet aus Add-In ansprechen
K.Rola
Hallo,
wenn du es so ansprichst, ist kein Worksheet, sondern eine VB- Kompnente.
Da es aber kein Dim VBC as VBComponent gibt, musst du es so deklarieren:
Dim VBC as Object
Set VBC = ActiveWorkbook.VBProject.VBComponents("xxx")
VBC.activate
Gruß K.Rola
AW: Aktuelles Worksheet aus Add-In ansprechen
Martin
Danke erstmal,
kann ich erst später ausprobieren.
AW: Aktuelles Worksheet aus Add-In ansprechen
22.04.2004 19:40:21
Nepumuk
Hallo Martin,
da kannst du nur nach dem CodeName suchen:


Public Sub test()
    Dim WS_temp As Worksheet
    For Each WS_temp In ActiveWorkbook.Worksheets
        If WS_temp.CodeName = "WS_FMEA" Then Exit For
    Next
    If Not WS_temp Is Nothing Then MsgBox WS_temp.Name
End Sub


Gruß
Nepumuk
P.S. Reset ist ein Schlüsselwort in VB. Das würde ich nicht als Namen einer Prozedur verwenden.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige