ich folgende Problematik in einem Excel Dokument.
Achso, bevor ichs vergesse ich habe Excel 95.
Es gibt ca. 600 Zeilen in einer Spalte.
Jeweils 2 Zeilen gehören eigentlich zusammen.
In der ersten steht der Autor und in der zweiten der Titel.
Das ganze soll in eine DB gehen.
Ich möchte nun jede zweite Zeile, den Titel, eine Zelle nach Rechts und eine Zelle nach oben verschieben so das in der ersten Spalte nur die Autoren stehen und in der zweiten die
dazugehörigen Titel.
Per Hand geht das ja wunderbar, aber es ist mir zu mühsam.
Kennt jemand einen Weg das zu automatisieren?
Am besten dann auch so das die dabei enstandene Leerzeile dann auch gelöscht wird?
Ich hoffe das ich mich einigermaßen verständlich ausgedrückt habe.
Angenommen, Autoren und Titel stehen in Spalte A ab der ersten Zeile (Zelle A1), alles andere ist leer.
Du schreibst in die Zelle B1 folgende Formel:
=WENN(REST(ZELLE(„Zeile“;A1);2)=1;A2;"")
Diese Formel kopiest Du dann in alle Felder der Spalte B bis zum Ende der Daten.
Dies sollte dazu führen, dass neben den Autoren (die stehen ja in den Zeilen mit ungeraden Nummern) die Titel erscheinen. Die Felder rechts neben den alten Titeln bleiben leer.
Jetzt musst du die Formeln in Spalte B durch die Werte ersetzen: Spalte B vollständig markieren, Strg-C, Bearbeiten, Inhalte einfügen, „Werte“ anklicken, OK. Jetzt sollten in Spalte B nicht mehr die Formeln stehen, sondern die Titel als Textinhalte.
Jetzt mußt Du nur noch die alten Titelzeilen löschen: Daten, Filer, Autofilter, dann in Spalte B auf „(leere)“ filtern, diese leeren Zeilen markieren, Bearbeiten, Zeile löschen.
Fertig.
ich folgende Problematik in einem Excel Dokument.
Achso, bevor ichs vergesse ich habe Excel 95.
Es gibt ca. 600 Zeilen in einer Spalte.
Jeweils 2 Zeilen gehören eigentlich zusammen.
In der ersten steht der Autor und in der zweiten der Titel.
Das ganze soll in eine DB gehen.
Ich möchte nun jede zweite Zeile, den Titel, eine Zelle nach
Rechts und eine Zelle nach oben verschieben so das in der
ersten Spalte nur die Autoren stehen und in der zweiten die
dazugehörigen Titel.
Am besten dann auch so das die dabei enstandene Leerzeile dann
auch gelöscht wird?
Servus Robert
Diese Aufgabe würde ich am besten mit folgendem Makro lösen:
Sub Aus2Mach1()
Dim z As Integer
Dim alt As String, neu As String, n2z As String, Zeile As String
' Zeile 2 als aktuelle Zeile festlegen
alt = "A2"
z = 2
' Schleife solange die Spalte A in der aktuellen Zeile nicht leer ist
Do While Range(alt) \> ""
Range(alt).Select ' Spalte A in der aktuellen Zeile auswählen
Selection.Cut ' Inhalt dieser Zelle ausschneiden
n2z = Str(z - 1)
neu = "B" + Right(n2z, Len(n2z) - 1) ' neue Zelle ermitteln (1 rechts + 1 hinauf)
Range(neu).Select ' neue Zelle auswählen
ActiveSheet.Paste ' ausgeschnittene Daten in neue Zelle einfügen
' Zeile, aus der die Daten ausgeschnitten wurden, löschen
n2z = Str(z)
n2z = Right(n2z, Len(n2z) - 1)
Zeile = n2z + ":" + n2z
Rows(Zeile).Select
Selection.ClearContents
Selection.Delete Shift:=xlUp
z = z + 1 ' zur nächsten Zeilen springen
n2z = Str(z)
alt = "A" + Right(n2z, Len(n2z) - 1) ' Name der neuen aktuellen Zelle bilden
Loop
End Sub
Falls du nicht weißt, wie man so ein Makro in Excel ausführen kann, darfst du dich gerne wieder melden.
Ich habe es in Excel 97 getestet, müsste aber theoretisch in Excel 95 genauso funktionieren.
Möglicherweise könnte man es noch schöner programmieren … ich kenn mich in VBA nicht so besonders aus … aber es funktioniert so.