Anzeige
Archiv - Navigation
1900to1904
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

Zeile verschieben+ABC-Sortierung mit VBA

Zeile verschieben+ABC-Sortierung mit VBA
20.10.2022 20:29:43
sophie
Hallo,
Da ich leider noch nie mit VBA gearbeitet habe, habe ich einen Code aus einer Datei aus dem Netz nur per Copy&Paste probiert - bringt natürlich nix, daher brauche ich bitte dringend eure Hilfe.
1. Wenn in Spalte E eine Nr. Beginnend mit A- eingetragen wird, soll die ganze Zeile - ohne Inhaltsverlust! - in den Archivbereich nach unten verschoben werden, oben soll die Zeile verschwinden.
2. Wenn von das „A-„ von der Nr. entfernt wird, soll die Zeile wieder nach oben wandern. (Wenn das überhaupt geht)
3. Die Datenbank sollte anhand des Nachnamens alphabetisch sortiert sein - kann man das so einrichten, dass man eine userform per Button aufrufen kann und sich der neue Eintrag nach dem Speichern, automatisch u. alphabetisch in die liste einfügt? Wenn ja, wie? Ich glaube das geht auf dem Mac nicht, gibts das?
Excelbezogene Frage: ist es möglich, in den Spalten-Überschriften das Datum im Format TT. MMM einzutragen; Ziel ist ein Jahreskalender mit automatisch gebänderten Zeilen wie in der Bsp-Datei?
Ich weiß nicht, ob die Bsp-Datei das VBA anzeigt, bei mir springt nämlich immer eine andere Mappe mit dem VBA-Fester auf, wenn ich auf die Schaltfläche klicke.
Danke!
Lg,sophie
https://www.herber.de/bbs/user/155775.xlsx

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile verschieben+ABC-Sortierung mit VBA
21.10.2022 09:41:50
Yal
Hallo Sophie,
Du brauchst nur eine Zusatzspalte mit der Formel
= WENN(LINKS(E2;2)="A-";"Archiv";"")
Dann kannst Du mit Sortierung auf diese Spalte die Archiv-Einträge nach unten wandern lassen.
Wenn Du vorher nach Nachname sortierst, bleibt diese Reihenfolge nach der "Archiv"-Sortierung weiterhin bestehen.
Ein Datum ist zuerst ein Datum. Wie es angezeigt wird, wird durch das Anzeigeformat entschieden:
Rechtsklick auf der Zelle mit Datum, Zellen formatieren, im Reiter "Zahlen", Kategorie "Benutzerdefiniert" und in "Typ" TT. MMM eintragen.
Das Datum selbst trägt man am besten mit Bindesstrich ein: 21-10 wird in 21.10.2022 interpretiert und mit dem Format als 21. Okt angezeigt.
VG
Yal
Anzeige
AW: Zeile verschieben+ABC-Sortierung mit VBA
21.10.2022 16:48:49
Herbert_Grom
Hallo Frau Doktor,
du solltest schon im Post dazuschreiben, dass du mit einem Mac arbeitest, denn dann kann man gleich sagen, dass es dabei mit VBA Probleme geben kann.
Dann solltest du eine xlsm Datei hochladen, mit den VBA-Codes, die du bereits hast. Mit der Schaltfläche sucht Excel ein Makro in der "Mappe3.xlsm", die auf deinem Desktop liegen muss/soll. Es wäre hilfreich, wenn du diese hochladen würdest.
Excelbezogene Frage: Hier könntest du einfach die Spaltenüberschriften ausblenden und deine in die 1. Zeile schreiben.
Servus
AW: Zeile verschieben+ABC-Sortierung mit VBA
22.10.2022 11:13:08
Sophie
@ herbert_grom Wieso Doktor?
für Mac-angabe war kein Platz mehr im Betreff.
du meinst mit ausblenden, die Zeile ausblenden und einfach unterhalb eine "Überschriftenzeile" machen.
@yal habe diese extra spalte angelegt, aber mit der eingesetzten Formel verschiebt sich nix.
Datei lade ich später separat hoch.
Danke inzwischen.
Anzeige
AW: Zeile verschieben+ABC-Sortierung mit VBA
21.10.2022 18:22:12
Yal
Hallo Sophie,
Vervollständigung meiner bisherige Antwort:
ich habe eine Spalte "IstArchiv" in der Tabelle eingefügt (Spalte F), mit der erwähnte Formel befüllt:
=WENN(LINKS([@Archivnr];2)="A-";"Archiv"; "")
Dann den Makro-Rekorder gestartet, Die Namen sortiert (Der Titel sollte in eine andere Spalte oder hinten angestellt, weil es die sortierung nach Namen stört), dann diese Spalte IstArchiv sortiert, und dann die Spalte F ausgeblendet (schonheitshalber, aber nicht notwendig).
Es ergibt mehr oder weniger diesen Code. Am besten baust Du die Voraussetzung nach und lasst den Makrorekorder auf deinem Version laufen.

Sub Makro1()
' Makro1 Makro
With ActiveWorkbook.Worksheets("Tabelle1").ListObjects("Tabelle1").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("Tabelle1[[#All],[IstArchiv]]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortTextAsNumbers
.SortFields.Add Key:=Range("Tabelle1[[#All],[Titel Nachname Vorname, nachgest. Titel]]"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Columns("F:F").EntireColumn.Hidden = True
End Sub
VG
Yal
Anzeige
AW: Zeile verschieben+ABC-Sortierung mit VBA
22.10.2022 13:53:36
Sophie
@Yal Danke dir, dass klappt schon mal ganz gut, dafür, dass ich das erste Mal "nachbaue". Aber etwas passt noch nicht. Bei mir ordnen sich die Zeilen die ins Archiv verschoben werden, über der grauen Zeile "Archiv" an und stapeln sich noch dazu von unten rauf. Woran liegt das? Vielleicht an der Zuordnung im VBA Code F3:F21? Manuelle Veränderungen will es nicht annehmen.
dynam. Jahrestab+Werte, die ins Neujahr mitmüssen
22.10.2022 14:19:24
Sophie
und noch eine ergänzende Frage:
Ich habe ja das aktuelle Jahr an der Kundenliste dran, danach kommen, wie auch in der Bsp-Datei, die Kontaktdaten und auch eine Summe der, über das Jahr in Anspruch genommenen Leistungen, welche ja in das nächste Jahr mitgenommen werden sollte, weil ich ja auch im Archiv sehen will, wieviel da gebucht wurde. Bis auf das Jahr bleibt also fast alles gleich bzw. wird mitgenommen.
Meine Frage: wenn also das neue Jahr beginnt, kopiere ich dann die Tabelle, lösche den Inhalt des Vorjahres und ändere das Jahr in Zelle A1, weil das ja eigentlich dynamisch ist, aber wie übernehme ich das was übernommen werden muss?
mir fehlt da leider die Erfahrung, was da der effektivste Weg wäre.
Anzeige
AW: dynam. Jahrestab+Werte, die ins Neujahr mitmüssen
23.10.2022 18:17:27
Sophie
Hallo, könnte mir da bitte nochmal jemand drüberschauen, im vorherigen Post habe ich das Problem beschrieben.
Danke.
AW: dynam. Jahrestab+Werte, die ins Neujahr mitmüssen
24.10.2022 12:02:15
Yal
Hallo,
die graue Zeile "Archiv" muss dieselbe Formel bekommen wie alle andere Zeilen. Die Formel Wenn(Links(...); "Archiv", "") setzt auf einem aufsteigende Sortierung.
Wenn die Sortierung umgekhert wäre, müsstest Du die Formel anpassen:
=WENN (LINKS (..;2)="A-"; "1_unten";"2_oben")
(falls ich mich vertan hätte, das Gegenstück:
=WENN (LINKS (..;2)="A-"; "2_unten";"1_oben")
)
"wie übernehme ich das was übernommen werden muss?"
Ich weiss auch nicht, was übernommen werden muss :-) Aber Du könntest Anhand von festen Kriterien eine Formel bauen, die einen Marker setzt: diese Zeile gehört zu den Zeilen, die übernommen werden müssen. Dann Sortieren (end ev. Filtern) und den unerwünschte Block markierne und löschen.
VG
Yal
Anzeige
Danke!
26.10.2022 13:39:29
Sophie
@Yal : Vielen lieben Dank für die hilfreiche Anleitung!
Lg, Sophie

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige