Herbers Excel-Forum - das Archiv

+1 hochzählen

Bild

Betrifft: +1 hochzählen
von: Uwe Hladik

Geschrieben am: 04.01.2007 23:16:57
Hallo an Alle und nachträglich ein frohes Neues,
ich benötige mal einen Schubser.
Hab in der Recherche gesucht aber nix zu meinem Problem gefunden.
Ich habe eine Musterdatei die immer wieder öffne, fülle und sie dann unter anderem Namen und Ort wieder abzuspeichern.
Die Frage ist jetzt, wie bekomm ich es hin das in einer Zelle eine Zahl weiter hochzählt beim öffnen.
Das....
Private Sub Workbook_Open()
Application.AskToUpdateLinks = False
With Worksheets("Eingabe").Range("A170")
.Value = .Value + 1
End With
End Sub

...hab ich unter Arbeitsmappe drin.
Zählt aber nur hoch wenn ich die Musterdatei speichere und beim nächstenmal aufrufe.
Die Musterdatei soll aber nur geöffnet werden und nicht gespeichert.
Hoffe ich hab das einigermaßen erklären können.
Vorab schon mal Dank!
Gruß Uwe
Bild

Betrifft: AW: +1 hochzählen
von: Luc:-?

Geschrieben am: 05.01.2007 00:28:11
Hallo Uwe,
wenn du die Musterdatei nie speicherst, wdn auch die Änderungen an der Zelle nie wirksam und du hast stets den gleichen Ausgangszustand. Folglich müsste ein solcher Zähler unabhängig von der Musterdatei existieren. Mit VBA ginge das für alle Open-Vorgänge der Musterdatei während einer Sitzung mit einer als Static deklarierten Variablen einer Prozedur. Wenn das nicht reicht, schlage ich entweder automatische Speicherung der Musterdatei oder aber Folgendes vor: Ein AddIn mit analoger Ereignisprozedur anlegen, die in einer Zelle auf dem Tabellenblatt des AddIns die lfdNr erzeugt und das AddIn anschließend automatisch speichert. Deine Ereignisprozedur in der Musterdatei liest diese Zelle aus und trägt die Zahl ein. Wenn du das AddIn mit dem AddIn-Manager mit Excel verbindest, wird es bei jedem Excel-Start vor allen anderen Dateien gestartet. Das habe ich allerdings noch nie ausprobiert! Käme also auf einen Versuch an, dessen Ergebnis du hier gern mitteilen kannst. ;-)
Gutes Neues dito!
Luc :-?
Bild

Betrifft: AW: +1 hochzählen
von: Erich G.

Geschrieben am: 05.01.2007 07:08:26
Hallo Uwe,
Luc hat dir ja schon beschrieben, dass das Hochzählen nur funktioniert, wenn die Zahl irgendwo gespeichert wird.
Dafür gibt es etliche Möglichkeiten, z. B. Speicherung in einer Textdatei oder in der Registry.
Wenn die Speicherung der Musterdatei nicht wirklich ausgeschlossen ist, geht es einfacher:
Du kannst die Mappe im Workbook_Open automatisch speichern lassen.
Ich vermute, das Speichern (und das Hochzählen) soll nur für die Musterdatei selbst passieren,
nicht aber für die Mappen, die du durch SpeichernUnter daraus herstellst.
Das sähe dann so aus (statt Musterdatei.xls musst du noch den Namen deiner Musterdatei eintragen):
Private Sub Workbook_Open()
If Me.Name = "Musterdatei.xls" Then       ' Name deiner Mustermappe
Application.AskToUpdateLinks = False
With Worksheets("Eingabe").Range("A170")
.Value = .Value + 1
End With
ThisWorkbook.Save
End If
End Sub
Rückmeldung wäre nett! - Erich aus Kamp-Lintfort wünscht allen einen guten Start ins neue Jahr!
Bild

Betrifft: AW: +1 hochzählen
von: Uwe Hladik

Geschrieben am: 07.01.2007 18:37:11
Hallo Luc und Erich,
erstmal Entschuldigung für die verspätete Antwort von mir!(Familienwochenende)
Dachte das es irgendwie einfacher ging mit fortlaufender Nummer wie bei Rechnungsnummern z.b.
Also ich hab mir schon vorgestellt die Musterdatei zu öffnen und wenn sie gefüllt ist mit einer fortlaufenden Nummer mit anderem Namen abzuspeichern.
Das mit dem ablegen in einer Textdatei oder dem Registryeintrag sagt mir so leider nichts, da fehlt mir noch eine Menge Wissen wie mir scheint.
Vielleicht geht das ja das man einen Button erstellt der unter Laufwerk/Pfad/Ordner die Datei mit neuem Namen ablegt, und gleichzeitig die alte Musterdatei unverändert speichert und dabei um eine Nummer höher zählt. So das beim nächsten öffnen der Musterdatei schon um eins höher gezählt ist.
Keine Ahnung ob so was geht und wie sowas aussehen müsste.
Vieleicht gibt es ja noch eine Lösung.
Vorab schon mal víelen Dank!!
Gruß Uwe
Bild

Betrifft: AW: +1 hochzählen
von: Erich G.

Geschrieben am: 07.01.2007 22:34:55
Hallo Uwe,
du hast meinen Vorschlag nicht ausprobiert, oder?
Ich hatte dir das geschrieben:
Wenn die Speicherung der Musterdatei nicht wirklich ausgeschlossen ist, geht es einfacher:
Du kannst die Mappe im Workbook_Open automatisch speichern lassen.
Ich vermute, das Speichern (und das Hochzählen) soll nur für die Musterdatei selbst passieren,
nicht aber für die Mappen, die du durch SpeichernUnter daraus herstellst.
Das sähe dann so aus (statt Musterdatei.xls musst du noch den Namen deiner Musterdatei eintragen):
Private Sub Workbook_Open()
If Me.Name = "Musterdatei.xls" Then       ' Name deiner Mustermappe
Application.AskToUpdateLinks = False
With Worksheets("Eingabe").Range("A170")
.Value = .Value + 1
End With
ThisWorkbook.Save
End If
End Sub
Probier's doch bitte einfach mal aus.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Bild

Betrifft: AW: +1 hochzählen
von: Uwe Hladik

Geschrieben am: 08.01.2007 01:05:09
Hallo Erich,
jetzt hab ich es kapiert.
Bei deiner Formel speichert er sofort erst mal die Musterdatei ab.
Hab ich jetzt so eingearbeitet und geht super.
Hatte auch nicht berücksichtigt das mit meiner Formel auch die dann neu abgespeicherte Datei immer um 1 höher gezählt wurde. Das sollte ja dann nicht mehr so sein.
Haste natürlich direkt 2 Fliegen mit einer Kappe geschlagen.
Super ...Danke nochmals!
Gruß Uwe
 Bild