Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1816to1820
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
Wert in Zelle ganze Zeile kopieren
10.03.2021 08:50:58
Sebastian
Sehr geehrte Damen und Herren,
Aufgrund meiner nicht existenten VBA Kenntnisse stehe ich vor einem riesigen Problem. Ich habe eine Excel-Datei in der sich eine Art Eingabemaske auf auf Blatt 1: "Beschwerdeerfassung" befindet. Dank vieler konstruktiver Beiträge habe ich es hinbekommen das die Werte soweit in das Blatt 2: "Journal" übertragen werden. Jetzt beginnt mein Problem: In Spalte J hat man die Möglichkeit einen Status der jeweiligen Zeile festzulegen. Mit Betätigung eines Commandbuttons oder einer Schaltfläche (denke mal ist Codeabhängig), soll jede Zeile in der sich in Spalte J ein bestimmter Status befindet auf ein, mit dem Status betitelten Tabellenblatt ausgeschnitten und eingefügt werden. Ich habe schon viele Varianten die ich in zig Foren gefunden habe ausprobiert. Jedoch immer das selbe Resultat: Entweder Variable nicht definiert oder Fehler beim Kompilieren.
Ich hoffe mir kann vieleicht weitergeholfen werden.

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Beispieldatei...
10.03.2021 09:14:17
MRUTOR
Hallo Sebastian,
...ware hier sehr angebracht, da keiner weiss, wie deine Datei aussieht und was von wo nach wo kopiert werden soll.
Bitte zeig die Ausgangssituation und wie es am Ende aussehen soll und was du schon an Code hast.
Gruss Tor

AW: Beispieldatei...
10.03.2021 12:11:49
Sebastian
Hallo MRUTOR,
erstmal danke für die schnelle Antwort. Anbei ein Link mit der Beispiel Datei. Wenn du ausdrückst:"was ich bisher an Codes habe", kann ich das nicht einmal direkt sagen. Es kann durchaus sein das im Editor auch Codes vorhanden sind, welche gar keinen Nutzen haben bzw. nichts ausführen. Wie gesagt mein VBA wissen beschränkt sich auf ein extrem minimales.
https://www.herber.de/bbs/user/144620.xlsm

Anzeige
AW: Wert in Zelle ganze Zeile kopieren
10.03.2021 09:16:04
worti
Hallo Sebastian,
wenn ich es richtig verstehe, dann zB. so:
Sub Kopieren()
Dim rngC As Range
Dim strSuchstatus As String
Dim lngZeile As Long
strSuchstatus = "Erledigt"
lngZeile = Worksheets(strSuchstatus).Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each rngC In Worksheets("Quelle").Range("J1:J" & Worksheets("Quelle").Cells(Rows.Count,  _
10).End(xlUp).Row)
If rngC.Value = strSuchstatus Then
rngC.EntireRow.Copy Destination:=Worksheets(strSuchstatus).Range("A" & lngZeile)
lngZeile = lngZeile + 1
End If
Next rngC
End Sub

Gruß Worti

Anzeige
AW: Wert in Zelle ganze Zeile kopieren
10.03.2021 13:15:22
Sebastian
Hallo worti,
erst einmal vielen Dank für die schnelle Antwort. Ich habe den Code im Modul untergebracht und einer Schaltfläche zugeordnet, da er mir wenn ich ihn einem Commandbutton zuordnen wollte immer wieder die Fehlermeldung: "End Sub erwartet" ausgab.
Ich habe das Problem bei der Fehleranalys nicht erkennen zu können, das er die kopierten Zeilen einem anderen Tabellenblatt zuordnen soll bzw. dessen Namen.
Ich habe den Code etwas abgeändert, nach bestem Wissen (zu klein) und Gewissen.
Schließlich kommt keine Fehlermeldung mehr. Jedoch passiert auch sonst nichts.
Aus dem Blatt "Journal" soll es unter der dir festgelegten Bedingung ausgeschnitten und wieder im Blatt "Erledigt" eingefügt werden.
Sub Kopieren()
Dim rngC As Range
Dim strSuchstatus As String
Dim lngZeile As Long
strSuchstatus = "Erledigt"
lngZeile = Worksheets(strSuchstatus).Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each rngC In Worksheets("Journal").Range("J1:J" & Worksheets("Journal").Cells(Rows. _
Count, _
10).End(xlUp).Row)
If rngC.Value = strSuchstatus Then
rngC.EntireRow.Copy Destination:=Worksheets(strSuchstatus).Range("A" & lngZeile)
lngZeile = lngZeile + 1
End If
Next rngC
End Sub
Mag sein das ich den Code jetzt schon komplett verhunzt habe.
MFG Sebastian

Anzeige
AW: Wert in Zelle ganze Zeile kopieren
10.03.2021 18:03:30
Yal
Hallo Sebastian,
irgendwie ist -zumindest bei mir- der Link zu deiner Beispieldatei nicht richtig.
2 Fragen:
_ Warum kopieren und nicht filtern?
_ Mit erweiterte Filter + Einsatz vom Marko-Rekorder könnte viel erreicht werden. Schon da was versucht?
1 Vorschlag:
sehr gut, wenn Du VBA lernen möchtest, aber genau für diese Aufgabenstellung würde ich nahlegen, mit Power Query (PQ) zu arbeiten:
_ den Datenbereich in "Beschwerdeerfassung" mit Strg+t zu eine "intelligente" Tabelle machen
_ im Menü "Daten", neue Abfrage "aus Daten" starten
_ im Power Query Editor die Spalte J nach dem ersten Status filtern
_ Abschliessen und laden
_ das gleiche nochmal für jeden Status.
Alle diese Ergebnisblätter lässen sich mit "Alle Aktualisiseren" (im Menü Daten) oder Strg+Alt+F5 aktualisieren.
Kein Formel, kein Makro, kein Stress.
(mein liebling PQ Tutorial:
https://www.youtube.com/playlist?list=PLy5TtUB84yrN2VVRzp8Tif8bxQKJD_2bo )
VG
Yal

Anzeige
AW: Wert in Zelle ganze Zeile kopieren
10.03.2021 22:05:15
Piet
Hallo Sebastian
Anbei eine Beispieşdatei zurück. Wichtiger Hinweis: - Es ist NICHT deine Originaldatei!! Die hat eine boshafte DLL Macke!! Lies sich nicht mehr öffnen. Apache Office konnte sie bedingt retten.
Mir fiel auf das du in deiner Beschreibung zwei verschiedene Spalten angibst! Einmal die Spalte O für "Erledigt", sieht man an den DropDowns. Aber auch Spalte H ist gemeint, wo Verbesserungen stehen. Ich habe deshalb zwei getrennte Makros geschrieben.
Das "Erledigt" Makro kopiert den Datensatz nur in die Erledigt Tabelle, und löscht ihn im Journal! Das zweite Makro kopiert in eine Tabelle wo der Blattname in Spalte J stehen muss. Sonst klappt es nicht. Ich bin gespannt auf deine Rückmeldung wie es mit dieser Version klappt.
https://www.herber.de/bbs/user/144639.xlsm
mfg Piet

Anzeige
AW: Wert in Zelle ganze Zeile kopieren
11.03.2021 15:16:32
Sebastian
Hallo Piet,
erst einmal vielen Danke für die Datei und die von dir zu Verfügung gestellten Codes. Leider funktioniert der Code für die Aktualisierung der Erledigten Vorgänge nicht so ganz. Ja er verschiebt Vorgänge in die dafür vorgesehene Mappe. Leider gibt es Probleme sofern 2 Vorgänge in Folge erledigt sind. Sprich: Ist zwischen den erledigten Vorgängen min. 1 Zeile verschiebt er alle. Ist zwischen den erledigten Vorgängen keine Zeile verschiebt er nur den 1sten.
Mfg Sebastian

AW: Wert in Zelle ganze Zeile kopieren
11.03.2021 15:18:50
Sebastian
Hallo Piet,
erst einmal vielen Danke für die Datei und die von dir zu Verfügung gestellten Codes. Leider funktioniert der Code für die Aktualisierung der Erledigten Vorgänge nicht so ganz. Ja er verschiebt Vorgänge in die dafür vorgesehene Mappe. Leider gibt es Probleme sofern 2 Vorgänge in Folge erledigt sind. Sprich: Ist zwischen den erledigten Vorgängen min. 1 Zeile verschiebt er alle. Ist zwischen den erledigten Vorgängen keine Zeile verschiebt er nur den 1sten.
Mfg Sebastian

Anzeige
AW: Wert in Zelle ganze Zeile kopieren
12.03.2021 12:48:59
Piet
Hallo Sebastian
Sorry, hat etwas gedauert. Probiere bitte mal diesen Code aus, dafür musst du den alten löschen oder eim "_Old()" am Ende anfügen. Der neue Code hat zwei For Next Schleifen, die zweite laeuft Rückwaerts!! Damit sollte es klappen. Würde mich freuen wenn damit alles einwandfrei klappt.
mfg Piet
Option Explicit     '12.3.2021  Piet   für Herber Forum
Dim j, ok As Variant
Sub Erledigte_Aktualisieren()
Dim rngO As Range, lngO As Long
Dim lngZeile As Long, lngA As Long
Dim n As Integer, lSpa As Integer
Dim strSuchstatus As String
strSuchstatus = "Erledigt"
lngZeile = Worksheets("Erledigt").Cells(Rows.Count, 1).End(xlUp).Row + 1
With Worksheets("Journal")
Application.ScreenUpdating = False
lngA = .Cells(Rows.Count, 1).End(xlUp).Row
lngO = .Cells(Rows.Count, "O").End(xlUp).Row
lSpa = .Cells(2, Columns.Count).End(xlToLeft).Column
'1.Schleife um Daten in "Erledigt" zu kopieren
For Each rngO In .Range("O3:O" & lngO)
If rngO.Value = strSuchstatus Then
rngO.EntireRow.Copy Destination:=Worksheets("Erledigt").Rows(lngZeile)
rngO.EntireRow.ClearContents
lngZeile = lngZeile + 1:  n = n + 1
End If
Next rngO
'2.Schleife um Leerzeilen Rückwaerts zu löschem
For j = lngA To 3 Step -1
If Cells(j, 1).Value = Empty Then
Rows(j + 1 & ":" & lngO).Copy Destination:=Rows(j).EntireRow
Cells(lngO, 1).Resize(1, lSpa - 1).ClearContents
End If
Next j
End With
If n = 0 Then MsgBox "Ke?ne erledigten Daten gefunden"
If n > 0 Then MsgBox n & " Erledigte Daten kopiert"
End Sub


Anzeige
AW: Wert in Zelle ganze Zeile kopieren
13.03.2021 15:04:58
Sebastian
Hallo Piet,
erst einmal vielen Dank für deine Mühe. Es funktioniert jetzt tadellos. Habe den alten Code gelöscht. Mit "_Old()" hat es nicht so richtig funktioniert, was eigentlich auch egal ist. Ich danke dir und bin sehr glücklich das ich schonmal einen Schritt weiter bin.
Mit freundlichem Gruße
Sebastian

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige