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
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
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:
Öffne dein Excel-Dokument und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Klicke auf "Einfügen" und wähle "Modul", um ein neues Modul zu erstellen.
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
Passe den Zellbereich an, falls du nur einen bestimmten Bereich (z.B. A133:A164) bearbeiten möchtest.
Schließe den VBA-Editor und kehre zu Excel zurück.
Führe das Makro aus, indem du ALT + F8
drückst, das Makro auswählst und auf "Ausführen" klickst.
Fehler: "Das Makro kann nicht ausgeführt werden."
Fehler: "Das Ergebnis ist nicht wie erwartet."
Falls du kein Makro verwenden möchtest, kannst du auch die manuelle Methode verwenden:
Strg + G
(Gehe zu) und wähle "Sonderformat" > "Leerzellen".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.
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.
Application.ScreenUpdating = False
und Application.ScreenUpdating = True
, um das Flackern des Bildschirms während der Makroausführung zu minimieren.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.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen