Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
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
Inhaltsverzeichnis

laufende Nummerierung und korrekte Archivierung

laufende Nummerierung und korrekte Archivierung
El_presidente1@web.de
Hallo liebe Forum-User,
ich habe in der folgenden Excel-Datei folgendes Problem:
- ich möchte das es jede Nummer (1,2,3,4,5....) nur einmal gibt und automatisch erzeugt wird wenn man auf den "New Point-Button" klickt (d.h. fortlaufende Nummern). Genauso soll das Datum wenn es heute eine neue Zeile gibt (also der "New-Point_Button angeklickt wird), das heutige Datum automatisch beinhalten. Beim speichern soll es gleich bleiben, damit beim nächsten Mal das Datum wann eine Zeile erstellt worden ist, ersichtlich ist.
Des Weiteren soll wenn bei "Status"............ "done" eingetragen wird, diese Zeile nach drücken des "Update-Buttons" in den Reiter "Archive" landen.
Im Moment bekomme ich alles immer nur mit dem heutigen Datum hin und er merkt sich nicht wann bei welchem Datum was gespeichert wurde. Außerdem habe ich auch das Problem wenn ich jetzt eine Zeile beim Status auf "done" setze, die laufende Nummer mit einem Minus-Zeichen versehen wird und nicht korrekt mitgenommen wird :roll:
Könnt ihr mir bitte helfen?
https://www.herber.de/bbs/user/76963.xls

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: laufende Nummerierung und korrekte Archivierung
14.10.2011 22:05:43
fcs
Hallo El_presidente1
mit Formeln kannst du die fortlaufende Nummer und das Eintragsdatum nicht verwalten.Du musst jeweils feste Werte in Spalte A und B eintragen.
Den letzten Wert des fortlaufenden Zähler kannst du unter einem Namen speichern. Alternativ könntest du auch eine Zelle in einem Tabellenblatt verwenden, um den letzten Wert des Zählers zu speichern.
Füge in deiner Datei den Namen "Zaehler" ein. Unter bezieht sich auf trägst du die Formel =0 ein.
Mit den nachfolgenden Anpassungen in deinem Makro1 wird dann jeweils der Zähler-Wert um 1 erhöht und zusammen mit dem heutigen Datum für ein neues Item eingetragen.
Update funktioniert dann auch. Ein Problem gibt es jedoch, wenn alle Items "done" sein können. Dann werden alle Zeilen übertragen und gelöscht. Danach fehlt dann eine Musterzeile für ein neues Item. Falls das vorkommen kann, dann muss du ggf. deine Update-Makros in diese Richtung korrigieren. Irgendwie hast du eine extrem aufwendige Form (mit all den Konstanten) im Code für das Kopieren gewählt. Da hatte ich jetzt keinen Nerv, die passende Position für eine entsprechende Prüfung zu suchen. Nachfolgend auch noch mein Vorschlag das Update-Makro.
Gruß
Franz

Sub Makro1()
With ActiveCell
If .Row > 7 Then
.Offset(-1, 0).EntireRow.Copy
.EntireRow.Insert Shift:=xlDown
Application.CutCopyMode = False
On Error Resume Next
.Offset(-1, 0).EntireRow.SpecialCells(xlCellTypeConstants).ClearContents
'Datum in Spalte B der neuen Zeile eintragen
ActiveSheet.Cells(.Row - 1, 2) = Date
'Zähler-Wert des Names um 1 erhöhen
With Application.Names("Zaehler")
.RefersTo = "=" & Val(Mid(.Value, 2)) + 1
End With
'Neuen Zähler-Wert des Names in Spalte A der neuen Zeile eintragen
ActiveSheet.Cells(.Row - 1, 1) = Val(Mid(Application.Names("Zaehler").Value, 2))
Else
If .Row = 7 And IsEmpty(ActiveSheet.Cells(.Row, 1)) Then
'Datum in Spalte B der Zeile 7 eintragen
ActiveSheet.Cells(.Row, 2) = Date
'Zähler-Wert des Names um 1 erhöhen
With Application.Names("Zaehler")
.RefersTo = "=" & Val(Mid(.Value, 2)) + 1
End With
'Neuen Zähler-Wert des Names in Spalte A der Zeile 7 eintragen
ActiveSheet.Cells(.Row, 1) = Val(Mid(Application.Names("Zaehler").Value, 2))
Else
MsgBox "Bitte eine Zeile unterhalb Zeile 7 wählen", vbInformation, _
"neues open-item eintragen"
End If
End If
End With
End Sub
Sub Update()
Dim Zeile As Long, ZeileArchiv As Long, ZeileL As Long, iCount As Long
With Worksheets("open items")
ZeileL = .Cells(.Rows.Count, 1).End(xlUp).Row
If ZeileL  7 Then
If Application.WorksheetFunction.CountBlank(.Range(.Cells(8, 1), _
.Cells(ZeileL, 1))) > 0 Then
If ZeileL = 8 Then
.Rows(8).Delete
Else
.Range(.Cells(8, 1), .Cells(ZeileL, 1)).SpecialCells(xlCellTypeBlanks).EntireRow. _
Delete
End If
End If
'leere Zeile 7 löschen, wenn noch andere Zeilen vorhanden sind
ZeileL = .Cells(.Rows.Count, 1).End(xlUp).Row
If ZeileL > 7 And IsEmpty(.Cells(7, 1)) Then .Rows(7).Delete
End If
End With
MsgBox "Es wurden " & iCount & " erledigte Zeilen ins Archiv übertragen", vbInformation, _
"Done-Items ins Archiv"
End Sub

Anzeige
AW: laufende Nummerierung und korrekte Archivierung
18.10.2011 15:15:26
slopor
Zuerst einmal vielen Dank Franz!
Zu deiner Frage: Es können niemals alle Punkte "done" sein.
Verstehe leider diese 2 Absätze von deiner Nachricht nicht:
Den letzten Wert des fortlaufenden Zähler kannst du unter einem Namen speichern. Alternativ könntest du auch eine Zelle in einem Tabellenblatt verwenden, um den letzten Wert des Zählers zu speichern.
Füge in deiner Datei den Namen "Zaehler" ein. Unter bezieht sich auf trägst du die Formel =0 ein.

Kannst du mir die bitte nochmal erklären wo ich was wie mache? Kann dir leider nicht folgen :-(
Gruß
Slopor

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige