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

Forumthread: beim Speichern eine fortlaufende Nummer vergeben

beim Speichern eine fortlaufende Nummer vergeben
15.05.2017 12:54:16
Mo
Guten Tag zusammen,
ich habe bei meinem Excel-Projekt ein Problem und kann leider nicht weitermachen.
Aufgabenstellung:
Ich würde eine Excel-Datei (Interne Reklamation) der Name "IR-2017-05-15-0001" in einem festen Ordner speichern.
-Dabei soll die fortlaufende Nummer 0001 (die letzten 4 Ziffern am Dateiname), die sich in der Datei auf der Zeile "E5" befindet, automatisch vergeben (In der Zeile und beim Dateiname).
-Vorher soll das Makro eine Übersichtsliste, wo alle interne Reklamationen mit den entsprechenden Nummer stehen, überprüfen und für die Datei die nächste fortlaufende Nummer vergeben werden.
Beispiel:
In der Übersichtsliste steht die letzte interne Reklamation mit dem Name "IR-2017-05-15-0009". Für meine neue Reklamation soll der Name "IR-2017-05-15-0010" automatisch beim Öffnen der Datei vergeben.
Ich habe leider keine Idee wie ich das Problem lösen soll.
https://www.herber.de/bbs/user/113592.xlsm
: In diesem Link ist die Datei vorhanden.
Danke im Voraus!
Liebe Grüße
Mo
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Die Frage ist...
15.05.2017 12:59:48
Michael
Mo,
...wo steht denn die Übersichtsliste? In der Bsp-Datei jedenfalls nicht.
Das wäre mal der erste entscheidende Ansatzpunkt, denn ohne zu wissen wo diese Liste ist, kann ja auch schwer hochgezählt werden.
LG
Michael
Nicht getestet
15.05.2017 15:25:30
Max2
Hallo,
hier ein nicht getesteter Code:

Option Explicit
Private Function get_last_Number() As String
Dim fso As Object
Dim oFolder As Object
Dim oFile As Object
Dim temp As String
Dim fileName As String
Dim i As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFolder = fso.GetFolder("C:\temp") 'Dein Ordner Pfad mit Dateien
temp = "0000"
For Each oFile In oFolder.Files
i = InStrRev(oFile.Name, ".") - 1
fileName = Left(oFile.Name, i)
If Right(fileName, i - 4) > temp Then
temp = Right(fileName, 4)
End If
Next oFile
If temp  "" Then get_last_Number = temp
Set fso = Nothing
Set oFolder = Nothing
End Function
Sub change_Number()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(1)
With ws
.Cells(5, 5).Value = "-" & CStr(get_last_Number) 'E5
End With
End Sub

Anzeige
AW: beim Speichern eine fortlaufende Nummer vergeben
16.05.2017 17:29:20
Peter
Hallo Mo,
ich habe zu Deiner Datei drei zusätzliche Makros erstellt, um eine fortlaufende Nr. zu erzeugen und damit zu speichern. Ich gehe dabei davon aus, dass es sich im Anfang um ein leeres Formular handelt. Bei meinen Tests hieß die Datei "Stoermeldung". Die Datei mit den Nummern hieß bei meinem Test "Nummernzaehler".
Solltest Du bereits ausgefüllte Störmeldungen erhalten, dann müssen die Makros in einer Extra-Datei (z. B. persönl. Makroarbeitsmappe) gespeichert werden. In diesem Fall sollten die Störmeldungen immer als 1. Datei geladen werden und in den Makros der Bezug auf "Workbooks(1)" erfolgen.
Hier nun die Datei, die Du zum Testen als "Stoermeldung" speichern solltest.
https://www.herber.de/bbs/user/113622.xlsm
Und hier die Datei "Nummernzaehler".
https://www.herber.de/bbs/user/113623.xlsm
Die Datei wird über die Datei "Stoermeldung" aufgerufen. Es wird die aktuelle Nummer übertragen. Beim Speichern der Datei "Stoermeldung" unter der neuen Bezeichnung wird in der Datei "Nummernzaehler" die vergebene Nummer registriert und die nächstfolgende Nummer bereitsgehalten. Beide Dateien werden gesichert, die Datei "Nummernzaehler" wird geschlossen.
Bitte mal ausprobieren, Rückmeldung wäre schön.
Mit freundlichem Gruß
Peter Kloßek
Anzeige
Viel Glück mit der Rückmeldung...
17.05.2017 08:41:15
Michael
Peter,
...aber Alex (oder Mo) hat schon in zwei identischen Fäden (s.a. hier https://www.herber.de/forum/archiv/1556to1560/t1558650.htm#1558650) bisher vermieden auf Nachfragen und/oder Lösungen (es gibt derer bereits je eine von Max2 und mir) zu reagieren.
Schönen Tag Dir!
LG
Michael
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Fortlaufende Nummern in Excel automatisch vergeben


Schritt-für-Schritt-Anleitung

Um eine fortlaufende Nummer in Excel automatisch zu vergeben, kannst du ein Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

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

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Option Explicit
    
    Private Function get_last_Number() As String
       Dim fso As Object
       Dim oFolder As Object
       Dim oFile As Object
       Dim temp As String
       Dim fileName As String
       Dim i As Integer
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set oFolder = fso.GetFolder("C:\temp") ' Dein Ordner Pfad mit Dateien
       temp = "0000"
       For Each oFile In oFolder.Files
           i = InStrRev(oFile.Name, ".") - 1
           fileName = Left(oFile.Name, i)
           If Right(fileName, i - 4) > temp Then
               temp = Right(fileName, 4)
           End If
       Next oFile
       If temp <> "" Then get_last_Number = temp
       Set fso = Nothing
       Set oFolder = Nothing
    End Function
    
    Sub change_Number()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Sheets(1)
       With ws
           .Cells(5, 5).Value = "-" & CStr(get_last_Number) ' E5
       End With
    End Sub
  4. Speichere die Datei als Makro-fähige Arbeitsmappe (*.xlsm).

  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Füge einen Button hinzu, um das Makro auszuführen. Du kannst das über die Entwicklertools tun, indem du "Einfügen" > "Button" wählst.

  7. Weise das Makro zu, um die fortlaufende Nummer zu generieren.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 76"

    • Lösung: Überprüfe den angegebenen Ordnerpfad in Set oFolder = fso.GetFolder("C:\temp"). Stelle sicher, dass der Ordner existiert.
  • Fehler: "Typen unverträglich"

    • Lösung: Stelle sicher, dass die Zelle E5 im richtigen Format ist. Sie sollte als Text formatiert sein, um die führenden Nullen zu erhalten.

Alternative Methoden

  1. Excel-Funktion: Du kannst die Funktion =MAX(A:A)+1 verwenden, um die nächste Nummer zu ermitteln, wenn du die Nummern in Spalte A hast.
  2. Formel für fortlaufende Rechnungsnummer: Erstelle eine Formel, die das aktuelle Datum verwendet, um eine eindeutige Nummer zu generieren, z.B. =TEXT(HEUTE(),"JJJJMMTT")&TEXT(ZÄHLENWENN(A:A,">="&HEUTE()),"000").

Praktische Beispiele

  • Beispiel 1: Wenn deine letzte Nummer in E5 0009 ist, wird beim nächsten Speichern die Zahl automatisch auf 0010 aktualisiert.
  • Beispiel 2: Verwende die Funktion =TEXT(HEUTE(),"JJJJMMTT")&"-"&TEXT(ZÄHLENWENN(A:A,">="&HEUTE()),"000"), um eine fortlaufende Rechnungsnummer zu generieren.

Tipps für Profis

  • Speichere dein Makro in der persönlichen Makroarbeitsmappe, um es in allen Excel-Dateien verwenden zu können.
  • Verwende die Excel fortlaufende Nummerierung prüfen-Funktion, um sicherzustellen, dass keine Duplikate in deiner Liste vorhanden sind.

FAQ: Häufige Fragen

1. Wie kann ich die fortlaufende Nummer beim Öffnen der Datei vergeben? Du kannst das Makro im Workbook_Open-Ereignis speichern, so dass es automatisch ausgeführt wird, wenn die Datei geöffnet wird.

2. Ist dieser Prozess auch für andere Dateitypen geeignet? Ja, du kannst ähnliche Makros für andere Dateitypen erstellen, indem du den Code anpasst, um die spezifischen Anforderungen zu erfüllen.

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