3.4k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Ihr da draußen im www

vermutlich habe ich einen blackout und Ihr werdet bestimmt über meine Frage sogar "schmunzeln":
lch möchte gern 3 nicht verknüpfte Zellen innerhalb von 3 Zeilen nach links "weiterrücken";
bedeutet ich nehme die Zellen per Maus in die Hand, bewege sie auf die neue Zellposition, diese und jetzt kommt mein Problem
- überschreibt die Zellen egal ob Inhalt vorhanden oder nicht und
- löscht die Zellen der alten Position so, dass alle weiteren Zellinhalte rechts davon
nachrücken
Bisher blieben bei meinen Kläglichen Versuchen die Zellen immer leer stehen und ich mußte diese dann extra "herauslöschen.

Vielen Dank für Eure Hilfe

Peter

8 Antworten

0 Punkte
Beantwortet von finger59 Experte (1.3k Punkte)
Hallo Peter,

wenn ich Dich richtig verstanden habe, möchtest Du gewarnt werden, wenn Du Zellinhalte über beschriebene einfügen möchtest.

Um diese Warnung zu erhalten schaue mal unter

Extras - Optionen - Reiter Bearbeiten und dort die dritte Zeile...
Vor dem Überschreiben von Zellen warnen -

dort sollte dann der Haken gesetzt sein.

Was den zweiten Teil Deiner Frage angeht, so habe ich das nicht wirklich verstanden, was Du da genau machst....

Ist das kopieren oder ausschneiden oder doch noch etwas anderes...? ....

In diesem Sinne... have a nice Day... Gruß Helmut
0 Punkte
Beantwortet von
Hallo Helmut,

danke für Deine Hilfe.
Ich habe mich leider nicht korrekt ausgedrückt.
Das Überschreiben ist nicht das Problem; eine Warnung benötige ich ebenfalls nicht.
Mir geht es um ein
"gleichzeitiges" verschieben+überschreiben+altePosition löschen[/b][/u].
Das heißt: 'sich rechts von der alten Position befindliche Zellen' rücken quasi auf die Position der 'verschobenen Zellen nach'.

Danke für Eure Geduld mit mir

Peter
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Peter,

hoffentlich habe ich dich jetzt richtig verstanden.

Du musst den ganzen Bereich markieren, den du um jeweils eine Spalte verschieben willst, also nicht nur die drei übereinander stehenden Zellen, sondern auch noch alle deren rechten Nachbarzellen, die ebenfalls verschoben werden sollen.

Beispiel:
Die zu verschiebenden Werte stehen in den Zeilen 5 bis 7 sowie den Spalten B bis AV.
Jetzt setzt du den Kursor in das Feld B5, scrollst das Fenster bis du die Spalte AV sehen kannst, drückst die Shift-Taste und drückst bei gehaltener Shift-Taste mit der Maus in das Feld AV7. Damit hast du jetzt den gesamten Bereich B5:AV7markiert.
Nun drückst du zum Ausschneiden die Tastenkombination Strg + X, setzt den Kursor in das Feld A5 und drückst zum Einfügen die Tastenkombination Strg + C und der ganze zuvor ausgewählte markierte Block rückt um eine Spalte nach links.

Gruß
Kalle
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

dann tasten wir uns einmal heran :-))

erster versuch ^^
noch nicht optimiert :-)

gruss nighty

drei senkrecht zusammenliegende zellen werden ausgeschnitten und die waagerecht folgenden ruecken nach :-))

einzufuegen
alt+f11/projektexplorer/allgemeines modul

Global SZeile As Long
Global SSpalte As Long


einzufuegen
alt+f11/projektexplorer/DeineTabelle

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If SZeile > 0 Then
Range(Cells(SZeile, SSpalte + 1), Cells(SZeile + 2, ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column)).Copy _
Range(Cells(SZeile, SSpalte), Cells(SZeile + 2, ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column - 1))
Range(Cells(SZeile, ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column), Cells(SZeile + 2, ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column)) = ""
SZeile = 0
End If
Application.EnableEvents = True
End Sub


einzufuegen
alt+f11/projektexplorer/DeineTabelle

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If Selection.Count = 3 Then
SZeile = Selection.Row
SSpalte = Selection.Column
End If
Application.EnableEvents = True
End Sub
0 Punkte
Beantwortet von
Hallo die Herren,

Danke füe Eure Hilfe;
An Kalle:
das Problem ist, dass ich die ersten 3 Zellen um 6 Spalten nach links rücke und alle "nachrückenden" nur um eine Spalte; Daher geht dies mit dem Bloch komplett nicht.

Und an nighty:
Bitte hilf mir, Deine Vorschläge zu verstehen. Entschuldige bitte, meine Kenntnisse reichen dazu nicht aus.

Vielleicht noch mal zum besseren Verständnis, wie ich es jetzt mache:
Ich markiere meine 3 Zeilen, fasse diese am Rand an und ziehe sie mit der Maus auf die neue Spalte nach rechts - damit werden die 3 Zeilen der alten Spalte leer.
Jetzt markiere ich diese 3 "leeren" Zeilen und hole mir aus dem MENÜ->BEARBEITEN ->ZELLEN LÖSCHEN->ZELLEN NACH LINKS VERSCHIEBEN->OK.

Da ich dies in einer Matrix (24 Zeilenbereiche à 3 Zellen) vorhabe, und der Verschiebebereich variabel sein sollte (mal 4 Spalten, mal 6 Spalten etc.) kann ich auch kein "festes" Makro schreiben.

Danke für Eure Geduld

Peter
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi peter ^^

die makros einfuegen wie oben beschrieben ist,dann folgendermassen vorgehen :-)

1) selectiere drei senkrecht zusammenliegende zellen
2) rechtsclick
3) ausschneiden
4) an beliebiger stelle rechtsclick/einfuegen

die makros bewirken das die rechts liegenden zellen nach links aufruecken

die globalen variablen sorgen fuer eine austausch innerhalb der genutzten ereignisroutinen

es werden zwei ereignisroutinen genutzt

einmal das ereignis des selectierens
bei diesem werden zeilen wie spaltenindex der globalen variablen uebergeben

einmal das ereignis des zelleninhalswechsel
hier wird der rechtsbuendige zelleninhalt bis zur letzten spalte kopiert und eine spalte nach links versetzt wieder eingefuegt,mit anschliessender loeschung der letzten spalte

gruss nighty
0 Punkte
Beantwortet von
Hallo nighty,

Danke nochmals für Deinen Tipp;
die Vorgehensweise mit alt+f11 war mir fremd, aber jetzt kann ich´s

Leider habe ich ein Problem mit dem "ersten Block"

Global SZeile As Long
Global SSpalte As Long

diese wollte ich in die "makrosammlung" PERSON.XLS unterbringen; wird jedoch nicht so angenommen (bleibt rot).

Was mache ich noch falsch.

Peter
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi peter ^^

versteh ich jetzt nicht ?

ich hatte geschrieben

einzufuegen
alt+f11/projektexplorer/allgemeines modul

Global SZeile As Long
Global SSpalte As Long

was soll ich dazu noch sagen ?

vielleicht noch,es gehoert in kein makro ^^

dahin ^^

einzufuegen
alt+f11/projektexplorer/allgemeines modul

gruss nighty
...