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

Nach Datum Suchen Zeilen kopieren

Nach Datum Suchen Zeilen kopieren
25.07.2021 16:42:48
Andreas
Hallöchen alle zusammen,
ich habe das Problem, dass ich gerne von einem bestehenden Tabellenblatt (Tabelle Zusammenfassung) bestimmte Zeilen auf eine andere Tabelle (Tabellenblatt Ergebnis) kopieren möchte.
Auf Tabelle (Zusammenfassung) steht ein Datum in Spalte E, nach dem zunächst im SUchkriterium 1 gesucht werden soll. Das Datum kommt mehrfach auch in dieser Spalte vor, so dass ich am Ende mehrere Datensätze zum betroffenen Datum kopiert haben will. EIn zweites Suchkriterium in Spalte F soll hierbei auch berücksichtigt werden, wenn dieses zutrifft (zb, die Werte Ja oder Nein).
DIe gefundenen Zeilen, die Kriterium 1 und 2 entsprechen, sollen dann in die Tabelle(Ergebnis) ab der Zelle G5 kopiert werden.
Ich habe hier verschiedene Lösungen gesehen, die mit Autofilter arbeiten. Allerdings benötige ich das ganze in VBA.
Hat einer von Euch vielleicht eine passende Lösung für mich? Vielen Dank für Eure Hilfe.
Grüße
Andreas

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach Datum Suchen Zeilen kopieren
25.07.2021 16:46:49
Hajo_Zi
Hallo Andreas,
Benutze Autofilter und Kopiere den sichtbaren Bereich, Start, Bearbeiten, Suchen..., Gehe zu, Inhalte, sichtbare Zellen.
Excel hat auch einen Makrorecorder.
GrußformelHomepage
AW: Nach Datum Suchen Zeilen kopieren
25.07.2021 16:58:52
Andreas
Genau das wollte ich ja nicht. Ich wollte keinen Autofilter verwenden.
Der Macroaufzeichner bringt mich nicht viel weiter, da ich dort auch nur nach AutoFIlter arbeiten kann.
Anzeige
AW: Nach Datum Suchen Zeilen kopieren
25.07.2021 17:06:16
Hajo_Zi
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
ändern.
Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.
Gruß Hajo
Anzeige
AW: Nach Datum Suchen Zeilen kopieren
25.07.2021 17:28:02
Hajo_Zi
Du solltest mal mit STRG +Ende das Ende prüfen und überzählige Zeilen löschen. Speichern nicht vergessen.

Option Explicit
Sub Kopie()
Dim LoLetzte1 As Long
Dim LoLetzte2 As Long
Dim LoI As Long
With Worksheets("Ergebnis")
LoLetzte2 = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
End With
With Worksheets("Zusammenfassung")
LoLetzte1 = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
For LoI = 6 To LoLetzte1
If .Cells(LoI, 5) = CDate("02.01.2021") And UCase(.Cells(LoI, 6)) = "JA" Then
.Range("D" & LoI & ":J" & LoI).Copy Worksheets("Ergebnis").Range("G" & LoLetzte2)
LoLetzte2 = LoLetzte2 + 1
End If
Next LoI
End With
End Sub
Gruß Hajo
Anzeige
AW: Nach Datum Suchen Zeilen kopieren
25.07.2021 17:54:31
Andreas
Na das sieht doch schon ganz brauchbar aus :)
Allerdings ändern sich diese Daten hin und wieder, so dass ich immer ne Spiegelung bräuchte. Dh. Wenn mal soäter zb auf NEIN gestellt wird, dann sollte der Datensatz aus Ergebnis wieder verschwinden. Sozusagen ne 1:1 Spiegelung. Vl löscht man die Ergebnisse einfach alle, und befüllt sie neu?
Danke Hajo für Deine Bemühung bisher...
AW: Nach Datum Suchen Zeilen kopieren
25.07.2021 18:04:04
Hajo_Zi
Ich erstelle die Lösung für das was im Beitrag dargestellt wurde.
Wird diese Darstellung geändert, überlasse ich anderen die Lösung, da ich schon eine Lösung erstellt hatte und dafür Zeit investiert habe.
Ich schreibe nicht für den Papierkorb.
Gruß Hajo
Anzeige
AW: Nach Datum Suchen Zeilen kopieren
25.07.2021 19:00:59
Andreas
Weiss zwar jetzt nicht, was da für den Papierkorb war... aber nun gut...Danke trotzdem. Vielleicht kann ja jemand noch was dazu ergänzen...
AW: Nach Datum Suchen Zeilen kopieren
25.07.2021 17:57:06
Andreas
....und es dürfen nur Zellwerte kopiert werden, ohne Formatierung
AW: Nach Datum Suchen Zeilen kopieren
25.07.2021 19:28:00
Andreas
Weiss vl noch jemand, was man ändern muss an Hajos Code, damit nur Werte kopiert werden? habe es schon mit .pasteSpecial probiert, aber bringt leider Fehler.
With Worksheets("Zusammenfassung")
LoLetzte1 = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
For LoI = 6 To LoLetzte1
If .Cells(LoI, 5) = CDate("02.01.2021") And UCase(.Cells(LoI, 6)) = "JA" Then
.Range("D" & LoI & ":J" & LoI).Copy
Worksheets("Ergebnis").Range("G" & LoLetzte2).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
LoLetzte2 = LoLetzte2 + 1
End If
Next LoI
End With
die Ergänzung mit PasteSpecial gibt nur kuddelmuddel
Anzeige
AW: Rückfrage
25.07.2021 17:44:28
GerdL
Hi Andreas!
Was bedeutet "ab Zelle G5" konkret?
In welchen Zellen genau soll der erste gefundene Datensatz eingefügt werden?
Gruß Gerd
AW: Rückfrage
25.07.2021 17:52:29
Andreas
Die gefundenen Zeile soll ab G5 eingefügt werden.
Also ganze Zeile dann G5, H5, I5, J5,...
die Nächste gefundene dann G6, H6, I6, J6,...
AW: Rückfrage
25.07.2021 19:51:33
GerdL
Hallo Andreas,
die Kriterien könntest du auch aus Zellen holen.
Die Aufgabe wäre genauso mit der Find-Methode oder dem Spezialfilter oder dem Autofilter lösbar.

Sub Unit()
Const dteS1 As Date = "01.01.2021"
Const strS2 As String = "Ja"
Dim Z As Long, rngValues As Range
With Worksheets("Zusammenfassung")
For Z = 6 To .Cells(Rows.Count, "E").End(xlUp).Row
If .Cells(Z, "E") = dteS1 And UCase(.Cells(Z, "F")) = UCase(strS2) Then
If rngValues Is Nothing Then
Set rngValues = .Cells(Z, "D").Resize(1, 7)
Else
Set rngValues = Union(rngValues, .Cells(Z, "D").Resize(1, 7))
End If
End If
Next
End With
If Not rngValues Is Nothing Then
With Worksheets("Ergebnis")
.Cells(4, "G").CurrentRegion.Offset(1).ClearContents
rngValues.Copy
.Cells(5, "G").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set rngValues = Nothing
.Activate
End With
End If
End Sub
Gruß Gerd
Anzeige
AW: Rückfrage
25.07.2021 20:42:19
Andreas
Hey Gerd,
das hat super geklappt. Vielen Dank für deinen Code.
Eine kleine Anmerkung hab ich noch. Beim kopieren auf das Ergebnis-Blatt wird mit das Datum nur als Zahl angezeigt. Kann man das vorweg gleich als befehl mitgeben?
AW: Rückfrage
25.07.2021 21:18:11
Werner
Hallo,
ersetze im Code
xlPasteValues
durch
xlPasteValuesAndNumberFormats
Gruß Werner
AW: Rückfrage
25.07.2021 21:21:02
Andreas
Perfekt. Danke Euch beiden. Hat super funktioniert!

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige