Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1436to1440
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

Fortlaufende Nummer bis zu unbestimmter Zelle

Fortlaufende Nummer bis zu unbestimmter Zelle
31.07.2015 11:17:27
Patrick
Hallo alle zusammen!
Ich habe leider ein Problem.
Ich benötige ein Makro um eine Fortlaufende Nummer in Spalte C einzufügen bis zur Letzten befüllten Spalte von D. Außerdem (falls das möglich ist) sollte sich das makro die zuletzt verwendete zahl merken. Um dort weiter zu zählen wo er in einer anderen datei schon war.
Ungefähr so:
Tabelle 1
C d
1000001 Text
1000002 Text
Tabelle 2 (andere Datei
C d
1000003 Text
1000004 Text
Zum Hintergrund ich arbeite mit einem Programm indem ich oft Daten Importieren werden muss und erstelle deswegen Makros um die Csv Dateien in Excel umzumodelieren.
Das hier ist dann hoffentlich das Letzte teil im Puzzle um das Ganze zum Laufen zu bringen.
Für rechtschreibfehler entschuldige ich mich schonmal und Hoffe auf eure Hilfe.
Sorry wegen dem Beispiel dort oben kenne mich hir auf der Seite noch nicht so gut aus!
MFG
Patrick

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fortlaufende Nummer bis zu unbestimmter Zelle
31.07.2015 14:25:31
JoWE
Hallo Patrick,
Teil 1 vllt. so?
Sub setzeWerte()
lz = Sheets("Tabelle1").Cells(Rows.Count, 4).End(xlUp).Row
startwert = 1000000
For ze = 2 To lz
Sheets("Tabelle1").Cells(ze, 3) = startwert + ze - 1
Next
End Sub

Deinen Teil 2 musst Du näher erläutern
Gruß
Jochen

oder so?
31.07.2015 14:37:22
Michael
Hi zusammen,
das Makro
Option Explicit
Sub nummern()
Const Datei = "C:\DeinPfad\Nummer.meins"
' .meins, weil das ziemlich sicher von keiner anderen Software verw. wird
Const start_nr = "1000001"
Dim nummerStr As String
Dim zahl As Long
Dim DateiNr As Integer
Dim von As Long, bis As Long, i As Long
Dim zahlen As Variant      ' als Array, damit's fetzt
If Dir(Datei) = "" Then
DateiNr = FreeFile
Open Datei For Output As #DateiNr
Print #DateiNr, start_nr & " "
Close #DateiNr
nummerStr = start_nr
MsgBox "Datei " & Datei & " wurde mit Wert " & start_nr & " erzeugt."
Else
DateiNr = FreeFile
Open Datei For Input As #DateiNr
Line Input #DateiNr, nummerStr
Close #DateiNr
End If
MsgBox nummerStr
zahl = Trim(nummerStr) * 1
von = 1       ' ggf. anpassen, falls Überschriften/Leerzeilen
bis = Range("D" & Rows.Count).End(xlUp).Row
zahlen = Range("C" & von & ":C" & bis)
For i = von To bis
zahlen(i, 1) = zahl + i - 1
Next
Range("C" & von & ":C" & bis) = zahlen
DateiNr = FreeFile
Open Datei For Output As #DateiNr
Print #DateiNr, zahlen(bis, 1) + 1 & " "
Close #DateiNr
End Sub
sieht nach, ob eine Datei mit Zahlenwert existiert und erzeugt sie mit einem als Const definierten Standardwert, falls sie nicht vorhanden ist. "Erzeugt sie" geht aber nur, wenn der Pfad vorhanden ist - den mußt Du halt anpassen auf einen existierenden Ordner.
Die Datei wird ausgelesen, die Spalte C mit fortlaufenden Werten bestückt und die nächsthöhere Zahl wieder in der Datei abgespeichert.
Happy Exceling,
Michael

Anzeige
AW: Add In Variante
31.07.2015 15:15:23
Michael
Hallo Patrick!
Weil ich gerade selbst etwas ausprobieren musste, hier ein Lösungsversuch als Add In: https://www.herber.de/bbs/user/99215.zip
Add In installieren und dann hast Du in jeder Excel-Mappe (immer in der aktiven Mappe) folgende zwei Möglichkeiten:
[Strg + Umschalt + n] trägt Dir in Spalte C bis zur letzten gefüllten Zelle von D eine fortlaufende Nummer ein (Ausgangsbasis ist 1000000).
[Strg + Umschalt + b] setzt die Ausgangsnummer auf 1000000 zurück.
Die letzte gesetzte fortlaufende Nummer wird jeweils (im Add In) gespeichert.
Gib Bescheid ob's klappt und passt! Wie gesagt, ist ein schneller Test, gewinnt sicher keinen Programmier-Preis ;-); könnte aber reichen.
LG
Michael

Anzeige
AW: Fortlaufende Nummer bis zu unbestimmter Zelle
03.08.2015 08:08:36
Patrick
Hallo,
Als erstes vielen Dank für eure Hilfe! :D
Und sorry das meine Antwort erst so spät kommt.
Ich habe jetzt das Add In Benutzt und es Funktioniert Super!
Nochmal vielen vielen Dank!
LG
Patrick

AW: Gerne, Danke für die Rückmeldung, owT
03.08.2015 10:06:48
Michael
.

AW: Gerne, Danke für die Rückmeldung, owT
03.08.2015 10:27:30
Patrick
Tut mir leid das ich das Thema wieder öffne, aber das add in funktioniert bei mir das erste mal beim einfügen dann nicht mehr.
Habe es in das VBAProject(PERSONAL.XLSB) kopiert doch ab da funktioniert es nicht mehr und gibt folgenden fehler aus:
Laufzeitfehler 9: Index außerhalb des Bereichs
Hier der Code:
  • 
    Sub LfdNummerSetzen()
    'Trägt in Spalte C in jede Zelle ab Zeile 1 eine fortlaufende Nummer ein, bis zur letzten gefü _
    llten
    'Zelle in Spalte D (aktives Blatt)
    Dim Start As Long: Start = ThisWorkbook.Worksheets("MyTestTab").Range("StartCounter").Value
    Dim leZeile As Long
    Dim i As Long
    Dim j As Long
    leZeile = ActiveWorkbook.ActiveSheet.Cells(Rows.Count, "D").End(xlUp).Row
    Application.ScreenUpdating = False
    j = Start
    For i = 1 To leZeile
    ActiveWorkbook.ActiveSheet.Cells(i, 3).Value = j
    j = j + 1
    Next
    ThisWorkbook.Worksheets("MyTestTab").Range("StartCounter").Value = j
    Application.ScreenUpdating = True
    End Sub
    

  • Und die fehlerzeile ist:
    Start = ThisWorkbook.Worksheets("MyTestTab").Range("StartCounter").Value
    Ich denke der Fehler wird "ThisWorkbook.Worksheets sein.
    Habe ("MyTestTab") auch schon auf Tabelle1 und Sheet1 geändert und ThisWorkbook auch auf ActiveWorkbook geändert.
    Habe leider keine Ahnung was ich ändern muss. Habe auch versucht mir Infos über den Befehl zu Holen habe in aber nie so im Internet gefunden.
    Hoffe nochmal auf eure Hilfe!
    LG
    Patrick

    Anzeige
    AW: Sorry habe Vergessen den Betreff zu ändern
    03.08.2015 10:30:25
    Patrick
    Habe leider Vergessen den Betreff auf Laufzeitfehler 9 zu ändern

    AW: Sorry habe Vergessen den Betreff zu ändern
    03.08.2015 10:41:26
    Daniel
    Hi
    ThisWorbook ist die Datei, in welcher sich der Code befindet.
    ActiveWorkbook ist die Datei, die gerade aktiv ist.
    der Fehler kommt, wenn das Tabellenblatt "MyTestTab" in der angesprochenen Datei nicht vorhanden ist.
    Gruss Daniel

    AW: Nun anderer Fehler
    03.08.2015 11:09:40
    Patrick
    Hallo Daniel,
    Danke für deine schnelle Antwort habe die Problemzeile nun in das geändert:
    Start = ActiveWorkbook.Worksheets("Tabelle1").Range("StartCounter").Value
    Tabelle1 deswegen weil ich eine komplett neue Datei aufmache befor ich die daten einfüge und die makros darüberlaufen.
    Der neue Fehler ist 1004 Anwendungs- oder Objektdefinierter Fehler
    Hoffe ich nerve nicht zu sehr kenne mich halt sehr schlecht aus.
    LG
    Patrick

    Anzeige
    AW: Da bin ich nicht unschuldig...
    03.08.2015 11:33:19
    Michael
    Patrick,
    ...dass es jetzt bei Dir zu Fehlern kommt - ich hab Dir halt auch wenig Erklärung mitgeliefert. Bitte entschuldige. Du hast das Add In im Endeffekt anders genutzt, als es gedacht war (bzw. als ich aus Deiner Anfrage verstanden habe).
    "StartCounter" ist ein definierter Name der sich auf Zelle A1 des Tabellenblattes "MyTestTab" des Add In bezieht. Ein Add In ist im Grunde eine Excel-Arbeitsmappe, die ausgeblendet ist. Ich nutze daher das Tabellenblatt der ausgeblendeten Arbeitsmappe um den Zähler der laufenden Nummer dort zu speichern.
    Du schreibst, dass Du den Code in Deine persönliche Makro-Arbeitsmappe kopiert hast. Das ist aber nicht notwendig. Speichere mein Add in an einem beliebigen Speicherort. Öffne Excel, Menüband, Register "Entwicklertools" (wenn nicht vorhanden über Optionen einblenden), Add ins. Klicke auf "Durchsuchen..." und begib Dich zum Speicherort des Add ins, Add in auswählen und OK. In der Liste der verfügbaren Add Ins dann ggf. noch sicherstellen, dass "Mytest" angehakt ist.
    Ab diesem Zeitpunkt wirkt mein Makro immer in der "aktiven Tabelle" - mit den Tastaturbefehlen, die ich Dir geschrieben habe.
    In Spalte D müssen natürlich Daten vorhanden sein, damit in Spalte C die fortlaufende Zahl eingetragen wird - es ging ja um das Spaltenende von D.
    Habe es jetzt bei mir getestet - im Grunde funktioniert es, wie geplant. Auch bei mehreren Tabellenblättern in einer oder mehreren Mappen. Wenn Du allerdings eine neue Instanz von Excel öffnest, steht dort das Add in nicht zur Verfügung (also wenn Du eine neue Mappe nicht über zB [Strg + N] öffnest oder über das Menüband-Symbol, sondern bspw. nochmal Excel startest).
    Hilft Dir das schon mal weiter?
    LG
    Michael

    Anzeige
    AW: Aso
    03.08.2015 12:18:35
    Patrick
    Hallo Michael,
    Bin nie davon ausgegangen (wollte es auch nicht andeuten) das du schuld bist.
    Danke für deine erklärung und sorry dafür das meine Problemerklärung ganz am anfang doch nicht gut war.
    Funktioniert jetzt einwand frei.
    Nochmals sorry für die Umstände und vielen dank für die Hilfe.
    LG
    Patrick

    AW: Super, da bin ich froh...
    03.08.2015 12:23:26
    Michael
    Hallo Patrick,
    ...dass es nun für Dich, wie gewünscht, funktioniert.
    Bin nie davon ausgegangen (wollte es auch nicht andeuten) das du schuld bist.
    Das hab ich auch so nicht verstanden - aber ich hab es für mich so gesehen, weil ich Dir nicht gleich eine genauere Info geliefert habe.
    Danke für die Rückmeldung!
    LG
    Michael
    Anzeige

    307 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige