Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Daten kopieren bzw. Untergliederung erstellen
#1
Hallo zusammen,



danke das es so kompentente Anlaufstellen gibt!



Ich stehe vor einer Excel Herausforderung :)



Ich habe eine Liste mit 600 ID's



ID_0001

ID_0002

ID_0003

... und so weiter



Nun sollen unter 600 Eintrage weiter 8 Untergliederungen gebildet werden. bzw. alle Datensätze sollen 8x kopiert werden.

Das ganze soll anschließend so aussehen:



ID_0001_1

ID_0001_2

ID_0001_[...]

ID_0001_8

ID_0002_1

ID_0002_2

ID_0002_[...]

ID_0002_8
ID_0003_1


und so weiter.

Beim kopieren sollen wenn möglich alle Spalten des Datensatzen auch übernommen werden (Vorname, Nachname, Adresse etc.). Sodass 8 identische Datensätze enstehen, jedoch mit den 8 unterschiedlichen ID's.

Ich hoffe ich konnte das einigermaßen erklären.



Es wäre super, wenn mir jemand helfen könnte :).



LG,

Kevin
Antworten Top
#2
Hallo

versuch es mal mit diesem Makro

Code:
Sub tt()
    On Error GoTo Fehler
    Dim TB1 As Worksheet, i As Long, Neu As Integer
    Dim Sp As Integer, ZE As Integer, LR As Long
    Const APPNAME = "TT"
   
   
    '*** bescheunigt das Makro
    Application.ScreenUpdating = False
   
   
    '*** Stammdaten Anfang
    Set TB1 = Sheets("Tabelle1")
    Sp = 1 'Spalte A
    ZE = 1 'ab Zeile
    Neu = 8 'Anzahl zusätzliche Zeilen
    '*** Stammdaten Ende
   
    With TB1
        LR = .Cells(.Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte
       
        For i = LR To ZE Step -1
            .Rows(i + 1).Resize(Neu).Insert xlDown
            .Rows(i).Copy .Rows(i + 1).Resize(Neu)
            With .Cells(i + 1, Sp).Resize(Neu, 1)
                .FormulaR1C1 = "=R" & i & "C1&""_""&ROW(R[-" & i & "]C)"
                .Value = .Value
            End With
        Next
    End With
   
   
   
    '*** Fehlerbehandlung
    Err.Clear
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
        & "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Antworten Top
#3
Vielen, vielen Dank!
Hat wunderbar geklappt.

Ich bin so dankbar :)
Antworten Top
#4
Moin,

Mendrin hat eine passende VBA-Lösung bekommen. Für Mitlesende bzw. Suchende mit ähnlichem Problem, die keine Makros einsetzen dürfen, hier noch eine Formellösung:

Arbeitsblatt mit dem Namen 'Tabelle1'
AB
1ID_0001ID_0001_1
2ID_0002ID_0001_2
3ID_0003ID_0001_3
4ID_0001_4
5ID_0001_5
6ID_0001_6
7ID_0001_7
8ID_0001_8
9ID_0002_1
10ID_0002_2
11ID_0002_3
12ID_0002_4
13ID_0002_5
14ID_0002_6
15ID_0002_7
16ID_0002_8
17ID_0003_1
18ID_0003_2
19ID_0003_3
20ID_0003_4
21ID_0003_5
22ID_0003_6
23ID_0003_7
24ID_0003_8

ZelleFormel
B1=INDEX($A$1:$A$20;AUFRUNDEN((ZEILE())/8;0))&"_"&REST(ZEILE()-1;8)+1
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Die neue Spalte kopieren, als Werte wieder einfügen und die Haupt-IDs darunter einfügen. A-Z sortieren.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste