Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte aus zweiter Datei übernehemen

Forumthread: Werte aus zweiter Datei übernehemen

Werte aus zweiter Datei übernehemen
10.09.2013 12:33:20
Peter
Liebes Forum,
ich habe zwei Dateien: Ori_Master und Ori_Werte die an verschiedenen Orten liegen. Ich möchte die Spaltenwerte aus Ori_Werte übernehmen und in Ori_Master entsprechend anhängen (Zahlen zur Verdeutlichung in rot). Bei nächsten mal, sollen die Werte aus Ori_Werte an die roten Zahlen angehängt werden.
Die Anzahl der Spalten und Namen in Ori_Werte variieren. Es können zwei aber auch zehn Spalten sein oder nur a,d f.
Ich möchte diese wiederkehrende Arbeit per Makro lösen.Wie sieht ein VBA-Code dazu aus?
https://www.herber.de/bbs/user/87221.xlsx
https://www.herber.de/bbs/user/87222.xlsx
Vielen Dank im voraus für Eure Hilfe
Peter

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus zweiter Datei übernehemen
13.09.2013 07:58:55
fcs
Hallo Peter,
das nachfolgende Makro baust du entweder in deine Ori_Master ein, oder in deine persönliche Makroarbeitsmappe.
Das Makro wird gestartet, wenn die Ori_Master die aktive Datei ist.
Die Werte-Datei kannst du auswählen, nachdem das Makro gestartet ist.
Gruß
Franz
Sub Hole_neue_Ori_Werte()
Dim wkbMaster As Workbook, wksMaster As Worksheet
Dim wkbWerte As Workbook, wksWerte As Worksheet
Dim varAuswahl As Variant
Dim rngSuchen As Range, rngNamen As Range
Dim Spalte_Name As Long
Dim ZeileTitel As Long
Dim Zeile_M As Long, Spalte_M As Long, iOffset As Long
Dim Zeile_W As Long, Spalte_W As Long, Zeile_WL As Long, Spalte_WL As Long
Spalte_Name = 2 ' Spalte B - Spalte mit namen
ZeileTitel = 3 'Titel-Zeile mit den Datumswerten
varAuswahl = Application.GetOpenFilename( _
Filefilter:="Exceldateien(*.xlsx;*.xls),*.xlsx;*.xls", _
Title:="Ori-Werte-Datei auswählen")
If varAuswahl = False Then Exit Sub
Set wkbMaster = ActiveWorkbook
Set wksMaster = wkbMaster.Worksheets(1)
Set wkbWerte = Application.Workbooks.Open(Filename:=varAuswahl, ReadOnly:=True)
Set wksWerte = wkbWerte.Worksheets(1)
With wksMaster
'letzte ausgefüllte Datumsspalte
Spalte_M = .Cells(ZeileTitel, .Columns.Count).End(xlToLeft).Column
End With
With wksWerte
'Letzte Spalte mit Datum in Titelzeile der Wertetabelle
Spalte_WL = .Cells(ZeileTitel, .Columns.Count).End(xlToLeft).Column
'Letzte Zeile mit Name der Wertetabelle
Zeile_WL = .Cells(.Rows.Count, Spalte_Name).End(xlUp).Row
End With 'wksWerte
For Zeile_W = ZeileTitel To Zeile_WL
With wksMaster
If Zeile_W > ZeileTitel Then
varAuswahl = wksWerte.Cells(Zeile_W, Spalte_Name).Value 'Name in Zeile einlesen
'Name in Master suchen
Set rngNamen = .Range(.Cells(ZeileTitel + 1, Spalte_Name), _
.Cells(.Rows.Count, Spalte_Name).End(xlUp))
Set rngSuchen = rngNamen.Find(what:=varAuswahl, LookIn:=xlValues, lookat:=xlWhole)
If rngSuchen Is Nothing Then
'Zeile für neuen Namen
Zeile_M = .Cells(.Rows.Count, Spalte_Name).End(xlUp).Row
'Neuen Namen in Master eintragen
.Cells(Zeile_M, Spalte_Name).Value = varAuswahl
Else
Zeile_M = rngSuchen.Row
End If
Else
Zeile_M = ZeileTitel 'Zeile für Datumswerte
End If
'Werte in Master eintragen
iOffset = 0
For Spalte_W = Spalte_Name + 1 To Spalte_WL
iOffset = iOffset + 1
.Cells(Zeile_M, Spalte_M + iOffset).Value = wksWerte.Cells(Zeile_W, Spalte_W).Value
Next 'Spalte_W
End With 'wksMaster
Next Zeile_W
wkbWerte.Close savechanges:=False
MsgBox "Fertig"
End Sub

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige