Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen

VBA Hilfe ganze Zeilen verschieben, neue einfügen


Betrifft: VBA Hilfe ganze Zeilen verschieben, neue einfügen von: Chris
Geschrieben am: 13.09.2019 15:32:44

Hallo zusammen

Ich habe ein Frage betreffend meiner To-Do Liste. Spalte A ist leer. Tabelle geht von Spalte B bis Spalte I, wobei Zeile 1 bis und mit Zeile 7 überschriften sind. Der eigentliche Tabelleninhalt beginnt also in der Zeile 8 Spalten B-I.

Ich habe drei Probleme, die ich zu lösen versuchte, aber es leider nicht schaffte.

Problem 1: In der letzten Spalte der Tabelle (I) gebe ich den Status der Aufgabe an. Wenn ich diesen auf "erledigt" setzte, soll die ganze Zeile mit der erledigten Aufgabe in die Tabelle 3 verschoben werden. Das klappt eigentlich, allerdings wird in der Tabelle 3 immer nur ein Eintrag angezeigt. Markiere ich auf Tabelle 1 eine weitere Aufgabe als "erledigt" wird der alte Eintrag in Tabelle 3 überschrieben, als eine Zeile nach unter geschoben, sodass der neue Eintrag oben angezeigt werden kann. Wie muss ich meine Formel anpassen?

Formel zum Problem 1:

      
      
      
      
      
      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim Zeile As Long
      Set Target = Intersect(Target, Range("I1:I35"))
      If Target Is Nothing Then Exit Sub
      If Target = "erledigt" Then
      Zeile = Target.Row
      Range(Cells(Zeile, 1), Cells(Zeile, 10)).Copy _
      Destination:=Sheets("Tabelle3").Cells(Rows.Count, 1).End(xlUp).Offset(7, 0)
      Target.EntireRow.Delete
      End If
      End Sub

Problem 2: Ich möchte das Umgekehrte machen. Wie lautet die Formel, wenn ich den Status in der Tabelle 3 ändere, sodass der Status einer Aufgabe wieder ein anderer ist als "erledigt"? Diese Zeile soll dann in die letzte Zeile der Tabelle 1 verschoben werden.

Problem 3: Die Spalten und Zeilen im Arbeitsblatt Tabelle 1 sind formatiert und enthalten Formeln. Wie kann eine Formel lauten, so dass immer 3 leere Zeilen mit derselben Formatierung und denselben Formeln nach dem letzten Eintrag in Spalte D angezeigt werden (in Spalte D ist die eigentliche Aufgabe beschrieben, hier steht also immer etwas)? Die Tabelle mit den Aufgaben beginnt ja bei B8, angenommen sie ist mit 10 Aufgaben befüllt (also Zeilen 8-17), hätte ich gerne, dass die Zeilen 18-20 leer, aber formatiert angezeigt werden. Wenn ich dann eine neue Aufgabe in Zeile 18 erfasse, soll die formatierte Tabelle wachsen, so dass neu Zeile 21 leer, aber formatiert angezeigt wird...

Ich hoffe, ihr wisst was ich meine und ihr könnt mir helfen. Vielen Dank!!


  

Betrifft: AW: VBA Hilfe ganze Zeilen verschieben, neue einfügen von: 1712964.html
Geschrieben am: 13.09.2019 16:01:37

Hallo Chris

du hast deine eigene Lösung in der Aufgabenstellung bereits benannt, siehst aber vor "lauter Baeumen den Wald nicht!"
Der eigentliche Tabelleninhalt beginnt also in der Zeile 8 Spalten B-I. - Frage: Warum suchst du dann die LastZell in Spalte A??? - Da aendert sich doch nix!!!
So wird dein Kopier Code klappen!! -- Sheets("Tabelle3").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) - Suche LastCell in Spalte B mit Offset(1, 0)

Willst du wieder zurück kopieren probier bitte in Tabelle3 denselben Code, nur leicht geandert.
Welchen Text du da anstelle von "erledigt" nimmst, ob "zurück", "wiederherstellen" bleibt dir überlassen.

mfg Piet

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim Zeile As Long
   Set Target = Intersect(Target, Range("I1:I35"))
   If Target Is Nothing Then Exit Sub
   If Target = "zurück" Then
   Zeile = Target.Row
   Range(Cells(Zeile, 1), Cells(Zeile, 10)).Copy _
   Destination:=Sheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)
   Target.EntireRow.Delete
   End If
   End Sub
   

  

Betrifft: AW: VBA Hilfe ganze Zeilen verschieben, neue einfügen von: 1712976.html
Geschrieben am: 13.09.2019 16:39:14

Hallo Piet

Vielen Dank für deine Hilfe, aber leider klappt das so nicht. Wenn ich die Formel so anpasse, dann wird die entsprechende Zeile zwar in Tabelle 3 verschoben, allerdings in Zeile 6 (mitten in die Titel) und beginnend bei Spalte C. Das Problem, dass diese Zeile dann immer wieder überschrieben wird und nicht nach unten rückt, wenn auf Tabelle 1 eine neue Aufgabe als "erledigt" markiert wird, besteht zudem weiterhin.

In meiner Lösung stimmt die Position, wo die Zeile in Tabelle 3 eingefügt wird, allerdings wird eine neu als "erledigt" markierte Aufgabe nicht oberhalb der bestehenden erledigten Aufgaben in Tabelle 3 verschoben, sondern eine vorhandene Aufgabe in Tabelle 3 Spalte B-I Zeile 8 wird immer überschrieben.

Woran liegt das? Es ist aber gut möglich, dass ich den "Wald vor lauter Bäume nicht mehr sehe"

  

Betrifft: AW: VBA Hilfe ganze Zeilen verschieben, neue einfügen von: 1712979.html
Geschrieben am: 13.09.2019 17:18:25

Hallo Chris,

so:

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Row < 8 Or Target.Column <> 9 Then Exit Sub
 If UCase(Target.Value) = "ERLEDIGT" Then
     Target.EntireRow.Copy
     Worksheets("Tabelle3").Rows(8).Insert xlDown
     Target.EntireRow.Delete
 End If
 End Sub
Gruß Werner
  

Betrifft: AW: VBA Hilfe ganze Zeilen verschieben, neue einfügen von: 1713018.html
Geschrieben am: 14.09.2019 08:10:58

Hallo Werner
Vielen herzlichen Dank, das klappt so wunderbar wie geplant. Ich muss deine Formel noch genauer ansehen, was genau passiert (Neuling), aber es klappt top. Hast du per Zufall auch eine Formel für mein 3. Problem?

@Piet: kein Problem, vielen Dank für deine Hilfe, ich bin um jeden Input froh!

Ein schönes Wochenende, Chris

  

Betrifft: AW: VBA Hilfe ganze Zeilen verschieben, neue einfügen von: 1712990.html
Geschrieben am: 13.09.2019 18:11:33

Hallo zusammen

lag ich mit meinem Rat daneben?? Dann Sorry, würde mich freuen wenn der Code von Werner klappt.

mfg Piet

  

Betrifft: AW: geschlossen - weil keine AW kam oWt von: 1713989.html
Geschrieben am: oWt

...

Beiträge aus dem Excel-Forum zum Thema "VBA Hilfe ganze Zeilen verschieben, neue einfügen"