Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Bestätigungsfeld vorm öffnen der Datei.





Frage

Ich merke schon ich brauch noch viel Hilfe. Grüßt euch. Ist es möglich, dass vorm öffnen der Datei ein Feld eingeblendet wird (z. B. Ich Stimme ZU!) welches der Benutzer bestätigen muß und erst dann öffnet sich die Datei. grüße boris

Antwort 1 von Beverly

Hi Boris,

es geht nur, wenn die Datei bereits gestartet ist, aber man kann ja eine leere Tabelle einblenden und erst nach Bestätigung diese aus- und die richtige einblenden. Du musst aber bedenken, dass die Mappe mit aktivierten Makros gestartet werden muss.

Für die Bestätigungsabfrage kannst du ein UserForm erstellen.

Bis später,
Karin

Antwort 2 von bokap1975

Hi Karin,

Danke auch hierfür. Nur ????? Ich bin noch nicht soweit. :-)

Angenommen ich nenne dieses Tabellenblatt Begrüßung.

Wie kann ich dieses Tabellenblatt vorschalten (beim start aktivieren) und es die anderen 4 Blätter überlagern lassen. Könnte ich es mit einem Kontrollkästchen versehen dass das Tabellenblatt Begrüßung ausblendet wenn es aktiv ist und das Kontrollkästchen automatisch inaktiv wird beim nächsten Datei-Beenden damit sich das Begrüßungsblatt auch wieder bei jedem öffnen gezeigt wird.

lg,boris

Antwort 3 von Beverly

Hi Boris,

mit diesem Code im Codefenster von DieseArbeitsmappe blendest du beim Schließen das Tabellenblatt "Begrüßung" ein und alle anderen aus

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim wsTabelle As Worksheet
    Application.DiaplayAlerts = False
    Worksheets("Begrüßung").Visible = True
    For Each wsTabelle In ThisWorkbook.Worksheets
        If wsTabelle.Name <> "Begrüßung" Then wsTabelle.Visible = False
    Next wsTabelle
    Application.DiaplayAlerts = True
End Sub


Für das Einblenden mittels Button o.ä. auf dem Begrüßungs-Tabellenblatt (oder im UserForm, falls du solch eins zur Bestätigung der Anmeldung verwendest)

Sub start()
    Dim wsTabelle As Worksheet
    Application.DiaplayAlerts = False
    For Each wsTabelle In ThisWorkbook.Worksheets
        If wsTabelle.Name <> "Begrüßung" Then wsTabelle.Visible = True
    Next wsTabelle
    Worksheets("Begrüßung").Visible = False
    Application.DiaplayAlerts = True
End Sub


Bis später,
Karin

Antwort 4 von bokap1975

Hi Karin,

ich glaub ich hab mich was mißverständlich ausgedrückt.

(((Hi Boris,

mit diesem Code im Codefenster von DieseArbeitsmappe blendest du beim Schließen das Tabellenblatt "Begrüßung" ein und alle anderen aus)))

Das Tabellenblatt Begrüßung hätte ich lieber beim öffnen anstelle beim Schließen gezeigt. So dass es der Benutzer direkt zu anfang sieht und wenn er es dann gelesen hat eben mit nem Button oder Kontrollkästchen schließen kann.

ps. Dein Code für das Aufblincken hat leider doch nicht ganz so gut funktioniert denn- die veränderung der Felder A10:A20 erfolgt nicht mit Tasteneingabe sondern durch Optionsfelder und da reagiert dann der Code leider nicht. Wenn ichs irgend ne Änderung von hand eingebe ist alles wunderbar. Weißt du abhilfe. Bei einem ähnlichen Problem mit Bildern einblenden mittels Optionsfeld hatte mir mal einer geschrieben calculate anstelle von change zu benutzen. Hatte auch geholfen. Hier aber eben nicht???

grüße
boris

Antwort 5 von Beverly

Hi Boris,

beim Schließen der Arbeitsmappe wird das Tabellenblatt "Begrüßung" eingeblendet, damit es beim nächsten Öffnen sichtbar ist. Mir scheint, du hast den Code nicht getestet.

Was die andere Angelegenheit betrifft - bleibe damit bitte in dem anderen Thread. Wenn ein unbeteiligter User diesen Thread hier liest, weiß er/sie schließlich überhaupt nicht, worum es dort eigentlich ging. Und wie sollte er/sie herausfilden, um welchen Thread es sich dabei handelt, um es nachlesen zu können?

Bis später,
Karin

Antwort 6 von bokap1975

Hi Karin,

zu 1. Ja Du hattest recht ich hatte es nicht ausprobiert weil sich das so änhörte als hättest du mich falsch verstanden. Natürlich hab ich das jetzt sofort nachgeholt - Mit dem Ergebnis-Nichts passiert. Wahrscheinlich hab ich da irgendwo ein Fehler eingebaut.

Testhalber hab ich mal eine neue Arbeitsmappe geöffnet. Tabelle2 hab ich in Begrüßung umbenannt. Tabelle1 u. 3 gelassen. Tab 1 u3 kommplett grün gemacht, Begrüßung rot.

Dann F11, dann F7, dann deinen Code eingefügt und die Bemerkung von dir gelöscht. Alles geschlossen, gespeichert, geöffnet und dann zeigt sich Tabelle1.

Wo war mein Fehler.


Viele Grüße Boris.

Antwort 7 von Beverly

Hi Boris,

leider kann ich nicht nachvollziehen, weshalb es bei dir nicht funktioniert. Ich habe mal eine Beispielmappe hochgeladen (verbleibt 100 Tage auf dem Webspace)

Link zum Download

Bis später,
Karin

Antwort 8 von bokap1975

Hallo Karin,

hab mir deine Beispieldatei runtergeladen. Danke dafür. Genau so meinte ich das. Funktioniert bei dieser Mappe sehr gut. Wenn ich das in meine Datei übertrage werden meine Arbeitsblätter leider nicht überblendet. Der unterschied besteht wohl darin, dass mein Code "Private Sub Workbook_BeforeClose(Cancel As Boolean)" nicht wie bei dir im Objekt Workbook steht sondern in "Allgemein" und ich weiß auch leider nicht wie ich das ändern kann. Ich geh ja ganz normal wärend ich im Tabellenblatt Begrüßung bin auf alt F11 und dann Code-Anzeigen und dann rechte Maustaste einfügen.
Ein zweites Problem besteht leider noch darin, dass wenn ich den Start Button betätige nicht nur die Blätter eingeblendet werden, die vorher eingeblendet waren sonderen sämtliche von mir ausgebledete Blätter einblendet. Kurz zur info. Meine Arbeitsmappe besteht aus ca. 40 Blättern wovon 36 dauerhaft ausgeblendet sein sollen und gearbeitet wird nur mit 4 Arbeitsblättern. (Deckblatt, Deckblatt2,Tabelle2, Tabelle3) und ja jetzt noch mit dem Begrüßungs-Blatt wenn ich jedoch auf den Startbutton klicke werden eben alle 40 Arbeitsblätter aktiviert.
Was kann ich da tun?

Viele Grüße zum Wochen-Start
boris

Antwort 9 von Arno_Nym

Kannst auch mal dies hier testen (Code im Objekt DieseArbeitsmappe bzw Workbook einfügen).

Private Sub Workbook_Open()
Dim Abfrage As Integer
ThisWorkbook.IsAddin = True
Abfrage = MsgBox("Datei wirklich öffnen?", vbYesNo + vbQuestion, "Sicherheitsabfrage")
If Abfrage <> vbYes Then
    ThisWorkbook.IsAddin = False
    ThisWorkbook.Saved = True
    ThisWorkbook.Close
End If
ThisWorkbook.IsAddin = False
ThisWorkbook.Saved = True
End Sub

Beim Öffnen erscheint eine Abfrage, wobei die Arbeitsblätter noch unsichtbar sind.
Voraussetzung ist, daß die Ausführung von Makros aktiviert ist.

PS: Was ist bei dir das Objekt "Allgemein"? Ein eigenes Modul?
Darin befindlicher Code wird nicht automatisch ausgeführt.

Der "Workbook_Open"-Code MUSS ins Objekt "DieseArbeitsmappe".

Arno

Antwort 10 von Bokap1975

Hallo Karin,

hab jetzt endlich rausbekommen wie ich den Code in das entsprechende Blatt einfüge (VBA-Explorer) Jetzt Funktioniert das auch mit deinem Code, dass sich das Begrüßungsblatt über alle anderen "legt" . Das Problem, das mir der Startbutton allerdings alle Arbeitsblätter öffnet bleibt bestehen.

Der Vorschlag von Arno funktioniert sehr gut so und ist außreichend für mich.

Danke für Eure Hilfe. Ihr seid super.

Kleine Frage noch an Arno. Kann ich die Schriftgröße eventuell noch verändern.

Viele Grüße
Boris

Antwort 11 von Beverly

Hi Boris,

damit nur die benannten Tabellenblätter ein- und wieder ausgeblendet werden

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Worksheets("Begrüßung").Visible = True
    Worksheets("Tabelle3").Visible = False
    Worksheets("Tabelle2").Visible = False
    Worksheets("Deckblatt2").Visible = False
    Worksheets("Deckblatt1").Visible = False
End Sub

Sub start()
    Worksheets("Tabelle3").Visible = True
    Worksheets("Tabelle2").Visible = True
    Worksheets("Deckblatt2").Visible = True
    Worksheets("Deckblatt1").Visible = True
    Worksheets("Begrüßung").Visible = False
End Sub


Die Schriftart in eine MsgBox kann man nicht ändern. In diesem Fall müsstest du ein UserForm erstellen.

Bis später,
Karin

Antwort 12 von bokap1975

Hallo Karin,

was soll ich sagen - Du wirst warscheinlich schon wissen das es funktioniert. Vielen Vielen Dank.

Das gute an der Lösung ist, dass ich meinen Text beliebig formatieren kann was ja mit der anderen Lösung nicht ging.

Viele Grüße
Boris

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: