419 Aufrufe
Gefragt in Tabellenkalkulation von mamamia Mitglied (348 Punkte)

Hallo, ich habe folgende Tabelle: Die grün hinterlegte Zeile sollte so bleiben, Spalte A bis AV ist so ok. Die Zeilen 2 + 3 müssen in Zeile 1 + 2 ab Spalte AW eingefügt werden. Ideal wäre, wenn die Zeile (1) auch in Zeile 2 von A bis AV kopiert würde. Nach jedem Datensatz ist eine Leerzeile. Die Datensätze haben unterschiedliche Anzahl von Positionen. Weiß hier jemand weiter?

Danke!

MamaMia

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK
1
399
100 FR106 12.03.2019 02:22:00 DFÜ 97 52 00:00:00 10571 12.03.2019
2
R
1 EK 75 HX J3 R 0,5 0,75 2,5 15 0 0 0 0 111 111 107 107 600 630 630 630
3
R
2 EK 70 HX J3 L 1,25 0,5 2,5 0 0 0 0 0 111 111 107 107 600 630 630 630
4
5
518
Z01 2928 12.03.2019
00:00:00
PHA
0 80
00:00:000
Sample
12.03.2019
6
L
Y2 60 SL 1 0 0 0 0 111 111 111
7
L
Y2 60 SL 1 0 0 0 0 111 111 111 111
8
Entn
200 900 3116
9
10
952
Z02 1200 12.03.2019 TAB 99 7
00:00:000
7318 12.03.2019
11
R
M1SH
70 HA -7,5 2,25 0 0 0 0 1170 111 1170

7 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo MammaMia,

du kannst doch z.B. den Bereich der Zeilen A2 bis AA3 markieren und nach AW1 verschieben. Den Bereich A1 bis AA1 kannst du markieren, kopieren und dann in A2 einfügen. Bei den anderen Zeilen geht das entsprechend. Oder verstehe ich da etwas falsch?

Gruß

M.O.
0 Punkte
Beantwortet von mamamia Mitglied (348 Punkte)
Bearbeitet von mamamia

Hallo M.O.

tut mir leid, meine Tabelle hat es total verschoben. Aber wenn du alles markierst und in eine Excel-Tabelle einfügst erhältst du meine Daten. Ich habe tgl. zwischen 40.000 und 70.000 Zeilen die ich so sortieren muss. Deshalb möchte ich eine Vorlage, wo ich die Daten einkopieren kann und in einem anderen Tabellenblatt (mit Formeln und Hilfsspalten) die Daten als "brauchbare" Excel-Tabelle verwenden kann.  Die fertige Tabelle (verkürzte Form) soll so aussehen: Die grünen Stammdaten sind von Spalte A - AV, dann müssen die darunterliegenden Zeilen hinten angefügt werden.

399-100-FR106---12.03.2019-02:22:00-DFÜ-R-1--EK----75---HX---J3--R--0,5-0,75

399-100-FR106---12.03.2019-02:22:00-DFÜ-R-1--EK----70---HX--J3---L--1,25-0,50

518-Z01-2928-----12.03.2019-00:00:00-PHA-L---Y2----60----SL------------1

518-Z01-2928-----12.03.2019-00:00:00-PHA-L---Y2----60----SL------------1

518-Z01-2928-----12.03.2019-00:00:00-PHA-Entn---------------200-900------

Ich habe statt Spalten Leerzeichen eingefügt und hoffe, dass es so übersichtlicher und verständlicher wird.

Vielen Dank!

MamaMia

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo MamaMia,

sehe ich das richtig, dass die Zeilen, die an die jeweiligen (grünen) Zeilen angefügt werden sollen, immer mit einem Buchstaben beginnen, während die (grünen Zeilen) immer mit einer Zahl beginnen? Oder kann auch mal eine Zeile, die "angefügt" werden soll mit einer Zahl beginnen?

Wenn du das automatisieren willst, dann wäre ein Muster gut. Ansonsten müsstet du ja die (grünen) Zeilen irgendwie markieren.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O,

das ist richtig. Die grünen Zeilen beginnen mit einer Zahl und die Zeilen, die angefügt werden, beginnen mit einem Buchstaben. Das ist immer so.

Viele Grüße

MamaMia
+1 Punkt
Beantwortet von m-o Profi (22.7k Punkte)
ausgewählt von mamamia
 
Beste Antwort

Hallo MamaMia,

probier mal das folgende Makro:

Sub aufarbeiten()
Dim arrDaten As Variant
Dim z As Long
Dim s As Long
Dim aZeile As Long
Dim lngZaehler As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

With ActiveSheet
  'Daten in Feld einlesen
  arrDaten = .UsedRange
  'Inhalte im Arbeitsblatt löschen
  .UsedRange.Clear
  MsgBox arrDaten(1, 12)
  'Daten neu in Arbeitsblatt schreiebn
  For z = 1 To UBound(arrDaten, 1)
    If IsNumeric(arrDaten(z, 1)) Then
      aZeile = z
    Else
     lngZaehler = lngZaehler + 1
     For s = 1 To UBound(arrDaten, 2)
       '1.Teil der Datensätze schreiben
       .Cells(lngZaehler, s) = arrDaten(aZeile, s)
       'nun Datensätze, die nicht mit Zahl anfangen
       .Cells(lngZaehler, UBound(arrDaten, 2) + s) = arrDaten(z, s)
     Next s
    End If
  Next z
End With

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub

Das Makro gehört in ein Standardmodul deiner Tabelle. Probiere das aber bitte erst einmal in einer Testtabelle aus.

Gruß

M.O.

0 Punkte
Beantwortet von mamamia Mitglied (348 Punkte)
Hallo M.O.

es funktioniert super. Die Daten sind alle richtig übernommen und die Excel-Tabelle ist genau wie ich sie mir vorgestellt habe. So kann ich diese weiter zur Erstellung einer Statistik verwenden.

Vielen, vielen Dank!

Viele Grüße

MamaMia
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo MamaMia,

freut mich, dass alles so funktioniert, wie du dir das vorstellst. Vielen Dank für die Rückmeldung.

Gruß

M.O.
...