Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1108to1112
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

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
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
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
Anzeige
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 :-?
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige