Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
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

Zeile nach Bed. in and. Blatt schieben

Zeile nach Bed. in and. Blatt schieben
14.02.2021 17:38:52
Krissi
Liebes Forum,
vorneweg: ich kenne mich null mit VBA aus.
Habe folgenden Beitrag bei euch gefunden und auch soweit für meinen Fall angepasst:
https://www.herber.de/forum/archiv/1552to1556/1553802_Zeile_nach_Beding_in_anderes_Tabellenblatt_versch.html
Dabei habe ich nur den Bereich (1, 10) auf (1, 45) ausgeweitet und die Zeile "J" ist bei mir Zeile "AP". Die Zeilen, die anstatt Datum und Uhrzeit im zweiten Blatt sortiert werden, sind bei mir allerdings Vor- und Nachname.
Das funktioniert auch soweit gut, nur eine Sache bekomme ich leider nicht hin:
- wenn ich das Makro zum ersten mal anwende, zieht es die Daten wie gewünscht in das zweite Tabellenblatt und löscht sie vorne
- wenn ich es allerdings zum zweiten mal laufen lasse, dann zieht es sich die neuen Daten wieder in das zweite Tabellenblatt, überschreibt dort aber die vorhandenen Zeilen, anstatt die neuen Zeilen unten anzufügen (oder dazwischen, weil in der Ursprungsformel ja eine Sortierfunktion eingefügt ist).
Könnt ihr mir vielleicht einen Tipp geben, woran das liegen könnte? Mir ist bewusst, dass es einfacher wäre, wenn ich die Datei einfach hochlade, da ich aber personenbezogene Daten verwende, müsste ich eine neue Datei bauen. Wenn nötig mache ich das, aber vielleicht ist die Lösung ja super easy und ich kann mir das sparen :)
Schon jetzt lieben Dank für eure Hilfe!
Krissi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile nach Bed. in and. Blatt schieben
14.02.2021 17:54:19
Werner
Hallo,
und welches der verschiedenen Makros aus dem verlinkten Beitrag du jetzt wie in deiner Datei hast sollen wir uns jetzt selbst aussuchen?
Also zumindest mal dein Makro hier einstellen, so wie du es aktuell in Verwendung hast.
Gruß Werner
AW: Zeile nach Bed. in and. Blatt schieben
14.02.2021 18:12:40
Krissi
Hallo Werner,
danke für die schnelle Rückmeldung. Natürlich, hier das Makro, so wie ich es gerade in Verwendung habe:
Sub Verschieben()
Dim copVar As Variant
Dim letzteZeileA As Long
Dim letzteZeileE As Long
Dim wsA As Worksheet  ' Blatt "P?"
Dim wsE As Worksheet  ' Blatt "erledigt"
Dim zeileA As Long
Dim zeileE As Long
Set wsA = ThisWorkbook.Worksheets("P?")
Set wsE = ThisWorkbook.Worksheets("erledigt")
letzteZeileA = wsA.Cells(wsA.Rows.Count, "A").End(xlUp).Row
letzteZeileE = wsE.Cells(wsE.Rows.Count, "A").End(xlUp).Row
zeileE = letzteZeileE + 1
For zeileA = letzteZeileA To 2 Step -1
If wsA.Cells(zeileA, "AP") = "a" Then
copVar = wsA.Cells(zeileA, "A").Resize(1, 10)
wsE.Cells(zeileE, "A").Resize(1, 10) = copVar
wsA.Rows(zeileA).Delete
zeileE = zeileE + 1
End If
Next zeileA
If zeileE > 2 Then
With wsE.Sort
With .SortFields
.Clear
.Add Key:=wsE.Range("B2")
.Add Key:=wsE.Range("C2")
End With
.Header = xlYes
.SetRange Rng:=wsE.UsedRange
.Apply
End With
End If
End Sub

LG Kristina
Anzeige
uups, vergessen
16.02.2021 20:38:19
Werner
Hallo,
hier geht es ja darum abgeschlossene Zeilen in ein Archiv zu verschieben.
Bei so was tendiere ich eher dazu das mit einem Doppelklick zu erledigen.
In deinem Fall: Doppelklick in die Spalte AP markiert die entsprechende Zeile als erledigt und verschiebt sie ins Archiv.
Wäre das eine Alternative oder willst du das unbedingt über eine Schaltfläche realisieren?
Gruß Werner
AW: uups, vergessen
17.02.2021 10:43:45
Krissi
Hallo Werner,
die Schaltfläche ist ganz schick weil ich mehrere Makros dahinter klemmen möchte und das dann in einem Aufwasch ginge. Aber ich glaube, ich habe meinen Fehler auch gefunden: in meiner ersten Spalte waren teilweise leere Zellen, sodass er die ganze Zeile dann immer überschrieben hat. Hab ihn jetzt auf Spalte 2 schauen lassen und so wie es gerade aussieht scheint es zu klappen :)
Nur aus Neugier und weil das mein erstes VBA-Tool ist und ich was lernen möchte - und nur wenn du Zeit und Lust hast zu antworten - was in dem Code wäre anders, wenn es mit Doppelklick laufen soll?
Auf jeden Fall vielen Dank für die super schnellen Antworten!
VG Kristina
Anzeige
AW: uups, vergessen
17.02.2021 10:56:15
Werner
Hallo,
das wäre etwas komplett anderes. Dabei würde es sich um ein sogenanntes Event-Makro des entsprechenden Tabellenblattes handeln.
Tabellenblätter haben eigene Events in ihrem jeweiligen Codemodul.
Klick mal im VBA-Explorer doppelt auf irgendein Tabellenblatt. Dann wählst du im Pulldown bei Allgemein Worksheet aus. Im Pulldown rechts daneben kannst du dir die verschiedenen Events anzeigen lassen die es dazu gibt.
Dort gibt es unter anderem auch BeforeDoubleKlick und um das würde es hier dann gehen.
Leg dir mal eine neue Excel-Mappe an und schreib mal irgendwelche Daten rein.
Dieses Makro kopierst du dir dann ins Codemodul des Tabellenblattes.
Im VBA-Explorer das Blatt doppelt anklicken und das Makro komplett rechts ins Codefenster kopieren.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 42 Then
If Target.Row > 10 Then
Cancel = True
Rows(Target.Row).ClearContents
End If
End If
End Sub
Das Makro reagiert auf einen Doppelklick in Spalte AP (=42) ab Zeile 11 und leert die doppelt angeklickte Zeile.
Gruß Werner
Anzeige
AW: uups, vergessen
18.02.2021 16:08:31
Krissi
Super cool !!! Danke!
LG Krissi
Gerne u. Danke für die Rückmeldung. o.w.T.
18.02.2021 16:43:44
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige