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

Daten aus anderer Arbeitsmappe auslesen

Daten aus anderer Arbeitsmappe auslesen
27.09.2018 11:23:23
Andreas
Hallo Forumer,
ich schon wieder :o).
Ich brauche nochmals Hilfestellung:
Ich möchte gerne von meiner Masterdatei aus, per Button, Bereiche in anderen Exceldateien auf meine Projketnummer (steht in einer Zelle der Materdatei und in den Zellen der anderen Dateien) prüfen, matchen und dann die Werte nachfolgender bzw. darunterliegenden Zellen in die Masterdatei kopieren. Das alles sollte nach Möglichkeit laufen, ohne die anderen Exceldateien zu öffnen.
Gibt es da gute Lösungen.
Gruß
Andreas

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus anderer Arbeitsmappe auslesen
27.09.2018 15:47:57
Armin
Hallo Andreas,
ohne eine Datei zu öffnen kannst Du nix kopieren!
Wozu soll das gut sein.
Übrigens ohne Muster brauchst Du nicht auf eine Hilfe hoffen.
Gruß Armin
AW: Daten aus anderer Arbeitsmappe auslesen
27.09.2018 17:46:44
Andreas
Hallo Armin,
ok. Ich hatte das so bei meiner Suche gelesen.
Die Dateien dürfen natürlich auch geöffnet werden :o)
Ein Muster muss ich noch erstellen.
Im Grunde habe ich in der Masterdatei in Zelle G3 die Projektnummer stehen.
Diese soll z.B. in einer Exceldatei mit 12 Mappen (Januar-Dezember) prüfen ob in Spalte F die
besagte Projektnummer ebenfalls vorhanden ist. Wenn ja, soll er die Zellen hinter der Projektnummer
(F), also G-H kopieren und in die Masterdatei ab Spalte H untereinander auflisten.
Vielleicht hilft das ja schonmal.
Ansonsten muss ich morgen die Testdateien generieren.
Gruß
Andreas
Anzeige
AW: Daten aus anderer Arbeitsmappe auslesen
01.10.2018 08:52:57
Andreas
Hallo Forumer,
ich habe jetzt mal die Testdateien erstellt.
Ich möchte gerne von meiner Masterdatei aus, per Button, Bereiche in der Datei Ausgangsrechnungen auf meine Projektnummer (steht in Zelle J1 der Materdatei und in der Spalte E der zu überprüfenden Datei) prüfen, matchen und dann die Werte nachfolgender Spalte F & G & M in die Masterdatei kopieren.
Die Masterdatei wird monatlich um ein Worksheets (Januar, Februar etc.) ergänzt, ebenso die zu überprüfende Datei (Januar 18, Februar 18 etc.). Es sollte jeweils der Monat überprüft werden und die gematchten Werte ab Spalte N untereianander eingefügt werden.
https://www.herber.de/bbs/user/124340.zip
Vielleicht könnt Ihr Profis mir hierzu eine gute Lösung geben.
Danke vorab
Andreas
Anzeige
AW: Daten aus anderer Arbeitsmappe auslesen
01.10.2018 09:41:32
Werner
Hallo Andreas,
was hälst du denn davon in deinen hochgeladenen Datein auch ein paar Beispieldaten zu erfassen? Und dann in der Masterdatei mal anhand eines konkreten Beispiels aufzeigen, wie dein Wunschergebnis aussieht.
So ist, mir zumindest, einiges unklar. Beispielsweise schreibst du, dass die Daten in Spalte N untereinander aufgelistet werden sollen. Spalte N in deiner Masterdatei ist aber neben dem eigentlichen Tabellenbereich.
Gruß Werner
AW: Daten aus anderer Arbeitsmappe auslesen
01.10.2018 10:02:51
Andreas
Hallo Werner,
danke für deine Antwort. Ich habe jetzt mal Musterdaten eingefügt.
Mit Auflistung in Spalte N ist korrekt. In Spalte F-I (grau) stehen alle Rechnungen
aus den Vormonaten (Beipiel: Dezember) drin. Ich möchte gerne prüfen ob neue Rechnungen z.B. im Januar geschrieben wurden(anhand des Ausgangsrechnungen). Diese sollen dann in Spalte N aufgelistet werden.
Die Daten werden später manuell vom User in Spalte F-I gezogen. Das mauelle verschieben kann ich leider noch nicht anders lösen, da ich erst noch andere Sachen ändern muss. (Deswegen die Auflistung ab Spalte N). Hoffe mein Gauderwelsch war jetzt halbwegs vertsändlich? :o)
https://www.herber.de/bbs/user/124344.zip
Gruß
Andreas
Anzeige
AW: Daten aus anderer Arbeitsmappe auslesen
01.10.2018 14:37:23
Werner
Hallo Andreas,
teste mal.
Das entsprechende Blatt der Datei "Ausgangsrechnungen" wird anhand dem Blattnamen der Masterdatei gewählt, unabhängig von der Jahreszahl im Blattnamen der Ausgangsrechnungen.
In der Datei Ausgangsrechnungen hast du RE-Nr. und AR-Nr. im Zielbereich aber nur RG-Nr.
Ich hab das im Zielbereich angepasst und dort auch diese zwei entsprechenden Spalten.
Wenn das so nicht gewünscht ist, dann müsste ich das noch anpassen. Da müsste man dann in einer Schleife über den Quellbereich laufen und die Daten entsprechend kopieren.
Zudem bin ich davon ausgegangen, dass Masterdatei und Ausgangsrechnungen im gleichen Verzeichnis liegen.
https://www.herber.de/bbs/user/124351.xlsm
Gruß Werner
Anzeige
AW: Daten aus anderer Arbeitsmappe auslesen
01.10.2018 17:12:26
Andreas
Hallo Werner,
soweit ich das testen konnte sieht es schon sehr gut aus. Danke dafür.
Kannst du das evtl. noch anpassen, dass das Blatt anhand der Blattnamen und der Jahreszahl gewählt wird?
Die Datei Ausgangsrechnungen ist im Original ab 2015.....
Wenn möglich könntest du, wenn es keine Umstände macht auch den Zielbereich anpassen.
Es wird immer nur eine Nummer Spalte C oder D in Ausgangsrechnung vergeben. Diese sollte bei der Übernahme untereinander stehen. Wenn das zuviel Aufwand ist bitte streichen. Punkt 1 wäre wichtiger :o)
Die Masterdateien (versch. Kostenstellen) und die Ausgangsrechnungsdatei liegen in versch. Verzeichnissen. Wo und wie kann ich das genau anpassen?
DANKE für deine Geduld und Unterstüzung.
Gruß
Andreas
Anzeige
AW: Daten aus anderer Arbeitsmappe auslesen
01.10.2018 22:07:44
Werner
Hallo Andreas,
stell bitte meinen Code mal hier ein. Ich bin im Moment nicht Zuhause und habe keinen Zugriff auf meinen Rechner.
Gruß Werner
AW: Daten aus anderer Arbeitsmappe auslesen
02.10.2018 08:03:19
Andreas
Guten Morgen Werner,
anbei dein Code. Danke für deine Mühen.
Option Explicit
Public Sub Daten_holen()
Dim wbQuelle As Workbook, wsQuelle As Worksheet
Dim strPfad As String, strBlattname As String
Dim loLetzte As Long, loSuchbegriff As Long
strPfad = ThisWorkbook.Path
strBlattname = ActiveSheet.Name
loSuchbegriff = ActiveSheet.Range("J1")
Application.ScreenUpdating = False
'Zielbereich leeren
With ActiveSheet
loLetzte = .Cells(.Rows.Count, 14).End(xlUp).Row
If loLetzte >= 4 Then
.Range(.Cells(4, 14), .Cells(loLetzte, 18)).ClearContents
End If
End With
'Datei Ausgangsrechnungen öffnen
Set wbQuelle = Workbooks.Open(strPfad & "\" & "Ausgangsrechnungen.xlsx")
With wbQuelle
'richtiges Quellblatt wählen
For Each wsQuelle In .Worksheets
If wsQuelle.Name Like strBlattname & "*" Then
'Quellblatt nach Kostenstelle filtern
With Worksheets(wsQuelle.Name)
loLetzte = .Cells(.Rows.Count, 5).End(xlUp).Row
.Range("$A$4:$T$" & loLetzte).AutoFilter Field:=5, Criteria1:=loSuchbegriff
loLetzte = .Cells(.Rows.Count, 5).End(xlUp).Row
If loLetzte 

Gruß
Andreas
Anzeige
AW: Daten aus anderer Arbeitsmappe auslesen
02.10.2018 16:48:47
Werner
Hallo Andreas,
hier das geänderte Makro:
Option Explicit
Public Sub Daten_holen()
Dim wbQuelle As Workbook, wsQuelle As Worksheet
Dim strPfad As String, strBlattname As String
Dim loLetzte As Long, loSuchbegriff As Long
Dim boVorhanden As Boolean
'### Deinen Pfad hier anpassen #####
strPfad = "C:\Ordner\Unterordner\UnterUnterordner\"
strBlattname = ActiveSheet.Name & " " & Right(Range("J3"), 2)
loSuchbegriff = ActiveSheet.Range("J1")
Application.ScreenUpdating = False
'Zielbereich leeren
With ActiveSheet
loLetzte = .Cells(.Rows.Count, 14).End(xlUp).Row
If loLetzte >= 4 Then
.Range(.Cells(4, 14), .Cells(loLetzte, 17)).ClearContents
End If
End With
'Datei Ausgangsrechnungen öffnen
Set wbQuelle = Workbooks.Open(strPfad & "Ausgangsrechnungen.xlsx")
With wbQuelle
'richtiges Quellblatt wählen
For Each wsQuelle In .Worksheets
If wsQuelle.Name = strBlattname Then
boVorhanden = True
'Quellblatt nach Kostenstelle filtern
With Worksheets(wsQuelle.Name)
loLetzte = .Cells(.Rows.Count, 5).End(xlUp).Row
.Range("$A$4:$T$" & loLetzte).AutoFilter Field:=5, Criteria1:=loSuchbegriff
loLetzte = .Cells(.Rows.Count, 5).End(xlUp).Row
If loLetzte """";R4;S4)"
.Range(.Cells(4, 20), .Cells(loLetzte, 20)).Copy
.Range("O4").PasteSpecial Paste:=xlPasteValues
.Range(.Cells(4, 18), .Cells(loLetzte, 20)).ClearContents
End With
'Quellblatt ohne speichern schließen
wbQuelle.Close (False)
Application.CutCopyMode = False
End With
End If
End With
Exit For
End If
Next wsQuelle
End With
If Not boVorhanden Then
MsgBox "Es ist kein Tabellenblatt " & """" & strBlattname & """" & " vorhanden."
wbQuelle.Close (False)
End If
Set wbQuelle = Nothing
Application.ScreenUpdating = True
End Sub
Gruß Werner
Anzeige
AW: Daten aus anderer Arbeitsmappe auslesen
04.10.2018 09:19:19
Andreas
Hallo Werner,
danke. Es funktioniert für (Januar) korrekt. Wenn ich in der Masterdatei
aber ein neues Blatt (Monat) über mein Button einfüge und die Daten dann
für Februar holen möchte, erscheint die Meldung "Kostenstelle nicht gefunden",
obwohl ich ein Satz mit der Kostenstelle drin stehen habe. Woran könnte das liegen?
Ist es auch möglich die Daten die eingefügt werden direkt zu formatieren?
Sprich Datum als Datum und alle Zellen grau zu hinterlegen und mit einem Gitternetz zu versehen?
Danke
Andreas
AW: Daten aus anderer Arbeitsmappe auslesen
04.10.2018 09:28:16
Andreas
Hallo Werner,
Kommando zurück. Klappt doch alles :o)
SORRY.
Bleiben nur noch folgende Fragen:
Ist es auch möglich die Daten die eingefügt werden direkt zu formatieren?
Sprich Datum als Datum und alle Zellen grau zu hinterlegen und mit einem Gitternetz zu versehen?
Ist es möglich, dass der Zielbereich schon gelöscht wird, wenn ich ein neues Blatt per Makro einfüge?
Den Code zum kopieren und einfügen des neuen Blattes poste ich mal hier mit:
Dieser wird immer vor Abruf der Rechnungsdaten angesteuert.
Option Explicit
Sub NeuesBlatt()
Dim AnzTB As Integer, TBMinus1 As String, TB1, TBneu, TMP As String, Monat As String
AnzTB = 4 'ab Tabellenblatt 4 stehen die Monate
If Sheets.Count >= AnzTB Then
Set TB1 = Sheets(Sheets.Count)
TBMinus1 = Sheets(Sheets.Count - 1).Name
TMP = "01. " & TB1.Name & " " & Year(Date)
If Not IsDate(TMP) Then
MsgBox " Fehler Blattbenennung: " & TB1.Name ' kein Monatsname
Exit Sub
End If
'nächster Monat
Monat = Format(DateSerial(Year(TMP), Month(TMP) + 1, 1), "MMMM")
'Blatt kopieren
TB1.Copy after:=Sheets(TB1.Name)
Set TBneu = ActiveSheet
'Blatt umbenennen
TBneu.Name = Monat
With TB1.UsedRange
'Formeln aus Vormonat raus
.Value = .Value
End With
'aktuelle Formeln auf Vormonat anpassen
TBneu.Cells.Replace What:="=" & TBMinus1 & "!", Replacement:="=" & TB1.Name & "!", _
LookAt:=xlPart, SearchOrder:=xlByRows
TB1.Shapes(2).Delete
Else
'wenn nur die Inhaltsblätter da sind
MsgBox "Blattfehler: Startmonat oder ein Inhaltsblatt fehlt"
End If
TBneu.Range("G3") = Monat
End Sub

Danke
Andreas
Anzeige

364 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige