Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1136to1140
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 auf Arbeitsmappe beschränken

Makro auf Arbeitsmappe beschränken
alex
Hallo
Ich habbe 2 Arbeitmappen die jeweils unten stehendes Makro benutzen. Das makro blendet Excel mit den Tasten F11 und F12 soweit wie möglich aus bzw. wieder ein. wenn ich erst eine mappe öffne und das makro benutze funktioniert es für diese mappe. Öffne ich die 2. Mappe und benutze das Makro funktioniert es für beide Mappen. Schließe ich jetzt Mappe 2 und benutze das Makro danach. Öffnet Excel automatisch Mappe 2 wieder.
ich weiß leider nicht wie ich das unterbinden kann. habe es schon mit "Option Private Module" versucht, jedoch ohne Erfolg.
für Hilfe wäre ich sehr dankbar
Gruß alex
Private Sub Workbook_Open()
Call Ausblenden 'macro aufrufen mit namen des macros
Application.OnKey "{f11}", "Einblenden" 'funktionstasten mit macros belegen
Application.OnKey "{f12}", "ausblenden"
End Sub

Option Private Module
Sub Ausblenden()
Dim i As Integer 'variable i, integer kann ganze zahlen speichern
Dim blattname As String 'string ist in der lage texte zu speichern (zeichen kette)
blattname = ActiveSheet.Name
On Error Resume Next 'bei einem fehler nächste zeile weitermachen
Application.ScreenUpdating = False 'bildschirmaktualisierung ausschlaten
Application.DisplayFullScreen = True 'setzt die Multifunktionsleiste außerkraft
Application.DisplayFormulaBar = False
For i = 1 To Sheets.Count 'Zählt die tabellen automatisch
Sheets(i).Select
With ActiveWindow
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayWorkbookTabs = True
.DisplayGridlines = False
.DisplayHeadings = False
End With
Next i
Sheets(blattname).Select
Application.ScreenUpdating = True 'bildschirmaktualisierung ausschlaten
End Sub
Sub Einblenden()
Dim i As Integer 'variable i, integer kann ganze zahlen speichern
Dim blattname As String
blattname = ActiveSheet.Name
On Error Resume Next 'bei einem fehler nächste zeile weitermachen
Application.ScreenUpdating = False 'bildschirmaktualisierung ausschlaten
Application.DisplayFullScreen = False
Application.DisplayFormulaBar = True
For i = 1 To Sheets.Count 'Zählt die tabellen automatisch
Sheets(i).Select
With ActiveWindow
.DisplayWorkbookTabs = True
.DisplayGridlines = True
.DisplayHeadings = True
End With
Next i
Sheets(blattname).Select
Application.ScreenUpdating = True 'bildschirmaktualisierung ausschlaten
End Sub
ungetestet...
09.02.2010 19:51:42
Tino
Hallo,
versuche es mal so.
Private Sub Workbook_Activate()
Call Ausblenden 'macro aufrufen mit namen des macros
Application.OnKey "{f11}", "Einblenden" 'funktionstasten mit macros belegen
Application.OnKey "{f12}", "ausblenden"
End Sub
Private Sub Workbook_Deactivate()
Application.OnKey "{f11}"
Application.OnKey "{f12}"
End Sub
Habe ich jetzt aber nicht getestet.
Gruß Tino
AW: ungetestet...
09.02.2010 20:10:24
alex
Hi Tino.
Bei deinem Makro tritt leider das Selbe Phänomen wie bei meinem auf.
Mal so nebenbei gefragt was ist eigentlich der Unterschied zwischen Workbook_Open, Auto_Open und Workbook_Acivate?
Anzeige
kann jetzt nicht testen... (Frage offen)
09.02.2010 20:37:31
Tino
Hallo,
Auto_Open macht das gleiche wie Workbook_Open,
Auto_Open wird aber eigentlich nicht mehr verwendet.
Workbook_Activate wird ausgelöst wenn die Datei aus der gleichen Instanz aktiviert wird,
dazu zählt aber auch das öffnen der Datei.
Zu Deinem Problem kann ich jetzt nichts weiter sagen,
weil ich gerade an was anderen arbeite und mein Excel nicht verstellen möchte
daher auch nicht testen mag. (Frage offen)
Gruß Tino
AW: kann jetzt nicht testen... (Frage offen)
09.02.2010 20:44:06
alex
Ok. Aber Danke für die Info
Gruß alex
versuch es mal damit...
10.02.2010 15:40:06
Björn
Hallo,
bau mal folgendes mit ein.
IF Activeworkbook  thisworkbook then exit sub
Statt exit sub kannst du natürlich auch mit Goto zu einer vorher definierten Sprungmarke springen, falls danach noch was ausgeführt werden soll.
Gruß
Björn B.
Anzeige
sorry, falscher Code... .Name vergessen
10.02.2010 15:42:22
Björn
Hallo,
nimm das hier:
If ActiveWorkbook.Name  ThisWorkbook.Name Then Exit Sub
Gruß
Björn B.
AW: sorry, falscher Code... .Name vergessen
10.02.2010 18:23:51
alex
Hi björn.
erstmal danke für deine Antwort. Leider passiert genau das selbe. habe ich die Tastenkombination f11 oder f12 in der 2. mappe benutzt und sie danach geschlossen öffnet sie sich wieder wenn ich die tasten kombination das nächste mal benutze, obwohl tabelle 1 das selbe makro benutzt
gruß alex
AW: sorry, falscher Code... .Name vergessen
10.02.2010 19:10:09
Tino
Hallo,
habe mal was aufgebaut, bei mir funktioniert es so in beiden Dateien.
https://www.herber.de/bbs/user/67907.zip
Gruß Tino
Anzeige
AW: sorry, falscher Code... .Name vergessen
10.02.2010 19:26:13
alex
Ja geht bei mir auch. Versteh aber nicht warum das dann mit meinem anderen makro nicht hinhaut.
AW: sorry, falscher Code... .Name vergessen
10.02.2010 19:37:32
alex
Ich muß mich entschuldigen tino. Hab jetzt meinen Fehler entdeckt.
Ich habe das deactivate makro so geschrieben
Private Sub Workbook_Deactivate()
Application.OnKey "{f11}" "Einblenden"
Application.OnKey "{f12}" "Ausblenden"
End Sub
anstatt so
Private Sub Workbook_Deactivate()
Application.OnKey "{f11}"
Application.OnKey "{f12}"
End Sub
Das was du mir gestern gegeben hat, hat also von anfang an funktioniert. Ich habs aber erst gesehen als ich deine beiden makros mit meinen verglichen haben.
sorry nochmal
gruß alex
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige