Das Archiv des Excel-Forums

Datum abfragen und Werte kopieren


Betrifft: Datum abfragen und Werte kopieren
von: Norman

Geschrieben am: 19.09.2019 18:28:20
Hallo zusammen,
meine Wenigkeit hat schon viel Hilfe hier im Forum gefunden. Ihr seid alle Goldwert!
Nun brauche ich aber direkt Hilfe, die Suche hat nichts passendes ergeben, leider.

Ich brauche eine Funktion die einen bestimmten Bereich in einem Arbeitsblatt mit dem Namen „Daten“ absucht. Darin sind verschiedene Namen und Daten (Bsp: 01.01.2019).

Sollte die Suchkriterien erfüllt sein, muss das Datum dann in ein zweites Blatt mit dem Namen „Liste“ kopiert werden.

Das ganze soll so ablaufen:

Prüfen ob Name vorhanden.
Wenn nein: Funktion beenden.
Wenn ja: Prüfen ob ein Datum vorhanden ist.
Wenn kein Datum vorhanden: Ignorieren und nächste Zeile.
Wenn Datum vorhanden: Es mit dem Tagesdatum vergleichen.

Ist die Differenz zum Tagesdatum höher als 30 Tage, soll er es ignorieren und die nächste Zeile prüfen.
Ist die Differenz genau 30 oder niedriger, soll er das Datum auf das Blatt „Liste“ kopieren.

Wie bekomme ich das in eine Funktion mit VBA? Ich danke euch schon vorab von Herzen!

Liebe Grüße,
Norman

Betrifft: AW: Datum abfragen und Werte kopieren
von: 1714026.html
Geschrieben am: 20.09.2019 08:37:26
Hallo Norman,

muss das unbedingt via VBA sein?

Ausgehend davon, dass das Datum in Spalte A und die Namen in Spalte B stehen, reicht in dem Blatt "Liste" folgende Formel:

=WENN(UND(Daten!B1<>"";Daten!A1>HEUTE()-30);Daten!A1;"")

In A1 einfügen und so weit wie nötig nach unten ziehen.


Man könnte diese Formel auch automatisch durch VBA einfügen lassen.

Gruß Pierre

Betrifft: Als VBA
von: 1714041.html

Geschrieben am: 20.09.2019 09:50:57
Hallo Norman,

nochmal ich...

Eine entsprechende VBA-Lösung KÖNNTE so aussehen:
Private Sub worksheet_activate()
Range("A1:A20").Formula = "=IF(AND(Daten!R[0]C2<>"""",Daten!R[0]C1>TODAY()-30),Daten!R[0]C1,"""" _
)"
End Sub
Private Sub Worksheet_Change(ByVal target As Range)
Dim loeschen As Double
For loeschen = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(loeschen, 1).Value = "" Then
Rows(loeschen).Delete
End If
Next loeschen
End Sub
(Anfänger-"Hauptsache-Es-Klappt"-Code :D )

Beide Codes ins Fenster des Tabellenblattes "Liste".

Wenn du zum Blatt Liste wechselst, wird die Formel in A1 bis A20 die Formel geschrieben, die ich oben schon genannt habe und zusätzlich werden die "leeren" Zellen (da wo halt durch die Formel das Datum nicht übernommen wird) aus der Liste gelöscht.

Gruß Pierre

Betrifft: AW: Als VBA
von: 1714067.html
Geschrieben am: 20.09.2019 11:57:30
Hallo Pierre!

vielen vielen herzlichen Dank für deine zwei Lösungen.

Zu deiner Frage: Ja, es muss leider in VBA sein :( Wäre mir auch lieber, wenn es eine normale Formel auch getan hätte :D

Zum VBA-Code:

Ich hatte vergessen zu sagen, das die Daten immer in der Zukunft sind. Sprich, die "Restlaufzeit" bis zum Datum im Blatt "Daten" wichtig ist. 30Tage oder weniger. Da habe ich mich wohl doof ausgedrückt.

Dennoch gibt es ein kleines Problem, was wohl eventuell auf meine "Erklärung" zurückzuführen ist.

Wenn ich den Code im Blatt "Liste" nun ausführen will, kommt folgende Fehlermeldung:

"Fehler beim Kompilieren: Erwartet: Anweisungsende".

Und hier hört mein VBA Wissen direkt auf :D Mache ich was falsch oder hat sich irgendwo ein Fehler eingeschlichen? Habe im Grunde C&P genutzt :/

Die Namen sind in Spalte A und die Daten, die mit dem Tagesdatum verglichen werden sollen, in Spalte B.

Ich entschuldige mich für meine luckenhafte Erklärung.

Und danke dir vorab für deine Mühe bis jetzt!

Liebe Grüße,
Norman

Betrifft: AW: Als VBA
von: 1714075.html

Geschrieben am: 20.09.2019 12:37:53
Hallo Norman,

ich hoffe, ich verstehe dich richtig:
Wenn das Datum in B1 = Tagesdatum bis 30 in der Zukunft (also 19.10.) ist, dann soll das Datum ins Blatt "Liste" übernommen werden?

Dann tausche die ersten Zeilen mal durch folgende aus:
Private Sub worksheet_activate()
Range("A1:A20").Formula = "=IF(AND(Daten!R[0]C2<>"""",Daten!R[0]C1>TODAY()-1,Daten!R[0]C1
Zu deinem Fehler: Möglicherweise ist der entstanden, weil in meinem zitierten Code ein _ von der Forensoftware eingefügt wurde, der da nicht hingehört. Sorry, darauf habe ich dich nicht hingewiesen.
Schreibe die gesamte "IF..." Formel in eine Zeile, so dass auch keine Leerzeichen über bleiben.

Aber ich mache das jetzt ein wenig anders, ich lade dir mal meine Mappe hoch, da kannst du sehen, wie die beiden Codes richtig aussehen müssen. (Die Spalte E in Daten kannst du ignorieren, die habe ich nur benutzt, um die Formel als solche richtig hinzubekommen.)

Hier die Mappe, dann kannst du die Codes wirklich einfach 1:1 kopieren.
https://www.herber.de/bbs/user/132130.xlsm

Gruß Pierre

PS: Sorry, ich neige dazu, alles etwas zuuuu ausführlich zu erklären :D

PPS: Die englische Formelschreibweise habe ich gewählt, weil ich mit der deutschen und FormulaLocal nicht klar kam, da entstanden mir ständig Fehler. So war es jedenfalls einfacher.

Betrifft: jetzt aber wirklich...
von: 1714077.html
Geschrieben am: 20.09.2019 12:48:20
Ach man -.-
tut mir Leid, wieder was vergessen. Du hast ja die Namen/Daten andersrum.
Also:
Der richtige Code jetzt nochmal (diesmal stimmt er auch)

Private Sub worksheet_activate()
Range("A1:A20").Formula = "=IF(AND(Daten!R[0]C1<>"""",Daten!R[0]C2>TODAY()-1,Daten!R[0]C2< _
TODAY()+30),Daten!R[0]C2,"""")"
End Sub

Aber auch hier gilt: Unterstrich löschen und alles, was ich fett markiert habe, muss in einer Zeile stehen ohne Leerzeichen innerhalb des "IF" Teils.
Gruß Pierre

Excel-Beispiele zum Thema "Datum abfragen und Werte kopieren"

Unterdrückung von Sicherheitsabfragen download Name der aufrufenden Schaltfläche abfragen download
Anzahl der einzufügenden Zeilen abfragen download Start- und Enddatum abfragen und markieren download
Passwort vergeben und bei CheckBox-Aktivität abfragen download Werte von CheckBoxes in einer UserForm abfragen download
Mit InputBoxes Zeilennummern abfragen und Summe bilden download Suchbegriff über InputBox abfragen und Fundzeile löschen download
Druckstart- und endzeilen über InputBox abfragen download Beim Öffnen der Arbeitsmappe Passwort abfragen download
Suchbegriff abfragen und Fundzeile in UserForm-TextBoxes download Suchbegriff abfragen und Fundzeile markieren download
DNS und IP abfragen download Zeit über InputBox abfragen, dividieren und zurückgeben download
Autofilterkriterium abfragen und filtern download Blätter in andere Arbeitsmappen kopieren download
Module von Mappe zu Mappe kopieren download Arbeitsblatt 40 mal kopieren download
Schriftgröße beim Kopieren verdoppeln download Beim Kopieren auch die Zeilenhöhe und Spaltenbreite übernehmen download
Tabellencode nach Kopieren des Blattes löschen download Arbeitsmappe blitzschnell kopieren download
VBE-Namen der Blattmodule beim Kopieren festlegen download Blattinhalt von einer zur anderen Arbeitsmappe kopieren download
Formel bis zur letzten Zeile der Nebenspalte kopieren download Datei kopieren, wenn noch nicht vorhanden download
Zeilenweise von Blatt zu Blatt kopieren download Erste Druckseite in eine neue Arbeitsmappe kopieren download
Durch DoppelKlick Spalte in zweites Arbeitsblatt kopieren download Teilergebnisse einer Serie von Tabellen in anderes Blatt kopieren download
Bei Eintrag in Spalte A aktuelle Zeile kopieren download Filtern und Kopieren download
Zeile mit aktiver Zelle in anderes Blatt kopieren download Zeilen in Abhängigkeit des Wertes in Spalte A kopieren download
Einen von einer Schlüsselziffer abhängigen Bereich kopieren download Vorgegebene Anzahl von Einträgen in 2. Blatt kopieren download
Über InputBox festzulegenden Bereich kopieren download Passwortgeschützte Mappe öffnen, Daten kopieren, schliessen download
Tabellenblatt kopieren und dreistellig fortlaufend numerieren download Jede zweite Zelle kopieren download
Werte aus UserForm-ComboBox suchen und Fundstelle kopieren download Gruppe von Optionsfeldern kopieren und Makro zuweisen download
Nicht zusammenhängenden Bereich in nächste Zeile kopieren download Wert aus UserForm-TextBox suchen und Fundstelle kopieren download
Nur sichtbare Zellen in anderes Arbeitsblatt kopieren download Zeile in Abhängigkeit zur Eingabe in Blätter kopieren download
Werte prüfen und kopieren download Bei Eintrag von X Zeile in andere Tabelle kopieren download
Daten kopieren wenn kein Datum oder Datum > Heute download Blattinhalte dreier Blätter in neues Blatt kopieren download
Kopieren und Umbenennen eines Blattes download Nur Zeilen mit bestimmtem Inhalt kopieren download
Artikelnummern nach Kriterien suchen und Datensätze kopieren download Bild in zweites Blatt an gleiche Position kopieren download
Alle Zeilen ohne Wert in vorgegebener Spalte kopieren download Bei Eintrag Zeile in 2. Blatt kopieren und Tabellen sortieren download
Bildergruppe in anderes Blatt kopieren download Bei Eingabe Formel in der Nebenspalte nach unten kopieren download
Auswahl in andere Arbeitsmappe kopieren, speichern, schließen download Begriff suchen und Fundzeilen in anderes Blatt kopieren download
Aktive Zeile kopieren und löschen download Datensätze, die öfter als 3 mal vorkommen, kopieren download
Den jeweils darüberliegenden Wert in Leerzellen kopieren download Alle Zeilen mit einem Suchbegriff in nächstes Blatt kopieren download
Dateien listen und Blätter in neue Arbeitsmappe kopieren download