Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro Ausführbarkeit nur in zugehörig.VBA-Projekt

Forumthread: Makro Ausführbarkeit nur in zugehörig.VBA-Projekt

Makro Ausführbarkeit nur in zugehörig.VBA-Projekt
xaos
Hallo Excel Spezialisten,
Ich habe 2 xls-Dateien die
- absichtlich beide Tabellenblättername = default = Tabelle1, Tabelle2, usw. besitzen
- und auch beide ein (unterschiedliches) Makro haben.
(Beide Makros hantieren mit "Tabelle1", "Tabelle2", usw.)
Problem:
Wenn ich nun beide Dateien gleichzeitig offen habe, passiert es, dass das Makro von Datei 2 in Arbeitsmappe1=Datei1 ausgeführt wird, weil die gerade aktiv ist. Makroaufruf über Strg+[buchstabe]
Und da kommt dann ein "Murgs" heraus. :-(
Wie kann ich den hier dem Makro sagen, dass es nur in dem ZUGEHÖRIGEN VBA-Projekt (d.h. nur in zugehöriger Datei) ausführbar sein soll ? Bin für alle Hinweise dankbar.
Beste Grüße
xaos
Anzeige
AW: Makro Ausführbarkeit nur in zugehörig.VBA-Projekt
24.10.2009 22:23:00
Josef
Hallo ?
"Wie kann ich den hier dem Makro sagen, dass es nur in dem ZUGEHÖRIGEN VBA-Projekt (d.h. nur in zugehöriger Datei) ausführbar sein soll ?"
In dem du richtig referenzierst.
With ThisWorkbook.Sheets("Tabelle1")
  .Range("A1") = "Hallo"
End With

Gruß Sepp

Anzeige
AW: Makro Ausführbarkeit nur in zugehörig.VBA-Projekt
24.10.2009 22:29:23
xaos
Hallo Sepp,
Boa das ging aber schnell. Habe gerade davor eine satte Stunde!! herumgesucht und nix passendes gefunden. Hab gewußt es ist nur 1 Zeile....
Vielen Dank !!
Ich probier's gleich aus. ;-)
Grüße
xaos
AW: Makro Ausführbarkeit nur in zugehörig.VBA-Projekt
24.10.2009 23:05:20
xaos
Hallo Sepp nochmal,
Also jetzt ging's. Die Anweisung
ThisWorkbook.Activate
hatte ganz oben gefehlt.
Was auch noch eigenartig ist (ist aber nicht so wichtig):
- If ThisWorkbook.Sheets("Tabelle4").Visible = 2 Then.... FUNZT
....
- weiter unten: ThisWorkbook.Sheets("Tabelle4").Select FUNZT NICHT !?
Tabelle4 ist aber eingeblendet.
Jetzt hab ich aber noch ein Folgeproblem-chen:
Kann ich beide Makros (aus den beiden Dateien) mit dem selben Shortcut ansprechen?.
D.h. beide Makros sollen über zB Strg+a ausgeführt werden und eben genau das Makro, wo Workbook = aktiv.
Geht das einfach?
Bin für alle Hinweise dankbar
Grüße
xaos
Anzeige
AW: Wenn ThisWorkbook = aktiv Then .... ?
25.10.2009 00:46:18
xaos
Hallo zusammen,
Also ich spiel mich jetzt schon ne ganze Weile herum, hab aber die Lösung zu obigen 2 kleinen Folgeproblemen noch nicht gefunden.
Mir würde aber auch schon folgende Abfrage schon sehr helfen:
Wenn ThisWorkbook = aktiv Then [fahr fort mit sub] sonst [End if]
Mit suchfunktion findet man da definitiv nichts brauchbares ! Das gibt's doch nicht. :-(
If ThisWorbook.activation = true then ....gibts leider nicht....
Grüße
xaos
Anzeige
AW: Wenn ThisWorkbook = aktiv Then .... ?
25.10.2009 01:05:14
Daniel
HI
wie wäre es mit :
if ThisWorkbook.Name = ActiveWorkbook.Name
Gruß, Daniel
Das ist übrigens einer der seltenen Anwendungs...
25.10.2009 04:35:03
Luc:-?
...fälle, in dem die Verwendung von ThisWorkbook wirklich Sinn macht, Folks!
In Daniels Vorschlag wird auch sehr schön demonstriert, dass Ersteres nicht mit Letzterem (ActiveWorkbook) identisch sein muss!
So ist es recht... ;-)
Gruß+schöSo, Luc :-?
Anzeige
Gelöst: Lösung Resumee
25.10.2009 12:55:24
xaos
Hallo Daniel,
Juhu jetzt geht's - VIELEN DANK! Hab gestern 3 Std. getüfftelt und nix mehr gefunden.
Also für alle // RESUMEE:
Problem:
- 2 Dateien sind gleichzeitig geöffnet und haben beide 1 Makro.
- Makro a soll NUR in Datei a ausführbar sein, Makro b NUR in Datei b.
- 1 Makro hat z.B. Strg+a das Andere Strg+b
- Problem: Mit Strg+a wird das Makro aus Datei_1 immer ausgeführt...
und zwar AUCH in der Datei_2, wenn diese gerade aktiv ist.
Lösung:
1. Verriegeln, das Makro nur in ZUGEHÖRIGER DATEI ausgeführt wird: [ThisWorkbook.Activate]
2. Verriegeln, das zB Makro_1 überhaupt nur ausgeführt wird, wenn ZUGEHÖRIGE Datei/
/Workbook aktiv:

Sub Makro1()
' Tastenkombination: Strg+m
If ThisWorkbook.Name = ActiveWorkbook.Name Then
' Verriegeln, das Makro überhaupt nur dann ausgeführt
' wird, wenn ZUGEHÖRIGE Datei/Workbook aktiv.
ThisWorkbook.Activate
'Verriegeln, das Makro   nur in  ZUGEHÖRIGER DATEI
' ausgeführt wird.
'(Wegen Zeile darüber eigentlich schon wieder unnötig)
.....[hier kommt das eigentliche Makro] ....
Else: Beep
End If
End Sub

Grüße
xaos
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige