Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zeitraum/doppelter Eintrag den nächsten Wert ausgeben
#1
Hallo,

ich zerbreche mir den Kopf schon seit einigen Tagen und komme einfach nicht auf die Lösung. Ausgangsstellung: Ich habe zwei Dateien. In einer Datei der Zelle A13 steht das Datum (es wird per Hand alle 2 Wochen neu eingeben). Das Datum ist Vorgebend. Daneben in den Zellen (B13;C13 ect.) sollen die Ergebnisse nacheinander ausgegeben werden. In der zweiten Datei steht in der Spalte C (von 0 bis 3000 Zeilen) Daten in Form von Datum und jedes mal daneben der Spalte F zu dem Datum eine Nummer (manchmal beginnend mit einer Variable). Manchmal stehen 5 gleiche Daten als Datum in Spalte C aber verschiedene Werte in der Spalte F. Nun würde ich gerne die Daten nach Datum suchen und entsprechende Werte aus der Spalte F ausgegeben haben. Ein Beispiel der zweiten Datei ist im Anhang     . Ich hoffe auf eure Hilfe.

Gruß
Antworten Top
#2
hallo Unbekannte

füge folgenden Code in ein Modul der ersten Datei ein:

Code:
Sub Dateneintrag()
    Dim k As Range, s As Range, m As Range
    Dim b As Workbook, f As String
   
    Set k = ActiveSheet.Range("A13")
    Set b = Workbooks.Open("C:\Documents\Datenblatt.xlsx")  'Anpassen
    Set m = b.Worksheets("Tabelle1").Columns("C")           'Anpassen
    Set s = m.Find(k)
    If Not s Is Nothing Then
        f = s.Address
        Do
            k.Parent.Cells(k.Row, Columns.Count).End(xlToLeft).Offset(, 1) = s.Offset(, 3)
            Set s = m.FindNext(s)
        Loop While s.Address <> f
    End If
    b.Close
End Sub

Jetzt noch Ordner und Name der zweiten Datei eintragen und Makro starten.

Zeile 13 wird wie gewünscht befüllt.

Viel Erfolg wünscht R
Antworten Top
#3
Hallo Raoul21,

vielen Dank fūr die Antwort. Leider sagt mir das mit den Bausteinen nicht viel. Mehr als summe und sverweis kenn ich von Excel nicht. Könnte man mein Problem mit dem Index und Vergleich lösen?

Gruß
Andrej
Antworten Top
#4
Hi Andrej,

lade doch bitte anstelle des Bildchens eine Beispieldatei (.xlsx) hoch; am besten trägst du ein paar Wunschergebnisse händisch ein.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#5
Hallo WillWissen,

hier die Datei _A 
.xlsx   Datei_A.xlsx (Größe: 8,8 KB / Downloads: 7) in der die ausgelesenen Daten aus der Datei_B 
.xlsx   Datei_B.xlsx (Größe: 9,83 KB / Downloads: 7) angezeigt werden sollen. In der Datei_A der Zelle A13 wird das Datum per Hand eingegeben. Das Datum ist Vorgebend. Da neben in den Zellen, unter der Beschrifftung "Wert_1", "Wert_2" ect. soll das Ergebnis aus der Datei_B der Zellen F stehen. Beispiel: wenn ich in der Datei_A das Datum in der Zelle A13 den 10.04.2020 eingebe, soll dann in der Zelle B13 "1230" und der C13 "A12096" stehen. Die restlichen Zellen sollen leer bleiben. Es wäre super eine Hilfestellung zubekommen.


Gruß
Andrej
Antworten Top
#6
Haii Andrej

habe dir bereits ein Makro geschrieben. Habe es getestet an Deinen Tabellen und habe festgestellt, es funktioniert.

Du musst mit Alt+F11 in den VBA-Editor gehen, dort in "Diese Arbeitsmappe" das Makro hinein kopieren, den Pfad einstellen (den ich natürlich nicht kennen kann, wo Du Deine Dateien ablegst) und mit F5 starten.

habe zur Zeit leider keine Zeit Dir das zu machen und  reinzustellen. Wollte nicht unhöflich sein.

LG, R
Antworten Top
#7
Hallo Raoul,

Danke Dir. Funktioniert sehr gut. Kleine anpassungen  an dem Makro brauche ich, was ich selbst nicht hinbekommen habe. 

-Anfang der ausgegebenen Werte würde ich gerne in einer bestimmten Zelle (Zellen zuweisung)
-Die ausgegebenen Werte sollen nach jeder neuen Angabe des Datum an der gleichen Stelle ausgegeben werden. Aktuell ist es so, das diese fortführend ausgegeben werden (wegen der Schleife?!)
- ein Butten den ich in der ertsen Arbeitsmape einpfle und über die das auslesen Starte

Wäre super von Dir, wenn du hierbei mir noch helfen würdest. 
Ich wäre aber auch froh über eine Formel (die ich eventuell hinbekommen würde selbst anzupassen :)).

Grüße,
Andrej
Antworten Top
#8
Hallo zusammen, 

Kann mir bitte einer bei meinem Problem weiterhelfen?

Grüße 
Andrej
Antworten Top
#9
Hallöchen,

gesucht wird momentanin SPalte C:

Set m = b.Worksheets("Tabelle1").Columns("C") 'Anpassen

Du kannst Das einschränken, z.B.

Set m = b.Worksheets("Tabelle1").Range("C13:C100") 'Anpassen


Hier wird Spalte für Spalte genommen:

k.Parent.Cells(k.Row, Columns.Count).End(xlToLeft).Offset(, 1) = s.Offset(, 3)

wenn es überschrieben werden soll, dann

k.Parent.Cells(k.Row, Columns.Count).End(xlToLeft) = s.Offset(, 3)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste