Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
792to796
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
792to796
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Arbeitsblätter mit Macro ausblenden

Arbeitsblätter mit Macro ausblenden
19.08.2006 21:31:41
Peter Schilling
Hallo Excelfreunde
ich benötige Hilfe bei der Erstellung eines Macros das mir mehrere Arbeitsmappen ein und ausblenden kann (Tabelle xyz auf Hidden setzen)
Macro1 = strg+u = ausblenden der Arbeitsmappen
Macro2 = strg+i = einblenden der Arbeitsmappen
Die besagten Arbeitsmappen (Excel) sollen beim öffnen der Datei nicht sichtbar sein.
Es sollen aber nicht alles auf "hidden" gesetzt werden sonden nur
Tabelle 1 bis Tabelle 5.
Ist dieses ein und ausblenden per Macro möglich.
Für Code und hilfe währe ich sehr dankbar.
Peter

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsblätter mit Macro ausblenden
19.08.2006 21:45:03
Josef Ehrensberger
Hallo Peter!
Den Makros "ein" und "aus" musst du die gewünschten Tastenkombinationen zuweisen.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
HideSheets True
Me.Save
End Sub


' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub HideSheets(Optional Hidden As Boolean = False)
Dim arrSheets As Variant
Dim intC As Integer

arrSheets = Array("Tabelle1", "Tabelle3") 'Namen der Tabellen die aus/eingeblendet werden sollen

On Error Resume Next
For intC = 0 To UBound(arrSheets)
  ThisWorkbook.Worksheets(arrSheets(intC)).Visible = IIf(Hidden, xlSheetVeryHidden, xlSheetVisible)
Next
On Error GoTo 0

End Sub



Sub ein()
HideSheets
End Sub

Sub aus()
HideSheets True
End Sub


Gruß Sepp
Anzeige
AW: Arbeitsblätter mit Macro ausblenden
19.08.2006 22:07:50
Peter Schilling
Hallo Excelfreunde
danke für den Code, aber wie und wo muss ich den einfügen.
Ich habe ihn bestimmt wieder irgendwo falsch eingefügt.
Gruß Peter
AW: Arbeitsblätter mit Macro ausblenden
19.08.2006 22:12:13
Josef Ehrensberger
Hallo Peter!
Wer lesen kann ist klar im Vorteil ;-)
Im Code steht doch einmal

Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)

und dann

Modul: Modul1 Typ: Allgemeines Modul

und genau dorthin gehören die darunter angezeigten Codeteile.
Guckst Du: Wie und wo fügt man ein Makro bzw. Code ein
Gruß Sepp
Anzeige
Irgendwie gehe ich falsch vor
19.08.2006 23:02:41
Peter Schilling
Hallo Josef
ich komme damit nicht klar.
Es tut sich nichts außer beim Schliessen der datei wird Kompillierungsfehler angezeigt.
ich denke das ich irgendwo etwas falsch eingefügt habe.
Kannst du helfen.
Gruß Peter

Die Datei https://www.herber.de/bbs/user/35944.xls wurde aus Datenschutzgründen gelöscht

AW: Irgendwie gehe ich falsch vor
19.08.2006 23:42:13
Josef Ehrensberger
Hallo Peter!
Erstens hattest du "Option Explicit" doppelt in "DieserArbeitsmappe", daher der Kompilierungsfehler, und zweitens hast du die restlichen Makros gar nicht in dein Modul eingefügt;-((
https://www.herber.de/bbs/user/35945.xls
Gruß Sepp
Anzeige
AW: Irgendwie gehe ich falsch vor
20.08.2006 08:46:42
Peter Schilling
Hallo Excelfreunde
das Ein/ausblenden funktioniert ganz prima.
Es müssen jetzt nur noch alle Eingabetabellen beim öffnen immer sichtbar sein.
Das sind diese Tabellen:
Eingabe MRM
Eingabe RU
Eingabe Geo-Mühle
Eingabe 24-fache
Eingabe RS-Marker
Eingabe BSS
Eingabe LSS
Eingabe Ketten
kann mir hier noch jemand behilflich sein und dies einsteuern oder aufzeigen wie ich das mache.
Gruß Peter ohne Vba Kenntnisse.
https://www.herber.de/bbs/user/35947.xls
AW: Irgendwie gehe ich falsch vor
20.08.2006 09:21:41
Josef Ehrensberger
Hallo Peter!
Wenn alle Tabellen deren Name mit "Eingabe" beginnt eingeblendet bleiben sollen, dann brauchst du nur diesen Code ersetzen.
Sub HideSheets(Optional Hidden As Boolean = False)
Dim objSh As Worksheet


On Error Resume Next
Application.ScreenUpdating = False
For Each objSh In ThisWorkbook.Worksheets
  If Not objSh.Name Like "Eingabe*" Then
    objSh.Visible = IIf(Hidden, xlSheetVeryHidden, xlSheetVisible)
  End If
Next
Application.ScreenUpdating = True
On Error GoTo 0

End Sub


Gruß Sepp
Anzeige
AW: Irgendwie gehe ich falsch vor
20.08.2006 09:42:55
Peter Schilling
hallo Josef
einfach genial diese Funktion.
danke dir auch für dein Verständniss.
Noch eine letzte Frage.
Da ich mir diese Funktion mit einem Button belegt habe den jeder sehen und benutzen kann, möchte ich diesen (das macro) mit einem Passwort beim anclicken belegt haben.
Kannst du mir da auch weiterhelfen.
Gruß Peter
AW: Irgendwie gehe ich falsch vor
20.08.2006 09:52:12
Josef Ehrensberger
Hallo Peter!
Kein Problem.
Die einfachste Variante, ersetze das Makro "ein".
Sub ein()
If InputBox("Bitte geben Sie Ihr Passwort ein", "Passwort") <> "deinPasswort" Then
  MsgBox "Ungültiges Passwort!", 64, "Fehler"
  Exit Sub
Else
  HideSheets
End If
End Sub


Wenn das Passwort bei der Eingabe maskiert sein soll, dann müsste man dafür ein kleines Userform erstellen.
Gruß Sepp
Anzeige
AW: Irgendwie gehe ich falsch vor
20.08.2006 10:17:28
Peter Schilling
hallo Josef
es funktioniert jetzt alles so wie es sein soll.
danke für deine Hilfe.
Eine andere Möglichkeit für mich währe es das ausführen nur zuzulassen wenn die Macros eingeschaltet sind.
Bei mir also diese Arbeitsmappe:>
Option Explicit

Private Sub Workbook_Open()
Dim arr As Variant
Dim arr1 As Variant
Application.OnKey "+^q", "Makroein"   'Zuweisung um Makros einzuschalten, defenition im Modul 1
Application.OnKey "+^y", "Makroaus"   'Zuweisung um Makros auszuschalten, defenition im Modul 1
Call Makroaus 'Makros ausschalten bei öffnen der Datei
End Sub

Im Modul 11:>
Sub Makroein() 'defenieren welche Makros eingeschaltet werden ^ = Strg , + = Umschalt
Application.OnKey "^+Z" 'Makro einschalten
Application.OnKey "^a" 'Makro einschalten
Application.OnKey "^b" 'Makro einschalten
könntest du das hier einbauen ?
Diesen Code habe ich aus dem Forum.
Wenn das eingebaut werden kann, muss ich sicherlich das Macro "Ein" wieder ändern.
Gruß Peter
Anzeige
AW: Irgendwie gehe ich falsch vor
20.08.2006 10:40:41
Josef Ehrensberger
Hallo Peter!
So ganz verstehe ich nicht was du willst, aber vielleicht meinst du so.
Sub Makroein() 'defenieren welche Makros eingeschaltet werden ^ = Strg , + = Umschalt

Application.OnKey "^+Z" 'Makro einschalten
Application.OnKey "^a" 'Makro einschalten
Application.OnKey "^b" 'Makro einschalten
Application.OnKey "^c" 'Makro einschalten
Application.OnKey "^d" 'Makro einschalten
Application.OnKey "^e" 'Makro einschalten
Application.OnKey "^f" 'Makro einschalten
Application.OnKey "^g" 'Makro einschalten
Application.OnKey "^h" 'Makro einschalten
Application.OnKey "^j" 'Makro einschalten
Application.OnKey "^k" 'Makro einschalten
Application.OnKey "^l" 'Makro einschalten
Application.OnKey "^m" 'Makro einschalten
Application.OnKey "^r" 'Makro einschalten
Application.OnKey "^t" 'Makro einschalten
Application.OnKey "^z" 'Makro einschalten
Application.OnKey "^i", "ein" 'Makro einschalten
Application.OnKey "^u", "aus" 'Makro einschalten
End Sub

Sub Makroaus() 'defenieren welche Makros eingeschaltet werden ^ = Strg , + = Umschalt

Application.OnKey "^+Z", "" 'Makro ausschalten
Application.OnKey "^a", "" 'Makro ausschalten
Application.OnKey "^b", "" 'Makro ausschalten
Application.OnKey "^c", "" 'Makro ausschalten
Application.OnKey "^d", "" 'Makro ausschalten
Application.OnKey "^e", "" 'Makro ausschalten
Application.OnKey "^f", "" 'Makro ausschalten
Application.OnKey "^g", "" 'Makro ausschalten
Application.OnKey "^h", "" 'Makro ausschalten
Application.OnKey "^j", "" 'Makro ausschalten
Application.OnKey "^k", "" 'Makro ausschalten
Application.OnKey "^l", "" 'Makro ausschalten
Application.OnKey "^m", "" 'Makro ausschalten
Application.OnKey "^r", "" 'Makro ausschalten
Application.OnKey "^i", "" 'Makro ausschalten
Application.OnKey "^u", "" 'Makro ausschalten
End Sub


Gruß Sepp
Anzeige
AW: Irgendwie gehe ich falsch vor
20.08.2006 11:00:02
Peter Schilling
hallo Josef
genau das meinte ich damit.
Aber es ist ja eingetragen:>

Sub HideSheets(Optional Hidden As Boolean = False)
Dim objSh As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
For Each objSh In ThisWorkbook.Worksheets
If Not objSh.Name Like "Eingabe*" Then
objSh.Visible = IIf(Hidden, xlSheetVeryHidden, xlSheetVisible)
End If
Next
Application.ScreenUpdating = True
On Error GoTo 0
End Sub


Sub ein()
If InputBox("Bitte geben Sie Ihr Passwort ein", "Passwort") <> "xyz" Then
MsgBox "Ungültiges Passwort!", 64, "Fehler"
Exit Sub
Else
HideSheets
End If
End Sub


Sub aus()
HideSheets True
End Sub

Oder muss ich mit dem Macrorekorder die Macros "u" und "i" erstellen und dann alles unter diesen macros einfügen.
Wenn ja, muss der Code aus Modul 11 gelöscht werden?
Gruß Peter
Anzeige
AW: Irgendwie gehe ich falsch vor
20.08.2006 11:31:10
Josef Ehrensberger
Hallo Peter!
Es gibt keine makros "u" bzw. "i"!
Mit

Application.OnKey "^u", "aus" 'Makro einschalten

wird der Tastenkombination "STRG+u" das Makro "aus" zugewiesen,
und mit

Application.OnKey "^u", ""

wird diese Zuweisung wieder aufgehoben.
Gruß Sepp
AW: Irgendwie gehe ich falsch vor
20.08.2006 11:50:16
Peter Schilling
hallo Josef
alles läuft prima.
Vielen vielen dank.
Gruß Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige