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

Datum vergleichen und Spalte kopieren

Datum vergleichen und Spalte kopieren
25.02.2020 21:57:13
markus
Hallo zusammen,
ich suche mir den ganzen Tag schon einen Wolf und hoffe nun das ihr mir weiterhelfen könnt.
Wenn ich das alles was ich gelesen habe richtig interpretiere sollte es hoffentlich einfach und schnell gehen.
Folgendes:
Ich habe 2 Excel-Dateien (Template & Master)
Die Master sieht folgendermaßen aus:
A | B | C | D ....... M
--- | Jan | Feb | Mrz ..... Dez
X | 1 | 15 | 24......
Y | 12 | 42 | 37......
Z | 17 | 75 | 25......
Also verschiedene Daten und darunter sind verschiedene Werte.
In die Mastertabelle sollen aus dem Template die Spalten gezogen werden.
Das Template sieht quasi nur so aus:
A | B
--- | Jan
X | 1
Y | 12
Z | 17
Der Monat im Template wird per Dropdown ausgewählt.
Da im Mai aber in Spalte B nicht mehr der Januar sondern der Mai ist suche ich ein Makro das einfach gesagt folgendes macht:
Durchsuche im Template die Zeile 1 nach dem Datum
Durchsuche in der Master die Zeile 1 nach dem Datum
Vergleiche das Datum von Template und Master
Schreibe die Spalte x:z von Template unter das gleiche Datum in Master
Speicher und schließe die Master
Ich hoffe ich habe mich verständlich ausgedrückt und wäre euch unendlich dankbar!
Beste Grüße
Markus

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum vergleichen und Spalte kopieren
26.02.2020 10:29:42
Bernd
Servus Markus,
ohne Beispieldatei(en) wird das wahrscheinlich niemand machen.
Aus deiner Beschreibung heraus ist - mir zumindest - die Struktur der Datei und damit die Aufgabenstellung nit klar...
Grüße, Bernd
AW: Datum vergleichen und Spalte kopieren
26.02.2020 11:06:09
markus
Hallo Bernd,
tut mir leid ich bin noch etwas neu, im Anhang die 2 Excel-Dateien.
https://www.herber.de/bbs/user/135449.zip
Zum einen findet sich meine Frage aus dem Eingangs-Post.
Zusätzlich habe ich noch eine Frage das genau anders herum zu lösen.
Als kurze Erklärung:
In Mappe 1 gibt es immer nur die eine Spalte wo per Dropdown Januar bzw. Februar oder März... eingetragen wird.
Darauf hin sucht er die Spalte in Mappe2 und fügt die Zahlen unter den entsprechenden Monat ein.
Die 2. Tabelle hat nur die kleine Tabelle - hier als Beispiel JP mit entsprechenden Werten unter A B C D
Diese Werte sollen dann in Mappe 2 in die entsprechende Zeile angefügt werden (je nachdem ob z.B. in Mappe 1 KW1 KW2 oder KW3 ausgewählt ist.
Der Aufbau der Zieldatei Mappe2 ist immer gleich. Das bedeutet ich bräuchte hierfür eine Art
"Suche KW(XY) - Wenn KW(XY) gefunden ist kopiere Daten unter A B C D E in Spalte i+2 (da JP ja immer an 2. Stelle nach ES kommt).
Mein Code für die Eingangsfrage hilft mir nur bedingt weiter, ich saß gestern bis um 5 Uhr morgens noch dran und bekomme es einfach nicht gelöst :(
Ich hoffe wirklich meine Erklärung hilft und bedanke mich schon mal für Deine/Eure Zeit!
Beste Grüße
Markus
Anzeige
AW: Datum vergleichen und Spalte kopieren
27.02.2020 08:14:41
Bernd
Servus markus,
für deine erste Frage teste mal das hier:

Private Sub werte_uebergeben_Click()
Dim WkSh_Q As Worksheet
Dim WkSh_Z As Worksheet
Dim WBZ As Workbook
Dim rZelle As Range, rZiel As Range
Dim aUeberschr As Variant
Dim iIndx As Integer
aUeberschr = Array("Januar", "Februar", "March", "April", "Mai")
Application.ScreenUpdating = False
Set WkSh_Q = ThisWorkbook.Sheets("Tabelle1") ' das Quell-Tabellenblatt
Set WBZ = Workbooks.Open("C:\Test\Mappe2.xlsx") ' Dateipfad anpassen!!!
Set WkSh_Z = WBZ.Worksheets("Tabelle1") ' das Ziel-Tabellenblatt
For iIndx = 0 To UBound(aUeberschr)
Set rZelle = WkSh_Q.Rows(1).Find(aUeberschr(iIndx), lookat:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then
Set rZiel = WkSh_Z.Rows(1).Find(aUeberschr(iIndx), lookat:=xlWhole, LookIn:= _
xlValues)
If Not rZiel Is Nothing Then
rZelle.Range("A1:A11").Copy Destination:=rZiel
Exit For
End If
End If
Next iIndx
WBZ.Close True
Set WkSh_Z = Nothing
Set WBZ = Nothing
Set WkSh_Q = Nothing
Application.ScreenUpdating = True
End Sub
Zu deiner zweiten Frage habe ich mal folgendes gebastelt:

Sub test()
Dim WkSh_Q As Worksheet
Dim WkSh_Z As Worksheet
Dim WBZ As Workbook
Dim Start As Integer
Dim Ende As Integer
Dim rZelle As Range
Dim rZiel As Range
Application.ScreenUpdating = False
Set WkSh_Q = ThisWorkbook.Sheets("Tabelle1") ' das Quell-Tabellenblatt
Set WBZ = Workbooks.Open("C:\Test\Mappe2.xlsx") ' Dateipfad anpassen!!!
Set WkSh_Z = WBZ.Worksheets("Tabelle1") ' das Ziel-Tabellenblatt
Set rZelle = WkSh_Z.Columns(6).Find(what:=WkSh_Q.Range("D24"), lookat:=xlWhole, LookIn:= _
xlValues)
If Not rZelle Is Nothing Then
Start = rZelle.Row + 1
Ende = WkSh_Z.Cells(Start, 6).End(xlDown).Row
Set rZiel = WkSh_Z.Range("F" & Start & ":F" & Ende).Find(what:=WkSh_Q.Range("D25"),  _
lookat:=xlWhole, LookIn:=xlValues)
If Not rZiel Is Nothing Then
WkSh_Q.Range("E25:I25").Copy Destination:=WkSh_Z.Cells(rZiel.Row, 7)
End If
End If
WBZ.Close True
Set WkSh_Z = Nothing
Set WBZ = Nothing
Set WkSh_Q = Nothing
End Sub
Ich hoffe, das entspricht deinen Erwartungen. Feedback wäre nett.
Grüße, Bernd
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige