Excel Zeile verschieben / archivieren?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Option Explicit

 

Public Sub Move_Done_Transactions()

   Dim objCell As Range

   Dim lngRowsArray() As Long, lngRowCounter As Long, lngCopyRow As Long

   Dim strAddress As String

   With Worksheets("Mitarbeiterplanung NEU")

       Set objCell = .Columns(2).Find(What:="Verschieben", _

           After:=.Columns(2).Cells(.Rows.Count), LookIn:=xlValues, LookAt:=xlWhole)

       If Not objCell Is Nothing Then

           strAddress = objCell.Address

           Do

               lngRowCounter = lngRowCounter + 1

               ReDim Preserve lngRowsArray(1 To lngRowCounter)

               lngRowsArray(lngRowCounter) = objCell.Row

               Set objCell = .Columns(2).FindNext(objCell)

           Loop While Not objCell Is Nothing And objCell.Address <> strAddress

           With Worksheets("Mitarbeiterplanung erledigt")

               lngCopyRow = .Cells(.Rows.Count, 3).End(xlUp).Row

           End With

           For lngRowCounter = UBound(lngRowsArray) To 1 Step -1

               lngCopyRow = lngCopyRow + 1

               .Rows(lngRowsArray(lngRowCounter)).Cut

               Worksheets("Mitarbeiterplanung erledigt").Rows(lngCopyRow).Insert Shift:=xlDown

               .Rows(lngRowsArray(lngRowCounter)).Delete

           Next

       End If

   End With

End Sub

Sub nummerierung()

 

With Worksheets("Mitarbeiterplanung NEU")

  With .Range(.[A3], .Cells(.Cells(.Rows.Count, 3).End(xlUp).Row, 1))

   .Formula = "=Row() - 2"

   .Value = .Value

  End With

End With

End Sub

 

Private Sub Worksheet_Change(ByVal Target As Range)

Call Tabelle1.Move_Done_Transactions

End Sub

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

 

End Sub

lassekrasse 
Fragesteller
 22.01.2020, 15:26

Ok, ich habe die 4 Fettgedruckten Bezeichnungen mit meinen Blätternamen ersetzt, und es bei Tabelle1 in den Code kopiert. Leider funktioniert es nicht. Wo ist denn das "ü" bei dir?

2
lassekrasse 
Fragesteller
 22.01.2020, 16:37
@Solomon22

Super hat geklappt, danke! wie schaffe ich es mit vba jetzt noch, dass ab zeile 5 die spalten a - i abwechselnd hellgrau und weiß gefärbt werden?

2
Solomon22  22.01.2020, 16:44
@lassekrasse

So wird in Excel jede zweite Zeile oder Spalte gefärbt:

  1. Zuerst markiert ihr mit der Maus den Bereich der Tabelle, in dem die Zellen abwechseln gefärbt sein sollen. Wenn das gesamte Arbeitsblatt formatiert werden soll, tippt oben links in der Ecke auf das Dreieck oder nutzt die Tastenkombination Strg + A.
  2. Klickt anschließend im Reiter „Start“ auf „Bedingte Formatierung“ und dort dann auf „Neue Regel“. Daraufhin öffnet sich ein kleines Fenster.
  3. Im oberen Bereich des Fensters könnt ihr den „Regeltyp auswählen“. Tippt hier auf „Formel zur Ermittlung der zu formatierenden Zellen verwenden“.
  4. Für abwechselnd gefärbte Zeilen gebt ihr dort ein:
  5. =REST(ZEILE();2)=0
  6. Um jede zweite Spalte einzufärben nutzt diese Formel:
  7. =REST(SPALTE();2)=0
  8. Nun klickt darunter auf den Button „Formatieren“, um die Farbe für die Zeilen oder Spalten zu bestimmen.
  9. Dabei handelt es sich um die Färbung von Zellen, ihr findet sie im nächsten Fenster im Reiter „Ausfüllen“. Wählt eine Farbe aus und klickt auf „OK“. Dann nochmal auf „OK“ im vorherigen Fenster und sofort wird der Tabellenbereich nach euren Wünschen gefärbt
1
lassekrasse 
Fragesteller
 22.01.2020, 16:50
@Solomon22

Ab der 5. Zeile möchte ich aber gerne. Sonst klappt alles super!

1
Solomon22  22.01.2020, 16:53
@lassekrasse

Du musst den Bereich festlegen für die die bedingten Formatierung gelten soll.

1
Solomon22  22.01.2020, 17:11
@lassekrasse

Klicke auf Beringte Formatierung => Regel bearbeiten => hier kannst Du den Bereich festgelegen für den die Bedingte Formatierung gelten soll.

2
lassekrasse 
Fragesteller
 22.01.2020, 21:05
@Solomon22

Hmm, wenn jetzt aber Zeilen in das andere Blatt verschoben werden, wird die Farbe mitverschoben und es ist nichtmehr abwechselnd

2
Solomon22  22.01.2020, 16:37

Ich hoffe dass Du es hinbekommen hast wie Du es wolltest.

2