Hallo Franz,
habe da eine Sache gefunden, für die ich keinen Reim habe: der Wert 4924,46 erscheint in deiner Ausgangsliste zwei Mal. (Am 28. und am 30.01.) Auf der Ergebnisseite ist der Wert vom 28.01. verschwunden. Dafür gibt es für mich keine Logik. Erklärst du mir das bitte.
Das war einfach ein Übertragungsfehler
Ich glaube ich habe mich falsch ausgedrückt. Ich will die Spalten nicht verbinden, sondern die Spalten sollen genauso bleiben wie bisher. Nur wenn in der jeweiligen Zeile zu den Spalten Saldo1 unterschiedliche Zahlen stehen, soll die Zeile für die Spalten E+F+G leer bleiben und eins nach unten rutschen...
(21.03.2020, 10:49)Klaus-Dieter schrieb: [ -> ]Hallo,
ich habe jetzt zwar verstanden, was du meinst. Könnte da möglicherweise eine Makro-Lösung anbieten, frage mich aber, welchen Sinn das hat.
Makro wäre super
Problem:
Meine Spalten haben mehrere tausend Zeilen und in der 2. Spaltenhälfte von denen ich die Daten aus den Spalten F+G brauche fehlen immer wieder mal Zeilen.
Gemeinsamkeit der Spalten A+B+C und E+F+G ist die Spalte Saldo1 --> Spalte C und E !!!!
Hallo,
Zitat:Das war einfach ein Übertragungsfehler
dann wäre es schön, wenn du zeigst, wie das ohne diesen Fehler aussieht. An dieser Stelle steigt mir das Makro aus.
So schaut es richtig aus!
Hallo Franz,
diese Zeile:
Ergebnis | A | B | C | D | E | F | G |
6 | 16.01.2017 | 18:00 | 2065,24 | | 248,88 | Meier | Beamter |
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
passt auch nicht ins Schema.
Ergebnis
| A | B | C | D | E | F | G |
5 | 15.01.2017 | 17:00 | 1861,01 | | 1861,01 | Huber | Angestellter |
6 | 16.01.2017 | 18:00 | 2065,24 | | 248,88 | Meier | Beamter |
7 | 17.01.2017 | 19:00 | 2269,47 | | 2269,47 | Ludwig | Arbeiter |
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Sorry! :16: Jetzt sollte es aber wirklich passen
Hallo Franz,
damit sollte es funktionieren, ansonsten meldest du dich noch mal.
Code:
Option Explicit
Sub Zellen_verschieben()
Dim lngZeile As Long
For lngZeile = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Cells(lngZeile, 5) <> Cells(lngZeile, 3) And Cells(lngZeile + 1, 3) = Cells(lngZeile, 5) Then
Range(Cells(lngZeile, 4), Cells(lngZeile, 7)).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next lngZeile
End Sub
Hallo Franz,
habe noch einen besseren Lösungsansatz gefunden. Dazu eine Frage: nach Spalte G ist das Blatt leer? Habe die "alten" Daten dorthin zur Sicherheit verschoben. Die können dann in der finalen Version gelöscht werden. Hier das neue Makro:
Code:
Option Explicit
Sub array_test()
' geschrieben am 21.03.2020 mit SVerweis auf ein Array zugreifen
Dim varDatArr As Variant
Dim lngZeile As Long
On Error Resume Next
varDatArr = Range("E2:G" & Range("A" & Rows.Count).End(xlUp).Row).Value
Range("E2:H24").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
For lngZeile = 2 To Range("A" & Rows.Count).End(xlUp).Row
Cells(lngZeile, 5) = Application.WorksheetFunction.VLookup(Cells(lngZeile, 3), varDatArr, 1, False)
Cells(lngZeile, 6) = Application.WorksheetFunction.VLookup(Cells(lngZeile, 3), varDatArr, 2, False)
Cells(lngZeile, 7) = Application.WorksheetFunction.VLookup(Cells(lngZeile, 3), varDatArr, 3, False)
Next lngZeile
End Sub