Supportnet / Forum / Tabellenkalkulation
Zeilen löschen und verschieben
Frage
Hallo,
wer kann mir als VBA- Anfänger helfen. Ich habe eine Tabelle, in der ich mit Hilfe eines Makros (in bestimmten Zeitabständen) alle Zeilen ab Zeile 11 bis zur vorletzten Zeile löschen will. Anschließend soll die letzte Zeile in die Zeile 11 verschoben werden. Wer kann mir da einen Vorschlag machen ? Vielen Dank im Voraus.
Mfg
Jensi
Antwort 1 von coros
Hi Jensi,
nachfolgendes Makro in ein Standardmodul einfügen.
Das Makro ermittelt die vorletzte Zeile und löscht alle Zeilen, angefangen ab Zeile 11, bis zur vorletzten gefüllten Zeile. Die letzte Zeile wird somit in Zeile 11 verschoben.
Da ich nicht weiß, ob Du Dich mit VBA (Visual Basic) auskennst, kommt hier eine kurze Anweisung, wie Du den Code in Deine Tabelle bekommst.
1. Markiere die Anweisung aus diesem Beitrag und Kopiere (Strg c) diesen.
2. Klicke in Deiner Exceldatei in der Menüleiste nacheinander auf Extras => Makro => Visual Basic Editor oder drücke die Tastenkombination Alt F11
3. In dem neu geöffneten Fenster suche auf der linken Seite nach dem Eintrag VBA Projekt(Hier der Name Deiner Tabelle) und klicke doppelt auf diesen Eintrag
4. Klicke danach nacheinander in der Menüleiste auf Einfügen => Modul.
5. Füge nun die vorher kopierte Anweisung in das rechte leere Fenster ein.
Um das Makro auszuführen benötigst Du z.B. eine Schaltfläche. Da ich nicht weiß, ob Du weißt, wie man eine Befehlsschaltfläche in ein Tabellenblatt einfügst, kommt hier eine kurze Anweisung.
1. Gehe in der Menüleiste auf Ansicht => Symbolleiste => Steuerelement-Toolbox
2. Klicke auf die 6.Schaltfläche von links (Schaltflächenkommentar: Befehlsschaltfläche)
3. Positioniere die Schaltfläche in Deinem Tabellenblatt und passe gegebenenfalls die Größe an.
4. Klicke in der Symbolleiste auf die 3.Schaltfläche von links (Schaltflächenkommentar: Code anzeigen).
5. In das geöffnete Fenster schreibst Du zwischen die Texte “Private Sub CommandButton1_Click()“ und “End Sub“ in die Leerzeile Call Makroname oder nur der Makroname.
6. Klicke in der Symbolleiste auf die erste Schaltfläche von links um den Entwurfmodus zu beenden (Schaltflächenkommentar: Entwurfmodus beenden).
Wenn Du alles richtig gemacht hast, sollte das Makro, nachdem Du die Schaltfläche betätigt hast, abgearbeitet werden.
Du solltest zum Abschluss noch die Sicherheitseinstellung, die beim Öffnen der Datei abgefragt wird, kontrollieren. Klicke dazu nacheinander in der Menüleiste wieder auf Extras => Makro und dann auf Sicherheit.... Gehe, falls nicht schon angezeigt, auf die Registerkarte Sicherheitsstufe und schaue dort nach, ob die Einstellung Mittel aktiviert ist. Wenn nicht, aktiviere diese Einstellung, da sonst der Code nicht ausgeführt werden kann. Beim nächsten Öffnen Deiner Datei kommt eine Abfrage, ob Makros aktiviert oder deaktiviert werden sollen. Klicke auf aktivieren und der Code wird ausgeführt.
Ich hoffe, Du kommst klar. Bei Problemen oder Fragen melde Dich wieder.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
nachfolgendes Makro in ein Standardmodul einfügen.
Sub Löschen()
Dim Zeile As Long
Zeile = Range("A65536").End(xlUp).Offset(-1, 0).Row
Rows("11:" & Zeile).Delete Shift:=xlUp
End Sub
Das Makro ermittelt die vorletzte Zeile und löscht alle Zeilen, angefangen ab Zeile 11, bis zur vorletzten gefüllten Zeile. Die letzte Zeile wird somit in Zeile 11 verschoben.
Da ich nicht weiß, ob Du Dich mit VBA (Visual Basic) auskennst, kommt hier eine kurze Anweisung, wie Du den Code in Deine Tabelle bekommst.
1. Markiere die Anweisung aus diesem Beitrag und Kopiere (Strg c) diesen.
2. Klicke in Deiner Exceldatei in der Menüleiste nacheinander auf Extras => Makro => Visual Basic Editor oder drücke die Tastenkombination Alt F11
3. In dem neu geöffneten Fenster suche auf der linken Seite nach dem Eintrag VBA Projekt(Hier der Name Deiner Tabelle) und klicke doppelt auf diesen Eintrag
4. Klicke danach nacheinander in der Menüleiste auf Einfügen => Modul.
5. Füge nun die vorher kopierte Anweisung in das rechte leere Fenster ein.
Um das Makro auszuführen benötigst Du z.B. eine Schaltfläche. Da ich nicht weiß, ob Du weißt, wie man eine Befehlsschaltfläche in ein Tabellenblatt einfügst, kommt hier eine kurze Anweisung.
1. Gehe in der Menüleiste auf Ansicht => Symbolleiste => Steuerelement-Toolbox
2. Klicke auf die 6.Schaltfläche von links (Schaltflächenkommentar: Befehlsschaltfläche)
3. Positioniere die Schaltfläche in Deinem Tabellenblatt und passe gegebenenfalls die Größe an.
4. Klicke in der Symbolleiste auf die 3.Schaltfläche von links (Schaltflächenkommentar: Code anzeigen).
5. In das geöffnete Fenster schreibst Du zwischen die Texte “Private Sub CommandButton1_Click()“ und “End Sub“ in die Leerzeile Call Makroname oder nur der Makroname.
6. Klicke in der Symbolleiste auf die erste Schaltfläche von links um den Entwurfmodus zu beenden (Schaltflächenkommentar: Entwurfmodus beenden).
Wenn Du alles richtig gemacht hast, sollte das Makro, nachdem Du die Schaltfläche betätigt hast, abgearbeitet werden.
Du solltest zum Abschluss noch die Sicherheitseinstellung, die beim Öffnen der Datei abgefragt wird, kontrollieren. Klicke dazu nacheinander in der Menüleiste wieder auf Extras => Makro und dann auf Sicherheit.... Gehe, falls nicht schon angezeigt, auf die Registerkarte Sicherheitsstufe und schaue dort nach, ob die Einstellung Mittel aktiviert ist. Wenn nicht, aktiviere diese Einstellung, da sonst der Code nicht ausgeführt werden kann. Beim nächsten Öffnen Deiner Datei kommt eine Abfrage, ob Makros aktiviert oder deaktiviert werden sollen. Klicke auf aktivieren und der Code wird ausgeführt.
Ich hoffe, Du kommst klar. Bei Problemen oder Fragen melde Dich wieder.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Jensi
Hi coros,
vielen Dank für Deine Hilfe. Makro läuft aber leider nicht wie gedacht. Es löscht alle Zeilen ab Zeile 12 in einer Testtabelle. In meiner Originaltabelle steht teilweise in Spalte A kein Zahlenwert. Dort funktioniert es auch nicht.
Gruß
Jensi
vielen Dank für Deine Hilfe. Makro läuft aber leider nicht wie gedacht. Es löscht alle Zeilen ab Zeile 12 in einer Testtabelle. In meiner Originaltabelle steht teilweise in Spalte A kein Zahlenwert. Dort funktioniert es auch nicht.
Gruß
Jensi
Antwort 3 von coros
Hi Jensi,
und nu, soll ich raten wie Deine Tabelle aufgebaut ist? Schreibe doch mal etwas mehr über den Aufbau. Gibt es denn in der Tabelle irgend eine Spalte, die von Zeile 11 bis zur letzten beschriebenen Zeile Daten enthält? Mir ist auch nicht klar, warum bei Dir erst ab Zeile 12 gelöscht wird. Bei mir werden alle Daten ab bzw. einschließlich Zeile 11, gelöscht. In Zeile 11 steht dann zum Schluß der Wert aus der ehemals letzten Zeile.
Also, sei nicht so schreibfaul und gib ein paar mehr Info's preis. ;-)
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
und nu, soll ich raten wie Deine Tabelle aufgebaut ist? Schreibe doch mal etwas mehr über den Aufbau. Gibt es denn in der Tabelle irgend eine Spalte, die von Zeile 11 bis zur letzten beschriebenen Zeile Daten enthält? Mir ist auch nicht klar, warum bei Dir erst ab Zeile 12 gelöscht wird. Bei mir werden alle Daten ab bzw. einschließlich Zeile 11, gelöscht. In Zeile 11 steht dann zum Schluß der Wert aus der ehemals letzten Zeile.
Also, sei nicht so schreibfaul und gib ein paar mehr Info's preis. ;-)
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von Jensi
Hi coros,
hier mal ein Ausschnitt aus der Datei.
Zelle A13 ist leer, B13 ist Datum und Uhrzeit dann folgen Zahlenwerte.Analog dazu A14, B14 usw.
Gruß Jensi
22.08.2004 00:15; 119,92; 120,44; 2,62; 119,92; 0; 0; 0; 119,92
22.08.2004 00:30 116,92 117,66 2,42 116,92 0 0 0 116,92
hier mal ein Ausschnitt aus der Datei.
Zelle A13 ist leer, B13 ist Datum und Uhrzeit dann folgen Zahlenwerte.Analog dazu A14, B14 usw.
Gruß Jensi
22.08.2004 00:15; 119,92; 120,44; 2,62; 119,92; 0; 0; 0; 119,92
22.08.2004 00:30 116,92 117,66 2,42 116,92 0 0 0 116,92

