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

Fortlaufende Seriennummern mit VBA

Forumthread: Fortlaufende Seriennummern mit VBA

Fortlaufende Seriennummern mit VBA
18.10.2007 17:26:00
kritzi
Hallo,
ich möchte über ein Macro fortlaufende Seriennummern in eine Excel Tabelle einfügen lassen.
Das würde im Prinzip mit .AutoFill wunderbar funktionieren, wenn da nicht die Seriennummern nicht direkt untereinander stehen würden.
Bsp.:
SerNrA F1401
SerNrB 2K394
SerNrA F1402
SerNrB 2K395
SerNrA F1403
SerNrB 2K396
...
Es gehört in diesem Fall jede 2. Zeile zusammen. Die Anzahl an verschiedenen Seriennummernfeldern liegt zwischen 1-5, weshalb ich auch ein Macro benötige um die Liste zu Erzeugen.
Ich sehe momentan 2 möglichkeiten das Problem zu lösen:
1. Ich finde eine Funktion mit der ich den Zahlenanteil der Seriennummer erhöhen kann. (Deshalb Poste ich das hier.)
2. Ich erstelle jedes mal ein eigenes Blatt, auf dem ich die Seriennummern mit .AutoFill generiere und dann in die Liste übertrage. (Das währe dann die Notlösung)
Für alternative Vorschläge währe ich natürlich auch offen.

Anzeige

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

Betreff
Datum
Anwender
Anzeige
vorher beide Zellen markieren
18.10.2007 17:38:00
Matthias
Hallo
Beide markieren dann .AutoFill Methode anwenden.
Userbild
Userbild

AW: vorher beide Zellen markieren
20.10.2007 03:29:00
kritzi
Hallo,
danke für den Vorschlag.
Leider habe ich nicht erwähnt, dass es unter umständen auch Zeilen giebt die nicht automatisch ausgefüllt werden sollten.
Ich versuche mal meine Aufgabenstellung zu konkretisieren:
Jeder Listeneintrag besteht aus einer Seriennummer und bis zu 5 Informationszeilen. Da die Liste (nur) zum Ausdrucken vorgesehen sein sollte, kann ich die Informationsfelder nicht nebeneinander Plazieren, sondern ich muss sie aus Platzgründen untereinander Platzieren.
Die Informationsfelder, werden entweder automatisch (fortlaufende Nummer), teilweise per Hand (vorausgefüllter Anfang) oder komplett per Hand (kein automatischer Eintrag) eingetragen.
Das sieht dann ungefär so aus:

15763-001 | Info1: xyz-078
| Info2: soundso13 __________
| Info3: teil 17a-001
| Bemerkung: __________
15763-002 | Info1: xyz-079
| Info2: soundso13 __________
| Info3: teil 17a-002
| Bemerkung: __________


Ob ein Feld automatisch ausgefüllt wird oder nicht entscheidet sich mit dem Macro Assistenen und wir von mir bereits im Macro abgefragt. Ich weiss hald nur noch nicht, wie ich die Daten Zeile für Zeile vom vorhergehenden auf den aktuellen Eintrag herunter bekomme.

Anzeige
AW: Fortlaufende Seriennummern mit VBA
22.10.2007 09:32:51
Wolli
Hallo kritzi, es ist gar nicht so schwer, das mit einer ganz normalen Funktion zu lösen:
Userbild
Die Funktion muss natürlich jeweils auf die Seriennummer angepasst werden: schon in diesem Beispiel sind es zwei verschiedene Funktionen.
Falls nötig, könnte man eine benutzerdefinierte Funktion programmieren, die selbständig den Zahlenanteil ermittelt und hochzählt, aber das tut vielleicht gar nicht not.
Gruß, Wolli

Anzeige
AW: Fortlaufende Seriennummern mit VBA
23.10.2007 03:37:01
kritzi
Hallo,
das ist natürlich ein sehr interessanter Lösungsansatz, eine Formel zu benutzen.
Allerdings sollten die Sereinnummern-Felder sehr dynamisch gehalten werden, die Funktion der 5 Felder und somit auch die schreibweise der Seriennummer frei wählbar sind.
Ausserdem ist das Macro so konstruiert, dass man vor dem Drucken der Liste, diese noch manuell überarbeiten kann. Das währe natürlich fatal, wenn die Änderung einer Zeile durch die Formel auswirkungen auf den Rest des Dokuments hätte.
Das Ziel der Liste ist, dass der Benutzer bei veränderung der Anforderungen, diese anpassen kann, ohne einen Programmierer zu benötigen.
Aus diesem Grund importiere ich z.b. aus dem 2. Arbeitsblatt eine einfach zu wartende Liste in ein Listenfeld des Assistenten. ich überlege auch den aktuellen zustand der Eingabefelder des Assistenten in einem Arbeitsplatt zwischenzuspeichern.
Von da her währe es kein Problem die Seriennummern in einem eigenen Arbeitsblatt Spalte für Spalte mit .AutoFill zu erstellen um sie dann in die Liste rüber zu kopieren.
Ich hätte mir hald nur gedacht, dass es vielleicht eine Funktion giebt die in der Lage ist den Zahlenanteil eines Strings so zu erhöhren, wie .AutoFill das machen würde.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Fortlaufende Seriennummern in Excel mit VBA erstellen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

  2. Drücke ALT + F11, um den Visual Basic for Applications (VBA)-Editor zu öffnen.

  3. Klicke im Menü auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Füge den folgenden Code ein, um eine fortlaufende Seriennummer zu generieren:

    Sub SeriennummerGenerieren()
        Dim i As Integer
        Dim Seriennummer As String
        Dim StartNummer As Integer
    
        StartNummer = InputBox("Gib die Startnummer ein:")
    
        For i = 0 To 4 ' Beispiel für 5 Seriennummern
            Seriennummer = "15763-" & Format(StartNummer + i, "000")
            Cells(i + 1, 1).Value = Seriennummer ' Seriennummer in die Zelle A1 bis A5 einfügen
        Next i
    End Sub
  5. Schließe den VBA-Editor und kehre zurück zu Excel.

  6. Führe das Macro aus, indem Du auf Entwicklertools > Makros klickst, das Macro auswählst und auf Ausführen klickst.

  7. Du solltest jetzt fortlaufende Seriennummern in der ersten Spalte deines Arbeitsblattes sehen.


Häufige Fehler und Lösungen

  • Fehler: "Komponente nicht gefunden"

    • Überprüfe, ob alle benötigten Verweise im VBA-Editor gesetzt sind. Gehe zu Extras > Verweise und stelle sicher, dass keine fehlenden Verweise vorhanden sind.
  • Fehler: Seriennummern werden nicht korrekt generiert

    • Stelle sicher, dass Du die richtige Startnummer in das Eingabefeld eingibst und dass die Formatierung korrekt ist.

Alternative Methoden

Du kannst auch die Funktion AutoFill verwenden, um Seriennummern zu generieren. Markiere zwei Zellen mit verschiedenen Seriennummern und ziehe die untere rechte Ecke nach unten, um die Serie fortzusetzen. Diese Methode eignet sich gut, wenn Du eine einfache Liste ohne VBA erstellen möchtest.


Praktische Beispiele

Wenn Du ein Excel Informationsfeld einfügen möchtest, kannst Du das Macro anpassen, um zusätzliche Informationen zu den Seriennummern hinzuzufügen. Hier ist ein Beispiel:

Sub SeriennummerMitInfo()
    Dim i As Integer
    Dim Info As String
    Dim Seriennummer As String

    For i = 0 To 4
        Seriennummer = "15763-" & Format(i + 1, "000")
        Info = "Info" & (i + 1) ' Beispiel für zusätzliche Informationen
        Cells(i + 1, 1).Value = Seriennummer
        Cells(i + 1, 2).Value = Info ' Informationen in die zweite Spalte einfügen
    Next i
End Sub

Tipps für Profis

  • Nutze benutzerdefinierte Funktionen in VBA, um komplexere Anforderungen zu erfüllen. Du kannst eine Funktion erstellen, die den Zahlenanteil einer Seriennummer automatisch anpasst.
  • Überlege, ein Seriennummer Generator Excel zu entwickeln, der es ermöglicht, flexible Seriennummersysteme zu erstellen, die leicht angepasst werden können.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Seriennummern in einer Zeile generieren? Du kannst die Cells-Funktion anpassen, um die Seriennummern in verschiedenen Spalten einzufügen, z.B. Cells(i + 1, 1).Value = Seriennummer für die erste Spalte und Cells(i + 1, 2).Value = Info für die zweite.

2. Kann ich das Macro so anpassen, dass es auch automatisch Informationen einfügt? Ja, Du kannst das Macro erweitern, um zusätzliche Informationen in die Zellen einzufügen, nachdem die Seriennummern generiert wurden. Verwende einfach die Cells-Methode, um die gewünschten Informationen in die gewünschten Zellen zu schreiben.

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