Thema Datum  Von Nutzer Rating
Antwort
18.02.2015 12:26:07 Stephan
NotSolved
18.02.2015 12:40:04 Gast64305
NotSolved
18.02.2015 12:46:05 Gast81564
NotSolved
18.02.2015 13:49:41 Stephan
NotSolved
19.02.2015 02:42:14 Gast75807
NotSolved
19.02.2015 09:18:53 Stephan
NotSolved
Rot Add In soll Namen des Dokumentes prüfen
21.02.2015 12:04:51 Gast27151
Solved
23.02.2015 08:41:29 Stephan
NotSolved
23.02.2015 16:43:47 Gast85267
NotSolved

Ansicht des Beitrags:
Von:
Gast27151
Datum:
21.02.2015 12:04:51
Views:
1166
Rating: Antwort:
 Nein
Thema:
Add In soll Namen des Dokumentes prüfen

>> Die Symbolleiste mit dem Code-Snippet Symbol war in meinem Internet-Explorer 11 nicht sichtbar.

Interessant. Dann liegt es wohl daran, dass man hier häufig derlei Posts anfindet, in denen der Quelltext nicht richtig dargestellt wird.

 

Zu deinem Problem:

Du scheinst noch nicht ganz verstanden zu haben wie der Ablauf (bei den Events) zu deuten ist.

  1. Workbook_Open - tritt auf, wenn die Mappe, in derjenige Quelltext steht, geöffnet wird
  2. m_objXLApp_NewWorkbook - tritt auf, wenn eine neue Mappe erstellt wird (also nicht geöffnet, sondern erstellt)
  3. m_objXLApp_WorkbookOpen - tritt auf, wenn eine Mappe geöffnet wird (also eine Mappe die irgendwo schon gespeichert vorliegt)

 

Willst du also auf eine geöffnete Mappe reagieren, gehört dein Quelltext in das Ereignis unter Punkt 3.

Willst du hingegen auf eine neue Mappe reagieren, gehört dein Quelltext in das Ereignis unter Punkt 2.

Keinesfalls aber in Punkt 1, weil AddIns direkt gestartet werden wenn Excel gestartet wird (und sie laufen im Hintergrund). Zu diesem Zeitpunkt existiert also noch keine einzige Mappe und daher läuft man mit ActiveWorkook ins Leere und somit in einen Laufzeitfehler.

 

Richtig ist also:

Option Explicit
  
Private WithEvents m_objXLApp As Excel.Application
  
Private Sub m_objXLApp_NewWorkbook(ByVal Wb As Workbook)
  
  Debug.Print "<NewWorkbook> Wb.Name = '" & Wb.Name & "'"
  
  If Wb.Name = "Mappe1" Then
    Call Makro1 'wo liegt dieses Makro?!
  End If
  
End Sub
  
'Private Sub m_objXLApp_WorkbookOpen(ByVal Wb As Workbook)
'  Debug.Print "<WorkbookOpen> Wb.Name = '" & Wb.Name & "'"
'End Sub
  
Private Sub Workbook_Open()
  Set m_objXLApp = Application
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
18.02.2015 12:26:07 Stephan
NotSolved
18.02.2015 12:40:04 Gast64305
NotSolved
18.02.2015 12:46:05 Gast81564
NotSolved
18.02.2015 13:49:41 Stephan
NotSolved
19.02.2015 02:42:14 Gast75807
NotSolved
19.02.2015 09:18:53 Stephan
NotSolved
Rot Add In soll Namen des Dokumentes prüfen
21.02.2015 12:04:51 Gast27151
Solved
23.02.2015 08:41:29 Stephan
NotSolved
23.02.2015 16:43:47 Gast85267
NotSolved