Zähler in Excel

Zähler in Excel

Meine Datei enthält 50 Blätter, von denen jedes ein Standardformular ist. Nennen wir sie Form1, Form2, Form3.

Ich möchte ein Druckblatt erstellen, auf dem ich auswählen kann, welches Formular ich sehen möchte, sodass ich nicht zwischen Blättern navigieren muss, um das gewünschte zu finden. Und ich möchte in diesem Druckblatt einen Zähler haben, der jedes Mal zählt, wenn ich es an einen Drucker sende.

Was habe ich bisher getan? Ich habe diese Formel erstellt, wobei M1 eine Dropdown-Liste mit den Formularnamen ist. Wenn ich also Form2 sehen möchte, wähle ich Form2 in der Dropdown-Liste aus und die Formel zeigt alle Form2-Blätter an.

=IF($M$1="Form1";IF('Form1'!A1="";"";'Form1'!A1);"")&IF($M$1="Form2";IF('Form2'!A1="";"";'Form2'!A1);"")&IF($M$1="Form3";IF('Form3'!A1="";"";'Form3'!A1);"")

Das funktioniert gut, da alle Formulare standardisiert sind.

Nachdem ich das gewünschte Formular ausgewählt habe, muss ich eine ID-Nummer meines Unternehmens eingeben und es anschließend ausdrucken.

Ich würde gerne wissen, ob es möglich ist, in diesem Blatt einen Zähler zu erstellen, der zählt, wie oft ich gedruckt habe … Oder irgendetwas, das in chronologischer Reihenfolge zählt, wenn ich etwas speichere oder ändere …

Antwort1

Alle Ihre Wünsche können berücksichtigt werden. Aber leider nur mit VBA.

Behalten Sie das Dropdown-Menü, fügen Sie aber auch eine Schaltfläche hinzu, die ein Makro auslöst.

Lesen Sie im Makro die Zelle mit der Dropdown-Liste und senden Sie das entsprechende Blatt zum Drucken. Aktualisieren Sie dann den entsprechenden Zähler, der sich in einer Reihe von Zellen auf derselben Seite wie die Dropdown-Liste und die Schaltfläche befinden kann.

Um die Anzahl der Speicherungen zu zählen, benötigen Sie ein Makro mit der Funktion before_save. Sie müssen danach suchen. Ich glaube, es gibt sogar einen Artikel darüber in meinem Blog. Ich kann mich nicht erinnern, es ist ein paar Jahre her, seit ich das gemacht habe. Das Prinzip ist dasselbe wie beim vorherigen Makro, da Sie einfach 1 zur entsprechenden Zelle hinzufügen.

Antwort2

Eine etwas sauberere Möglichkeit, das „Druckblatt“ zu erstellen, das den Inhalt eines der anderen 50 Blätter anzeigt, besteht darin, die Zelle A1auf

=INDIRECT($M$1 & "!A1")

Dadurch wird eine Textzeichenfolge erstellt, die wie der qualifizierte Name der Zelle aussieht, die Sie sehen möchten, und dann wird die INDIRECT()Funktion verwendet, um die Referenzierung dieser Zeichenfolge aufzuheben (d. h., um sie als Zelladresse zu behandeln und den Inhalt der identifizierten Zelle abzurufen). Damit müssen Sie Ihre Formel(n) nicht ändern, wenn Sie hinzufügen Form51. Warnungen:

  • Dies kann dazu führen, dass Excel viel Arbeit (d. h. viel Zeit) damit verbringt, diese indirekten Zellen neu zu berechnen, wennirgendetwasÄnderungen (nicht nur M1). Ich bin nicht sicher, ob es schlimmer wäre als das, was Sie jetzt haben.
  • Widerstehen Sie unbedingt der Versuchung, beim Aktualisieren Daten zu ändern oder neue Daten in das „Druckblatt“ einzugeben Form42. (Natürlich haben Sie dieses Problem jetzt.) Möglicherweise können Sie sich vor solchen Unfällen schützen, indem Sie das Druckblatt schützen.

Es gibt andere Möglichkeiten, das Druckblatt zu erstellen, z. B. mit VBA, um

  • Erstellen Sie eine benutzerdefinierte Funktion, die den INDIRECT()Aufruf ersetzen könnte, aber reibungsloser funktioniert, oder
  • tatsächlich alle Daten auf das Druckblatt kopieren, wann immer Sie Änderungen vornehmen .FormnnM1

Sie können Änderungen zählen, indem Sie eine Worksheet_ChangeVBA-Routine schreiben.

Ich kenne keine Möglichkeit, wie die Logik des Blattes zählen/erkennen kann, wann Sie es drucken. Sie können jedoch möglicherweise den gewünschten Effekt erzielen, indem Sie eine Druckroutine in VBA schreiben. Eine

PrintOut , , , True

Anweisung druckt das Blatt für Sie aus; fügen Sie alle anderen gewünschten Aktionen hinzu (z. B. das Erhöhen eines Zählers). (Sie müssen nur daran denken,mit diesem Makro.) Der vierte Parameter PrintOutistVorschau, auf eingestellt, True damit Microsoft Excel vor dem Drucken des Blatts eine Druckvorschau aufruft (und Ihnen so die Möglichkeit gibt, den Vorgang abzubrechen) oder False(oder weggelassen), damit das Blatt sofort und bedingungslos gedruckt wird.

SehenWie füge ich VBA in MS Office hinzu? für Informationen zu, naja, Sie wissen schon.

verwandte Informationen