Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Zeilen verschieben wenn Bedingungen erfüllt
#1
Hallo zusammen,

ich habe folgendes Problem:
In Tabellenblatt 1 (Name: Projekt) habe ich eine Liste mit allen Aktivitäten, welche ich noch zu erledigen habe. Die Punkte, die ich erledigt habe, markiere ich in Spalte M mit einem "100%". In jeder Spalte ist ein ToDo-Punkt.
Alle mit "100%" markierten ToDO-Punkte (Zeilen) würde ich gerne automatisch in Tabellenblatt 2 (Name: Archiv) ab Zeile 7 verschieben lassen.

Ich hoffe ich hab mich verständlich ausgedrückt und bitte um eure unterstützung.
Meine VBA Kentnisse halten sich noch ziemlich in Grenzen... :20:

Vielen Dank im Voraus.

Grüße
Dan


Angehängte Dateien
.xlsm   Protokoll_LOP_Abstimmrunde_Muster.xlsm (Größe: 87,45 KB / Downloads: 32)
Antworten Top
#2
Hallo,

füge folgenden Code in das Codefenster der Tabelle "Projekt" ein.
Und sobald in Spalte Status ein Wert verändert wird, sollte das Passieren, was Du möchtest.


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim lngZ As Long
 If Not Intersect(Target, Range("Tabelle3[Status]")) Is Nothing Then
   With Sheets("Archiv")
     lngZ = .Range("Tabelle32[Art]").End(xlUp).Row + 1
     .Range(.Cells(lngZ, 1), .Cells(lngZ, 14)).Value = Range(Cells(Target.Row, 1), Cells(Target.Row, 14)).Value
   End With
   Range(Cells(Target.Row, 1), Cells(Target.Row, 14)).ClearContents
   Application.EnableEvents = False
   Tabelle_Projekt_sortieren
   Application.EnableEvents = True
 End If
End Sub

Sub Tabelle_Projekt_sortieren()

 With ActiveWorkbook.Worksheets("Projekt").ListObjects("Tabelle3").Sort
   .SortFields.Clear
   .SortFields.Add Key:=Range("Tabelle3[AP" & Chr(10) & "]"), SortOn:=xlSortOnValues, Order:= _
   xlAscending, DataOption:=xlSortNormal
   .Header = xlYes
   .MatchCase = False
   .Orientation = xlTopToBottom
   .SortMethod = xlPinYin
   .Apply
 End With
 
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • DanOnline
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste