Anzeige
Archiv - Navigation
1696to1700
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Zellen kopieren wenn Bedingung erfüllt

VBA Zellen kopieren wenn Bedingung erfüllt
06.06.2019 12:15:35
Markus
Hallo zusammen,
2. Versuch. ;-)
ich habe eine Tabelle 1 mit sämtlichen Daten und Statusmeldungen. Nun möchte ich ich die Zeile (von Spalte A bis Spalte BL) in ein neues Tabellenblatt2 verschieben (kopieren) wenn der Status "fertig" gesetzt wird. Ich habe schon etwas ähnliches gefunden, allerdings fügt das Makro die Zeile unterhalb meiner angegebenen Tabelleblatt 2 ein und bindet sie nicht in die markierte Tabelleblatt2 ein. Wenn möglich, sollte das Makro in der Tabelleblatt2 das aktuelle Datum der Fertigmeldung notieren.
Wenn mir da jemand einen Tipp geben könnte, was auch das Übertragungsdatum betrifft wäre ich echt froh.
Schon mal vielen Dank
Markus
https://www.herber.de/bbs/user/130241.xlsm

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zellen kopieren wenn Bedingung erfüllt
06.06.2019 12:27:12
Torsten
deine Datei ist passwort geschuetzt
AW: VBA Zellen kopieren wenn Bedingung erfüllt
06.06.2019 12:29:35
Markus
UPS, sorry
0000
AW: VBA Zellen kopieren wenn Bedingung erfüllt
06.06.2019 12:47:14
Torsten
Hi Markus,
versuch mal die Groesse des Tabellenobjekts (ListObject) neu festzulegen (Resize) nach dem Kopiervorgang:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngErste As Long
If Target.Column = 13 Then 'Spalte Status
If Target.Count = 1 Then
If UCase(Target) = "FERTIG" Then
With Worksheets("fertige Aufträge")
lngErste = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
.Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1
Rows(Target.Row).Copy
.Cells(lngErste, 1).PasteSpecial Paste:=xlValues
Rows(Target.Row).Delete Shift:=xlUp
End With
End If
End If
End If
Dim tbl As ListObject
Dim Lrow1 As Long
Lrow1 = Worksheets("fertige Aufträge").Cells(Rows.Count, "A").End(xlUp).Row
Set tbl = Worksheets("fertige Aufträge").ListObjects("Tabelle5")
tbl.Resize tbl.Range.Resize(Lrow1)
End Sub
Gruss Torsten
Anzeige
AW: VBA Zellen kopieren wenn Bedingung erfüllt
06.06.2019 13:35:01
Markus
Vielen Dank erst mal.
Thorsten, allerdings kopiert er 3 zwischen Zeilen in die fertigen Aufträge. ?
Hättest Du auch eine Idee in den fertigen Aufträgen ein Datum einzufügen wann dieser in die Fertigen Aufträge hinein kopiert wurde?
AW: VBA Zellen kopieren wenn Bedingung erfüllt
06.06.2019 13:03:57
Werner
Hallo Markus,
1. deine intelligente Tabelle in "fertige Aufträge" geht nicht bis Spalte BL (entsprechend erweitern)
2. kopierst du eine ganze Zeile und nicht nur den entsprechenden Bereich.
Wenn du die intelligente Tabelle erweiterst und auch nur den entsprechenden Bereich
Range(Cells(Target.Row, "A"), Cells(Target.Row, "BL")).Copy

kopierst, dann funktioniert das auch.
Gruß Werner
Anzeige
AW: VBA Zellen kopieren wenn Bedingung erfüllt
06.06.2019 13:37:06
Markus
Danke Werner,
ja ich habe die Tabelle erweitert.
Habe ich gar nicht daran gedacht. ;-)
AW: VBA Zellen kopieren wenn Bedingung erfüllt
06.06.2019 13:52:43
Werner
Hallo Markus,
und hier mit Datum in Spalte BM (intelligente Tabelle vorher entsprechend erweitern)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngErste As Long
If Target.Column = 13 Then 'Spalte Status
If Target.Count = 1 Then
If UCase(Target) = "FERTIG" Then
Application.ScreenUpdating = False
With Worksheets("fertige Aufträge")
lngErste = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
.Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1
Range(Cells(Target.Row, "A"), Cells(Target.Row, "BL")).Copy
.Cells(lngErste, 1).PasteSpecial Paste:=xlValues
.Cells(lngErste, "BM") = Date
Rows(Target.Row).Delete Shift:=xlUp
End With
End If
End If
End If
End Sub
Und gewöhn dir an, beim Code mit Einrückungen zu arbeiten. So sieht man gleich was wohin gehört. Besonders bei If - End If bzw. With - End With sieht man dann sofort wo ggf. ein End With fehlt.
Noch was: Schau dir mal deine bedingten Formatierungen an, die sind drei und vierfach vorhanden.
Zudem kannst du die Regel für die Auswahl von "fertig" komplett raus schmeißen. Die Daten werden ja jetzt in ein Blatt verschoben, da macht die bedingte Formatierung für diesen Fall keinen Sinn mehr.
Gruß Werner
Anzeige
AW: VBA Zellen kopieren wenn Bedingung erfüllt
06.06.2019 14:00:12
Markus
Ja, Super! Das ist klasse, Vielen Dank
Gerne u. Danke für die Rückmeldung. o.w.T.
06.06.2019 14:05:42
Werner

131 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige