Microsoft Excel

Herbers Excel/VBA-Archiv

Daten nach Datum durchnummerieren

Betrifft: Daten nach Datum durchnummerieren von: Stefan
Geschrieben am: 23.03.2020 15:26:55

Hallo liebe VBA Profies,

ich habe hier ein Tabellenblatt vor mir, dass ich nun irgendwie verarbbeiten muss.
In Spalte Q steht das Datum. Einige aus dem Januar einige aus dem Februar usw. bis Dezember.
Spalte B soll nun Durchnummeriert werden. Und zwar sollen alle Daten aus dem Januar so aussehen (1001, 1002,1003) die "1" soll vorgeschaltet sein. Im Februar soll es dann so aussehen (2001, 2002, 2003,...). Für März dann die 3 und so weiter.

In der Spalte Q, stehen die Datums wie Beispielhaft eingefügt. Die nummerierung soll dann automatisch wie unter B erfolgen.
B--------------Q
8003-----18.08.2020
8002-----14.08.2020
8001-----13.08.2020
4001-----01.04.2020
3008-----30.03.2020
3007-----28.03.2020
3006-----27.03.2020
3005-----22.03.2020
3004-----18.03.2020
3003-----17.03.2020
3002-----10.03.2020
3001-----01.03.2020
2002-----04.02.2020
2001-----03.02.2020

Viele Viele Grüße

Betrifft: Grüße zurück !
von: onur
Geschrieben am: 23.03.2020 17:24:06

Wenn das eine Bitte um Hilfe sein sollte, erkennt man dies nicht unbedingt. Und du solltest mal eine Musterdatei posten, damit hilfswillige nicht deine Datei nachbauen müssen.

Betrifft: AW: Daten nach Datum durchnummerieren
von: UweD
Geschrieben am: 23.03.2020 17:28:52

Hallo

Wenn die Sortierung innerhalb der Monate topdown ist, dann mit Hilfsspalte (hier in A) und Formel in B


Tabelle1
 ABCDEFGHIJKLMNOPQ
188003              18.08.2020
288002              14.08.2020
388001              13.08.2020
444001              01.04.2020
533008              30.03.2020
633007              28.03.2020
733006              27.03.2020
833005              22.03.2020
933004              18.03.2020
1033003              17.03.2020
1133002              10.03.2020
1233001              01.03.2020
1322002              04.02.2020
1422001              03.02.2020

verwendete Formeln
Zelle Formel Bereich N/A
A1:A14=MONAT(Q1)  
B1:B14=A1*1000+ZÄHLENWENN(A:A;A1)-ZÄHLENWENN($A$1:A1;A1)+1  
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 25.14 einschl. 64 Bit




LG UweD

Betrifft: AW: Daten nach Datum durchnummerieren
von: Stefan
Geschrieben am: 23.03.2020 19:31:29

Hallo, ja das sollte ein Hilfeersuchen sein. Ich tu mich immer etwas schwer mein Problem zu erklären. Ich bräuchte das als VBA, weil es Teil eines größeren Scripts sein soll. Ist das möglich. Entschuldigung für die wenigen Infos

Betrifft: AW: Daten nach Datum durchnummerieren
von: Stefan
Geschrieben am: 24.03.2020 08:03:14

Hallo Guten Morgen,

ich konnte gestern nur mit dem Handy Antworten. Anbei mal eine Testdatei...
https://www.herber.de/bbs/user/136059.xlsx

Ich hab in Spalte B mal Beispielhaft reingeschrieben wie es aussehen soll.
In der orginaldatei laufen viele Macros, deshalb würd ich für diese Funktion auch gern ein macro einsetzen wollen.

Vielen Dank nochmal für die Mühe..

Gruß Stefan

Betrifft: AW: Daten nach Datum durchnummerieren
von: UweD
Geschrieben am: 24.03.2020 11:40:18

Hallo

dann die Formeln per VBA eingesetzt und in Werte umgewandelt.

Modul1
Option Explicit 
 
Sub Auftrags_ID() 
    Dim TB As Worksheet, LR As Long, LC As Integer, SpQ As Integer, SpZ As Integer, ZE As Integer 
     
    Set TB = Sheets("Tabelle1") 
    SpQ = 17 'Quellspalte 
    SpZ = 2  'Zielspalte 
    ZE = 2   'erste DatenZeile 
     
    With TB 
     
        LR = .Cells(.Rows.Count, SpQ).End(xlUp).Row 'letzte Zeile der Spalte 
        LC = .Cells.SpecialCells(xlCellTypeLastCell).Column + 1 'Erste freie Spalte des gesamten Blattes 
 
        'Monat in Temporäre Spalte 
        .Cells(ZE, LC).Resize(LR - ZE + 1, 1).FormulaR1C1 = "=MONTH(RC" & SpQ & ")" 
         
        'ID 
        With .Cells(ZE, SpZ).Resize(LR - ZE + 1, 1) 
            'Formel einsetzen 
            .FormulaR1C1 = "=RC" & LC & "*1000+COUNTIF(C" & LC & ",RC" & LC & ")" & _
                           "-COUNTIF(R" & ZE & "C" & LC & ":RC" & LC & ",RC" & LC & ")+1" 
             
            'Formel in Wert 
            .Value = .Value 
        End With 
     
        'Temp löschen 
        .Columns(LC).ClearContents 
    End With 
     
End Sub 

LG UweD

Betrifft: AW: Daten nach Datum durchnummerieren
von: Stefan
Geschrieben am: 24.03.2020 14:16:59

Vielen Dank, es funktioniert ganz wunderbar.
Ich bin immerwieder überrascht wieviel doch mit VBA möglich ist und wie gut ihr seid...

DANKE DANKE DANKE

Betrifft: Prima. Danke für die Rückmeldung owT
von: UweD
Geschrieben am: 24.03.2020 14:21:34