Excel Zeile verschieben / archivieren?
In meiner Telefonliste habe ich verschiedene Spaltenüberschriften in Zeile 4 ( zB Datum, Name, Nummer...) und darunter die jeweiligen Anrufe. Ich möchte, dass sobald in Spalte "i" ein "ü" oder "Ü" eingetragen wird, dass die gesamte Zeile archiviert wird, d.h. sie in dieselbe Tabelle auf Arbeitsblatt 2 "Erledigt" verschoben wird.
1 Antwort
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
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?
So wird in Excel jede zweite Zeile oder Spalte gefärbt:
- 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.
- Klickt anschließend im Reiter „Start“ auf „Bedingte Formatierung“ und dort dann auf „Neue Regel“. Daraufhin öffnet sich ein kleines Fenster.
- Im oberen Bereich des Fensters könnt ihr den „Regeltyp auswählen“. Tippt hier auf „Formel zur Ermittlung der zu formatierenden Zellen verwenden“.
- Für abwechselnd gefärbte Zeilen gebt ihr dort ein:
=REST(ZEILE();2)=0
- Um jede zweite Spalte einzufärben nutzt diese Formel:
=REST(SPALTE();2)=0
- Nun klickt darunter auf den Button „Formatieren“, um die Farbe für die Zeilen oder Spalten zu bestimmen.
- 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
Ab der 5. Zeile möchte ich aber gerne. Sonst klappt alles super!
Du musst den Bereich festlegen für die die bedingten Formatierung gelten soll.
Klicke auf Beringte Formatierung => Regel bearbeiten => hier kannst Du den Bereich festgelegen für den die Bedingte Formatierung gelten soll.
Hmm, wenn jetzt aber Zeilen in das andere Blatt verschoben werden, wird die Farbe mitverschoben und es ist nichtmehr abwechselnd
Das Problem hatte ich noch nicht. Ich denke mal drüber nach.
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?