Anzeige
Archiv - Navigation
1160to1164
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

letzte gefüllte Zelle mit Inhalt verschieben

letzte gefüllte Zelle mit Inhalt verschieben
Lemmi
https://www.herber.de/bbs/user/69909.xlsx
Hallo zusammen,
ich möchte die Inhalte ab C6 (Ausgangszustand) so ändern, dass der letzte Zelleninhalt der jeweiligen Zeile soweit nach hinten geschoben wird bis eine __geschlossene__ Spalte mit Text und Zahlen entsteht (Zielzustand ab C6). Es wird nur der letzte Zelleninhalt verschoben!
Leerzeilen finden natürlicherweise keine Berücksichtigung
(Makro 1)
Das zweite Marko soll diesen Ablauf in umgekehrte Reihenfolge durchführen und der --Zielzustand ab C6-- wird auf den __Ausgangszustand ab C6__ wieder zurück geführt!
Gruß
Lemmi
Ich freue mich schon auf Eure Unterstützung!
verstehe nix, Frage offen
05.06.2010 16:45:57
Tino
Hallo,
also ich versteh nur Bahnhof.
Soll Spalte C bis F Verkettet und in Spalte G ausgegeben werden?
Umgekehrt Spalte G aufteilen von C bis F, in jede Zelle ein Wert also Splitten.
Aus Deinem Beispiel geht dies irgendwie nicht hervor, im Zielzustand steht in G ein f dabei, dieses f kann ich nirgends finden?
Ich lass mal offen, vielleicht bin ich nur begriffsstutzig. ;-)
Gruß Tino
AW: letzte gefüllte Zelle mit Inhalt verschieben
05.06.2010 17:58:26
jowe
Hallo Lemmi,
Makro1:
Private Sub aufraeumen()
For zeile = 7 To 21
For spalte = 6 To 3 Step -1
If Cells(zeile, 7)  "" Then Exit For
If Cells(zeile, spalte)  "" Then
Cells(zeile, 7) = Cells(zeile, spalte)
Cells(zeile, spalte).ClearContents
Exit For
End If
Next
Next
End Sub

Vor Makro1 mach einfach eine Kopie der Tabelle (kannst Du als Makro aufzeichnen).
Wenn Du dann wieder zurück willst, kopiere einfach den Inhalt aus der Sicherungskopie zurück
Gruß
Jochen
Anzeige
AW: letzte gefüllte Zelle mit Inhalt verschieben
05.06.2010 22:37:51
Lemmi
Hallo Jochen,
das Marko "aufräumen" funktioniert so wie ich es mir vorstelle!
Vielen Dank!
Könnte das Marko noch erweitert bzw. angepasst werden?
Das Makro ist mit den Spalten und Zeilen begrenzt!
Kannst Du alle festen Einstellungen variabel ausgestalten?
Ich habe Tabellen die mal 3 aber auch mal 30 Spaltenbreit ist!
.. und eine Tabelle die mal 10 aber auch mal 150 Zeilen hat!
(Durchführung ab C6)
Gruß
Lemmi
AW: letzte gefüllte Zelle mit Inhalt verschieben
06.06.2010 10:21:08
fcs
Hallo Lemmi,
funktioniert, wenn du Kriterien hast, wie die letzte Spalte/Zeile ermittelt werden kann.
Nachfolgende Beispiel - für die 1. Variante muss du ggf. die Nummer der Zeile/Spalte anpassen, in der die letzte Spalte/Zeile mit Daten ermittelt werden soll.
Gruß
Franz
Private Sub aufraeumen()
Dim ZeileMax As Long, SpalteMax As Long
Dim Zeile As Long, Spalte As Long
With ActiveSheet
'Letzte Zeile Spalte 1
ZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
'Letzte Spalte Zeile 1
SpalteMax = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With
'oder
With ActiveSheet
'Zeile der letzten benutzten Zelle
ZeileMax = .Cells.SpecialCells(xlCellTypeLastCell).Row
'Spalte der letzten benutzten Zelle
SpalteMax = .Cells.SpecialCells(xlCellTypeLastCell).Column
End With
For Zeile = 7 To ZeileMax
For Spalte = SpalteMax - 1 To 3 Step -1
If Cells(Zeile, SpalteMax)  "" Then Exit For
If Cells(Zeile, Spalte)  "" Then
Cells(Zeile, SpalteMax) = Cells(Zeile, Spalte)
Cells(Zeile, Spalte).ClearContents
Exit For
End If
Next
Next
End Sub

Anzeige
AW: letzte gefüllte Zelle mit Inhalt verschieben
06.06.2010 19:19:05
jowe
Jep, genau so hätte ich es auch gemacht
Gruß
Jochen
AW: letzte gefüllte Zelle mit Inhalt verschieben
07.06.2010 21:32:16
Lemmi
Hallo Franz,
beide Marko' s funktionieen an der Beispeildatei! Vielen Dank!
Nun habe ich ein andere Beispieldatei zum Testen aufgebaut und muste feststellen, dass eine Tabelle und die Markos genau das tuen was Sie sollten. Die andere Tabelle hingegen nicht!.. obwohl fast der selbe Inhalt vorhanden ist!
Ich habe schon mehrer male die Tabelle neu aufgebaut, kann aber keinen Fehler finden!
Tabelle n.iO: Das Marko aufräumen schiebt die aufgeräumte Spalte eine Spalte weiter als" erlaubt" weg!
Alle Inhalte landen in H obwohl Sie in G abgesetzt werden müsten!
Tabelle i.O.: Das Makro aufräumen schiebt alles in Spalte G. alles ist so wie es sein sollte!
Marko Aufräumen_zurück arbeitet einwandfrei!
https://www.herber.de/bbs/user/69949.xlsm
Kannst Du nochmal nachsehen?
Gruß Lemmi
Anzeige
AW: letzte gefüllte Zelle mit Inhalt verschieben
08.06.2010 09:57:31
fcs
Hallo Lemmi,
habe hier kein Excel 2007 zur Verfügung.
Das Ergebnis kann von der Methode abhängen mit der du ZeileMax und SpalteMax berechnest.
Die 2. Methode (mit SpecialCells) berücksichtigt auch Zellen außerhalb des eigentlichen Wertebereichs, wenn diese Formatiert wurden oder wenn ein Wert eingetragen und dann wieder gelöscht wurde.
Hier alle Spalten rechts der Daten markieren und Löschen-Alles. Danach Datei speichern , schliessen und wieder öffnen. Dann sollte es funkionieren.
Falls die 1. Methode (mit End) verwendet wird, dann können scheinbar leere Zellen stören, die Leerzeichen oder Formeln enthalten.
Gruß
Franz
Anzeige
AW: letzte gefüllte Zelle mit Inhalt verschieben
08.06.2010 19:50:07
Lemmi
Hallo Franz,
vielen Dank für Dein Marko und Deine Analyse!
Ich werde erst ein mal ausgiebig testen!
Gruß
Lemmi
AW: letzte gefüllte Zelle mit Inhalt verschieben
06.06.2010 21:09:01
Lemmi
Hallo Fanz,
Hallo Jowe,
klappa alles prima! Vielen Dank!
Jetzt benötige ich nur noch das die verschobenen Zelleninhalte wieder zurück geschoben werden können!
Für meine Strukturtabellen benötige ich diesen Vorgang reversibel!
Soll dazu ggf. ein neues Thread geöffnet werden oder darf ich Euch noch einmal bemühen!
Vielen Dank, schon einmal im Voraus!
Lemmi
AW: letzte gefüllte Zelle mit Inhalt verschieben
07.06.2010 11:53:23
fcs
Hallo Lemmi,
hier die Umkehrung des Umsetzens des Inhalts in der letzten Spalte
Gruß
Franz
Sub aufraeumen_rueckwaerts()
Dim ZeileMax As Long, SpalteMax As Long
Dim Spalte As Long, Zelle As Range
With ActiveSheet
'Letzte Zeile Spalte 1
ZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
'Letzte Spalte Zeile 1
SpalteMax = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With
'oder
With ActiveSheet
'Zeile der letzten benutzten Zelle
ZeileMax = .Cells.SpecialCells(xlCellTypeLastCell).Row
'Spalte der letzten benutzten Zelle
SpalteMax = .Cells.SpecialCells(xlCellTypeLastCell).Column
End With
For Zeile = 7 To ZeileMax
If IsEmpty(Cells(Zeile, SpalteMax - 1)) Then
Set Zelle = Cells(Zeile, SpalteMax).End(xlToLeft)
If Zelle.Column >= 3 Then
Zelle.Offset(0, 1).Value = Cells(Zeile, SpalteMax).Value
Else
Cells(Zeile, 3).Value = Cells(Zeile, SpalteMax).Value
End If
Cells(Zeile, SpalteMax).ClearContents
End If
Next
End Sub

Anzeige

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige