178 Aufrufe
Gefragt in Tabellenkalkulation von suneshi Einsteiger_in (7 Punkte)

Guten Tag, ich möchte bei einer Pendenzenliste folgendes einrichten. Sobald der Status in der Spalte (via drop down Liste) von in Arbeit auf erledigt gesetzt wird, sollte die Information in dieser Spalte verschoben werden in die Archivtabelle (in der selben Mappe) sowie die leere Spalte gelöscht werden)

Die Pendenzliste hat schon gewisse automatisierungen. Datei im Anhang

Wie kann ich das machen?

Vielen Lieben Dank https://supportnet.de/forum/?qa=blob&qa_blobid=5754652262714714358

3 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo,

es wäre schon, wenn du in deiner hochgeladenen Datei den VBA-Schutz entfernt hättest

Ich gehe davon aus, dass du nicht die Spalte (z:b: A) archivieren willst, sondern die Zeile (z.B. 15).

Und soll die ganze Zeile archiviert werden, oder nur bestimmte Spalten? Es wäre gut, wenn du mal eine Zeile in das Tabellenblatt "Protokoll" einfügst und dann auch entsprechend in das Tabellenblatt "Archiv" wenn nicht die ganze Zeile übertragen werden soll.

Gruß

M.O.
0 Punkte
Beantwortet von suneshi Einsteiger_in (7 Punkte)
Guten Tag M.O bitte entschuldige. Ich habe die VBA - Schutz nicht selber erstellt und daher nicht bemerkt, dass es einen hat.

Genau ich möchte die Zeile z.b 15 Archivieren, gerne die ganze Zeile.

Liebe Grüsse
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo,

kopiere den folgenden Code in das VBA-Projekts des Tabellenblatts "Protokoll":

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngEinfZeile As Long

'Makro verlassen, falls keine Änderung in Spalte H erfolgt oder falls in Spalte H nicht erledigt ausgewählt wird
If Target.Column <> 8 Or Target.Value <> "erledigt" Then Exit Sub

'letzte beschriebene Zeile im Arbeitsblatt Archiv feststellen und um 1 erhöhen
lngEinfZeile = Worksheets("Archiv").Cells(Rows.Count, 1).End(xlUp).Row + 1

'Spalten A bis I in das Arbeitsblatt Archiv kopieren
ActiveSheet.Range(Cells(Target.Row, 1), Cells(Target.Row, 9)).Copy Destination:=Worksheets("Archiv").Cells(lngEinfZeile, 1)

'Ereignissteuerungen ausschalten
Application.EnableEvents = False

'kopierte Zeile löschen
ActiveSheet.Rows(Target.Row).Delete

'Ereignissteuerungen einschalten
Application.EnableEvents = True

End Sub

Probiere aber erst einmal in einer Testdatei aus, ob das so funktioniert, wie du willst.

Gruß

M.O.

...