Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Inhalt aus Spalte zusammenschieben

Forumthread: Inhalt aus Spalte zusammenschieben

Inhalt aus Spalte zusammenschieben
12.11.2007 21:28:00
Larissa
Hallo,
ich suche ein kleines Makro, welchens den Inhalt aus einer Spalte nach oben zusammenschiebt, ohne zu sortieren oder zu filtern. Also wenn z.B. A1=3, A5=1, A8=5, dann soll es so sein:
A1=3
A2=1
A3=5
Ich bedanke mich für Eure Hilfe,
Gruß, Larissa

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt aus Spalte zusammenschieben
12.11.2007 21:37:00
Daniel
Hi
als Makro
range("A:A").SpecialCells(xlCellTypeBlanks).Delete shift:=xlup
von Hand
- Bearbeiten - Gehe zu - Inhalte - Leerzellen
- Bearbeiten - Zellen löschen - nach oben verschieben
Gruß, Daniel

AW: Inhalt aus Spalte zusammenschieben
12.11.2007 21:45:04
Larissa
Hallo Daniel,
das ist leider nicht das, was ich suche. Die Formatierung der Spalte darf nicht verändert werden. D.h. es dürfen keine Zellen gelöscht werden, sondern der Inhalt soll nur nach oben verschoben werden. So, wie es beim Sortieren auch passiert, nur halt ohne Sortierfunktion. Gibt es das?
Gruß, Larissa

Anzeige
AW: Inhalt aus Spalte zusammenschieben
12.11.2007 22:12:56
Daniel
Hi
das wird dann komplizierter.
sind die Daten Fix-Werte oder sind auch Formeln enthalten?
Gruß, Daniel

AW: Inhalt aus Spalte zusammenschieben
12.11.2007 22:16:33
Larissa
Hallo Daniel,
keine Formeln, nur Werte.
Gruß, Larissa

AW: Inhalt aus Spalte zusammenschieben
12.11.2007 22:33:06
Daniel
Hi
ja, ich hab jetzt auch ne Lösung gefunden, vom Prinzip her so wie Sepps, aber vielleicht ein bisschen anschaulicher. Formeln sollten auch kein Problem sein:

Sub Zusammenschieben()
Dim rng As Range
Dim arr1, arr2
Dim i1 As Long, i2 As Long
Set rng = ActiveSheet.UsedRange.Columns(1)
arr1 = rng.FormulaLocal
If WorksheetFunction.CountIf(rng, "") > 0 Then
ReDim arr2(1 To UBound(arr1, 1), 1 To UBound(arr1, 2))
For i1 = 1 To UBound(arr1, 1)
If arr1(i1, 1)  "" Then
i2 = i2 + 1
arr2(i2, 1) = arr1(i1, 1)
End If
Next
rng.Value = arr2
End If
End Sub


Gruß, Daniel

Anzeige
AW: Inhalt aus Spalte zusammenschieben
12.11.2007 22:16:31
Josef
Hallo Larissa,
auch wenn sich mir der Sinn nicht erschliesst.
Sub Larissa()
Dim a As Variant
Dim l As Long, m As Long

a = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)

For l = 1 To UBound(a, 1) - 1
    If IsEmpty(a(l, 1)) Then
        For m = l + 1 To UBound(a, 1)
            If Not IsEmpty(a(m, 1)) Then
                a(l, 1) = a(m, 1)
                a(m, 1) = Empty
                Exit For
            End If
        Next
    End If
Next

Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row) = a

End Sub

Gruß Sepp

Anzeige
AW: Inhalt aus Spalte zusammenschieben
12.11.2007 22:20:08
Larissa
OHA! So kompliziert habe ich mir das gar nicht vorgestellt.
Vielen Dank, Sepp, werde ich sofort ausprobieren :-)
Lieben Gruß,
Larissa

AW: Inhalt aus Spalte zusammenschieben
12.11.2007 22:33:12
Larissa
Hi Sepp,
Oh sorry, es funktioniert leider nicht. Ich gleubte, es sei nicht relevant zu erwähnen, dass es eigentlich nur für einen bestimmten Bereich in Spalte A laufen soll und zwar von Range("A133:A164"). Dann klappt es mit dem End(xlUp) nicht, stimmts? Hast Du vielleicht auch eine Idee, wie es in diesem Zellbereich funktionieren könnte?
Das wäre echt supiklasse.
Lieben Gruß, Larissa

Anzeige
AW: Inhalt aus Spalte zusammenschieben
12.11.2007 22:35:00
Josef
Hallo Larissa,
immer gleich die ganzen Infos geben ;-))
Sub Larissa()
Dim a As Variant
Dim l As Long, m As Long

a = Range("A133:A164")

For l = 1 To UBound(a, 1) - 1
    If IsEmpty(a(l, 1)) Then
        For m = l + 1 To UBound(a, 1)
            If Not IsEmpty(a(m, 1)) Then
                a(l, 1) = a(m, 1)
                a(m, 1) = Empty
                Exit For
            End If
        Next
    End If
Next

Range("A133:A164") = a

End Sub


Gruß Sepp

Anzeige
AW: Inhalt aus Spalte zusammenschieben
12.11.2007 22:42:00
Larissa
Ischonkla, sorry, soll nicht wieder passieren.
ES FUNZT JETZT!! - KNORKE !!! ;-)))
Also naja, auf die kleine Änderung hätte ich aber auch mal selber kommen können ;-((
Lieben Gruß und nochmal dickes Dankeschön,
Larissa
;
Anzeige
Anzeige

Infobox / Tutorial

Inhalt aus Spalte zusammenschieben


Schritt-für-Schritt-Anleitung

Um den Inhalt aus einer Excel-Spalte nach oben zu verschieben, ohne die Formatierung zu verändern oder Zellen zu löschen, kannst du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf "Einfügen" und wähle "Modul", um ein neues Modul zu erstellen.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Sub Zusammenschieben()
        Dim rng As Range
        Dim arr1, arr2
        Dim i1 As Long, i2 As Long
        Set rng = ActiveSheet.Range("A1:A100") ' Hier den gewünschten Bereich anpassen
        arr1 = rng.Value
        ReDim arr2(1 To UBound(arr1, 1), 1 To 1)
    
        For i1 = 1 To UBound(arr1, 1)
            If arr1(i1, 1) <> "" Then
                i2 = i2 + 1
                arr2(i2, 1) = arr1(i1, 1)
            End If
        Next
    
        rng.Value = arr2
    End Sub
  4. Passe den Zellbereich an, falls du nur einen bestimmten Bereich (z.B. A133:A164) bearbeiten möchtest.

  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf "Ausführen" klickst.


Häufige Fehler und Lösungen

  • Fehler: "Das Makro kann nicht ausgeführt werden."

    • Lösung: Stelle sicher, dass die Makros in Excel aktiviert sind. Gehe zu "Datei" > "Optionen" > "Trust Center" > "Trust Center-Einstellungen" > "Makroeinstellungen".
  • Fehler: "Das Ergebnis ist nicht wie erwartet."

    • Lösung: Überprüfe, ob im Makro der richtige Bereich angegeben ist. Achte darauf, dass nur Werte in der Spalte sind, die du zusammenschieben möchtest.

Alternative Methoden

Falls du kein Makro verwenden möchtest, kannst du auch die manuelle Methode verwenden:

  1. Wähle die Zellen aus, die du verschieben möchtest.
  2. Drücke Strg + G (Gehe zu) und wähle "Sonderformat" > "Leerzellen".
  3. Klicke mit der rechten Maustaste auf eine der markierten Zellen und wähle "Zellen löschen".
  4. Wähle "Nach oben verschieben" aus und bestätige.

Diese Methode ist zwar nicht so effizient wie die Verwendung eines Makros, funktioniert aber gut, wenn du nur gelegentlich die Excel-Zeilen zusammenschieben möchtest.


Praktische Beispiele

Wenn du beispielsweise in der Zelle A1 den Wert "3", in A5 den Wert "1" und in A8 den Wert "5" hast, wird das Makro die Werte so umsortieren:

  • Vor dem Ausführen des Makros:

    A1: 3
    A2: 
    A3: 
    A4: 
    A5: 1
    A6: 
    A7: 
    A8: 5
  • Nach dem Ausführen des Makros:

    A1: 3
    A2: 1
    A3: 5

So kannst du einfach und effektiv Daten in deiner Excel-Tabelle zusammenschieben.


Tipps für Profis

  • Nutze die Application.ScreenUpdating = False und Application.ScreenUpdating = True, um das Flackern des Bildschirms während der Makroausführung zu minimieren.
  • Teste dein Makro immer in einer Kopie deiner Excel-Datei, um Datenverlust zu vermeiden.
  • Halte deine Makros gut dokumentiert, damit du später nachvollziehen kannst, was sie tun.

FAQ: Häufige Fragen

1. Kann ich auch mehrere Spalten gleichzeitig zusammenschieben? Ja, du kannst das Makro entsprechend anpassen, um auch mehrere Spalten zu verarbeiten.

2. Funktioniert das Makro in allen Excel-Versionen? Das Makro sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen. Achte darauf, dass du eine Version ab Excel 2007 verwendest.

3. Was passiert, wenn ich Formeln in der Spalte habe? Das Makro funktioniert am besten mit festen Werten. Wenn du Formeln hast, solltest du diese in Werte umwandeln, bevor du das Makro ausführst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige