Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: XLTM: zählen wie oft geöffnet

XLTM: zählen wie oft geöffnet
22.05.2019 12:41:42
Hans
Hallo zusammen,
folgendes habe ich vor:
Es liegt eine Excel-Vorlage (.xltm) auf einem Server die jeden Tag von verschiedenen Kollegen geöffnet wird. Ich würde gerne zählen lassen, wie oft diese Datei geöffnet wurde. Am besten wäre es, wenn in einem gesonderten Datei-Ordner bei jedem Öffnen einfach eine .txt-Datei ohne Inhalt erzeugt wird (bspw. 1.txt, dann 2.txt, usw.).
Hat jemand eine Idee wie man das umsetzen kann?
Vielen Dank und viele Grüße
Simy
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: XLTM: zählen wie oft geöffnet
22.05.2019 13:12:55
Rudi
Hallo,
in DieseArbeitsmappe:
Private Sub Workbook_Open()
Dim lngLastNumber As Long, strFILE As String
Dim intFREE As Integer
Const strPFAD As String = "c:\test\"
Const strEXT As String = ".txt"
intFREE = FreeFile
strFILE = Dir(strPFAD & "*" & strEXT, vbNormal)
Do While strFILE  ""
lngLastNumber = WorksheetFunction.Max(lngLastNumber, --Replace(strFILE, strEXT, ""))
strFILE = Dir
Loop
lngLastNumber = WorksheetFunction.Max(lngLastNumber + 1, 1)
Open strPFAD & lngLastNumber & strEXT For Output As #intFREE
Close #intFREE
End Sub

Gruß
Rudi
Anzeige
AW: XLTM: zählen wie oft geöffnet
22.05.2019 13:15:06
Marco
Hallo Simy,
am einfachsten Du setzt dieses Makro direkt in "DieseArbeitsmappe".
in dem Makro musst Du allerdings ein Feld angeben in dem der zähler gespeichert wird.
Evtl. das Makro noch erweitern, dass es automatisch gespeichert wird.
Das wäre der einfachste Lösungsansatz.
Viele Grüße
Marco
Private Sub Workbook_Open()
Dim strDateiname As String, strPath As String
Dim zaehler As Integer
zaehler = ThisWorkbook.Sheets(1).Range("A1").Value
zaehler = zaehler + 1
ThisWorkbook.Sheets(1).Range("A1").Value = zaehler
strPath = "H:\txt\" 'Speicherpfad eintragen
strDateiname = zaehler & ".txt" 'Dateinamen mit Dateiendung eintragen
Open strPath & strDateiname For Output As #1
Close #1
ThisWorkbook.Sheets("Tabelle1").Range("A1").Value = zaehler
End Sub

Anzeige
AW: XLTM: zählen wie oft geöffnet
22.05.2019 13:16:36
Nepumuk
Hallo Simy,
in das Modul "DieseArbeitsmappe":
Option Explicit

Private Sub Workbook_Open()
    Const FOLDER_PATH As String = "H:\Folder" ' Anpassen !!!
    Dim objFileSystemObject As Object, objFolder As Object
    Dim objTextFile As Object
    If ThisWorkbook.Path = vbNullString Then
        Set objFileSystemObject = CreateObject(Class:="Scripting.FileSystemObject")
        Set objFolder = objFileSystemObject.GetFolder(FOLDER_PATH)
        Set objTextFile = objFileSystemObject.CreateTextFile( _
            FOLDER_PATH & "\" & CStr(objFolder.Files.Count + 1) & ".txt", True)
        Call objTextFile.Close
        Set objTextFile = Nothing
        Set objFolder = Nothing
        Set objFileSystemObject = Nothing
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: XLTM: zählen wie oft geöffnet
22.05.2019 13:32:05
Hans
Vielen Dank an Euch drei!! Funktioniert perfekt :-)
AW: XLTM: zählen wie oft geöffnet
22.05.2019 13:37:33
Rudi
Hallo,
nimm Nepumuks Code.
If ThisWorkbook.Path = vbNullString Then
berücksichtigt, ob die aus der Vorlage erzeugte Mappe noch nicht gespeichert wurde.
Bei mir und Marco wird auch das Öffnen der resultierenden Mappen gezählt.
Gruß
Rudi
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

XLTM: Zählen, wie oft eine Vorlage geöffnet wurde


Schritt-für-Schritt-Anleitung

Um zu zählen, wie oft eine Excel-Vorlage (.xltm) geöffnet wird, kannst du ein VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne die Excel-Vorlage (.xltm) und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge den folgenden Code in das Modul „DieseArbeitsmappe“ ein:

    Private Sub Workbook_Open()
       Dim strDateiname As String, strPath As String
       Dim zaehler As Integer
       zaehler = ThisWorkbook.Sheets(1).Range("A1").Value
       zaehler = zaehler + 1
       ThisWorkbook.Sheets(1).Range("A1").Value = zaehler
       strPath = "H:\txt\" ' Speicherpfad anpassen
       strDateiname = zaehler & ".txt" ' Dateinamen mit Endung
       Open strPath & strDateiname For Output As #1
       Close #1
       ThisWorkbook.Sheets("Tabelle1").Range("A1").Value = zaehler
    End Sub
  3. Speichere die Vorlage und schließe den VBA-Editor.

  4. Öffne die Vorlage erneut, um zu testen, ob die .txt-Datei wie gewünscht erstellt wird.


Häufige Fehler und Lösungen

  • Fehler: Die .txt-Datei wird nicht erstellt.

    • Lösung: Überprüfe den angegebenen Speicherpfad. Stelle sicher, dass der Pfad existiert und dass du Schreibrechte in diesem Ordner hast.
  • Fehler: Der Zähler wird nicht aktualisiert.

    • Lösung: Stelle sicher, dass in Zelle A1 der initiale Wert (z.B. 0) gesetzt ist. Ansonsten wird der Zähler nicht korrekt erhöht.
  • Fehler: Makros sind deaktiviert.

    • Lösung: Aktiviere die Makros in den Excel-Optionen. Gehe zu „Datei“ -> „Optionen“ -> „Trust Center“ -> „Einstellungen für das Trust Center“ -> „Makroeinstellungen“.

Alternative Methoden

Eine alternative Methode besteht darin, das FileSystemObject zu verwenden. Hier ein Beispiel für den Code:

Private Sub Workbook_Open()
    Const FOLDER_PATH As String = "H:\Folder" ' Anpassen !!!
    Dim objFileSystemObject As Object, objFolder As Object
    Dim objTextFile As Object

    Set objFileSystemObject = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFileSystemObject.GetFolder(FOLDER_PATH)
    Set objTextFile = objFileSystemObject.CreateTextFile(FOLDER_PATH & "\" & CStr(objFolder.Files.Count + 1) & ".txt", True)
    Call objTextFile.Close
End Sub

Diese Methode zählt die Dateien im angegebenen Ordner und erstellt eine neue .txt-Datei.


Praktische Beispiele

Hier sind einige praktische Beispiele für das Zählen der Öffnungen einer Excel-Vorlage:

  1. Zählen ohne Benutzerinteraktion: Verwende den ersten Code und führe die Schritte aus, um die Datei zu speichern und zu öffnen.
  2. Zähler in einer bestimmten Zelle: Ändere die Zellreferenz im Code, um den Zähler in verschiedenen Zellen zu speichern.
  3. Zusätzliche Informationen speichern: Du kannst das Makro erweitern, um auch das Datum und die Uhrzeit der Öffnung in einer anderen Zelle zu speichern.

Tipps für Profis

  • Automatisches Speichern anpassen: Du kannst das Makro so erweitern, dass die Excel-Datei automatisch gespeichert wird, nachdem die Zählung erfolgt ist.
  • Fehlerbehandlung implementieren: Füge Fehlerbehandlungsroutinen in dein Makro ein, um potenzielle Probleme abzufangen.
  • Benutzeranpassung: Lass den Benutzer den Speicherort der .txt-Dateien auswählen, indem du einen Dialog zur Ordnerauswahl hinzufügst.

FAQ: Häufige Fragen

1. Frage
Wie kann ich sicherstellen, dass das Makro bei jeder Öffnung der Datei ausgeführt wird?
Antwort: Du musst den Code im Modul „DieseArbeitsmappe“ platzieren, damit das Workbook_Open()-Ereignis jedes Mal ausgelöst wird, wenn die Datei geöffnet wird.

2. Frage
Kann ich die Zählergebnisse in einer Excel-Tabelle speichern?
Antwort: Ja, du kannst den Zähler in einer Zelle speichern, indem du die entsprechende Zellreferenz im Makro anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige